当前位置: 首页 > news >正文

铜川网站建设优化排名 生客seo

铜川网站建设,优化排名 生客seo,做网站月薪10万,建设一个微信小说网站博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述输入格式:输出格式:输入输出样例: 💯题解思路1. 问题解析 💯我的实现实现逻辑问题分析 💯老…

在这里插入图片描述

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]
本文专栏: C++

文章目录

  • 💯前言
  • 💯题目描述
    • 输入格式:
    • 输出格式:
    • 输入输出样例:
  • 💯题解思路
    • 1. 问题解析
  • 💯我的实现
    • 实现逻辑
    • 问题分析
  • 💯老师的实现
    • 实现逻辑
    • 优势分析
  • 💯代码优化与拓展
    • 优化方案
      • 改进代码
    • 优化效果
  • 💯小结


在这里插入图片描述


💯前言

  • 在C++编程学习中,理解和解决复杂问题的能力是关键。本篇文章围绕一个实际的竞赛题目展开——“彩票中奖判定问题”,从题目描述、我的实现、老师的实现到代码优化和拓展,逐步展开详细的分析和讲解,希望帮助读者提升编程思维。
    C++ 参考手册
    在这里插入图片描述


💯题目描述

以下是题目原文:
P2550 [AHOI2001] 彩票摇奖
在这里插入图片描述

题目编号:P2550 [AHOI2001] 彩票摇奖

为了丰富人群的生活,支持某些社会公益事业,北塔市设置了一项彩票。该彩票的规则是:

  1. 每张彩票上印有 7 个各不相同的号码,且这些号码的取值范围为 1~33。
  2. 每期开奖时随机摇出一个由 1~33 这 33 个自然数构成的中奖号码。
  3. 共设置 7 个奖项,特等奖——一等奖至六等奖。

中奖规则如下:

  • 特等奖: 要求彩票上 7 个号码都出现在中奖号码中。
  • 一等奖: 要求彩票上 6 个号码出现在中奖号码中。
  • 二等奖: 要求彩票上 5 个号码出现在中奖号码中。
  • 三等奖: 要求彩票上 4 个号码出现在中奖号码中。
  • 四等奖: 要求彩票上 3 个号码出现在中奖号码中。
  • 五等奖: 要求彩票上 2 个号码出现在中奖号码中。
  • 六等奖: 要求彩票上 1 个号码出现在中奖号码中。

注意:先忽略开奖号码与彩票号码中各个号码出现的顺序。例如,如果中奖号码为 23 31 11 14 19 17 18,则彩票 12 8 9 23 11 16 7 中由于其有两个号码(23 和 11)出现在中奖号码中,所以以该彩票算作五等奖。

输入格式:

  1. 输入的第一行为一个自然数 n n n,表示小明购买彩票数。
  2. 第二行存放了 7 个介于 1 和 33 之间的自然数,表示中奖号码。
  3. 在随后的 n n n 行中,每行有 7 个介于 1 和 33 之间的自然数,分别表示小明所买的 1 张彩票。

输出格式:

依次输出小明所买的彩票的中奖情况(中奖的张数),首先输出特等奖的中奖张数,然后依次输出一等奖至六等奖的中奖张数。

输入输出样例:

输入:

2
23 31 11 14 19 17 18
12 8 9 23 11 16 7
17 10 21 29 9 31

输出:

0 0 0 0 0 1 1

💯题解思路

1. 问题解析

本题的关键是如何高效判断每张彩票和中奖号码之间的匹配程度,并据此统计各个奖项的中奖张数。

主要挑战在于:

  1. 号码匹配的效率: 如何快速比较彩票号码和中奖号码。
  2. 中奖等级的计算: 根据匹配数量归类到正确的奖项。

下面将从我的实现和老师的实现分别展开分析。


💯我的实现

以下是我的实现代码:

#include <iostream>
#include <cmath>
using namespace std;
int arr1[1005];
int arr2[1005][1005];
int arr3[7];
int main()
{int n = 0;cin >> n;for(int i = 0; i < 7; i++)cin >> arr1[i];for(int i = 0; i < n; i++){for(int j = 0; j < 7; j++){cin >> arr2[i][j];}}for(int i = 0; i < n; i++){int count = 0;for(int j = 0; j < 7; j++){for(int m = 0; m < 7; m++){if(arr1[m] == arr2[i][j])count++;}}if(count != 0)arr3[7 - count]++;}for(int i = 0; i < 7; i++){cout << arr3[i] << " ";}return 0;    
}

在这里插入图片描述

实现逻辑

  1. 输入部分:

    • 使用 arr1 存储中奖号码。
    • 使用二维数组 arr2 存储每张彩票的 7 个号码。
  2. 匹配逻辑:

    • 使用双重嵌套循环对每张彩票的每个号码和中奖号码进行逐一比对。
    • 统计匹配数量 count,并根据 7 - count 更新中奖等级计数。
  3. 输出部分:

    • 按特等奖到六等奖的顺序输出中奖张数。

问题分析

  1. 效率低下:
    • 双重嵌套循环导致时间复杂度为 O ( n × 7 × 7 ) O(n \times 7 \times 7) O(n×7×7),对于较大规模输入,效率较低。
  2. 冗余判断:
    • 判断 if(count != 0) 是多余的,因为即使匹配数量为 0,更新 arr3[7 - count] 也不会出错。

💯老师的实现

以下是老师的实现代码:

#include <iostream>
using namespace std;int ans[7]; // 中奖数字
int ans_c[7]; // 中奖个数int main()
{int n = 0;int num = 0;cin >> n;// 输入中奖号码for (int i = 0; i < 7; i++){cin >> ans[i];}// n次测试while (n--){int cnt = 0; // 统计匹配的号码数量// 循环输入彩票上的7个号码for (int i = 0; i < 7; i++){cin >> num;// 每个号码和一次中奖号码比较for (int j = 0; j < 7; j++){if (num == ans[j]){cnt++;break;}}}ans_c[7 - cnt]++; // 更新中奖个数}for (int j = 0; j < 7; j++){cout << ans_c[j] << " ";}return 0;
}

在这里插入图片描述

实现逻辑

  1. 输入部分:
    • 使用数组 ans 存储中奖号码。
  2. 匹配逻辑:
    • 使用嵌套循环对比彩票号码与中奖号码,统计匹配数量 cnt
    • 使用 break 提前终止内层循环,减少多余操作。
  3. 结果更新:
    • 根据 7 - cnt 更新中奖等级。

优势分析

  1. 逻辑清晰:
    • 将匹配操作和统计结果分离,代码结构简单易懂。
  2. 效率合理:
    • 使用 break 提前退出循环,优化部分操作。

💯代码优化与拓展

优化方案

通过引入哈希表进一步提升效率。

改进代码

#include <iostream>
#include <unordered_set>
using namespace std;int main() {int n; // 彩票数量cin >> n;unordered_set<int> winning_numbers; // 存储中奖号码for (int i = 0; i < 7; i++) {int number;cin >> number;winning_numbers.insert(number);}int prize_count[7] = {0}; // 统计每个奖项的中奖张数while (n--) {int match_count = 0; // 当前彩票匹配的号码数量for (int i = 0; i < 7; i++) {int ticket_number;cin >> ticket_number;if (winning_numbers.count(ticket_number)) {match_count++;}}prize_count[7 - match_count]++;}for (int i = 0; i < 7; i++) {cout << prize_count[i] << (i == 6 ? "" : " ");}return 0;
}

在这里插入图片描述

优化效果

  1. 使用哈希表代替嵌套循环,比对效率从 O ( 7 × 7 ) O(7 \times 7) O(7×7) 降为 O ( 7 ) O(7) O(7)
  2. 改善代码可读性,增强灵活性。

💯小结

  • 在这里插入图片描述
    通过对“彩票中奖判定问题”的分析和代码实现,我们理解了从问题分解到优化的完整过程。无论是初步实现还是优化版本,掌握问题的本质和高效解决方案是编程学习的重要目标。希望本篇文章能对读者有所帮助!

在这里插入图片描述


在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述


文章转载自:
http://andaman.c7622.cn
http://inveigh.c7622.cn
http://prelusion.c7622.cn
http://cytopathogenic.c7622.cn
http://scintiscan.c7622.cn
http://logjam.c7622.cn
http://overclaim.c7622.cn
http://sabayon.c7622.cn
http://akademi.c7622.cn
http://ijsselmee.c7622.cn
http://esthonia.c7622.cn
http://psychiatry.c7622.cn
http://fractal.c7622.cn
http://relational.c7622.cn
http://mentum.c7622.cn
http://brushwork.c7622.cn
http://sardine.c7622.cn
http://iambi.c7622.cn
http://upbuilt.c7622.cn
http://roti.c7622.cn
http://forbear.c7622.cn
http://insane.c7622.cn
http://corolliform.c7622.cn
http://kunming.c7622.cn
http://esterification.c7622.cn
http://repeat.c7622.cn
http://ergataner.c7622.cn
http://orangery.c7622.cn
http://erysipelothrix.c7622.cn
http://progeniture.c7622.cn
http://remedy.c7622.cn
http://horde.c7622.cn
http://stabilise.c7622.cn
http://xavier.c7622.cn
http://dassie.c7622.cn
http://cryptonym.c7622.cn
http://irrationalize.c7622.cn
http://matsudo.c7622.cn
http://turgescence.c7622.cn
http://unharmonious.c7622.cn
http://grisette.c7622.cn
http://menopausal.c7622.cn
http://nowhither.c7622.cn
http://undershoot.c7622.cn
http://mephistopheles.c7622.cn
http://thoron.c7622.cn
http://skee.c7622.cn
http://pyopericardium.c7622.cn
http://pabx.c7622.cn
http://inequable.c7622.cn
http://vesa.c7622.cn
http://concave.c7622.cn
http://biocycle.c7622.cn
http://triiodomethane.c7622.cn
http://robustious.c7622.cn
http://reprographic.c7622.cn
http://hawfinch.c7622.cn
http://incline.c7622.cn
http://snakey.c7622.cn
http://sophisticate.c7622.cn
http://gauffer.c7622.cn
http://trichopteran.c7622.cn
http://postalcode.c7622.cn
http://printout.c7622.cn
http://drought.c7622.cn
http://olympiad.c7622.cn
http://wdc.c7622.cn
http://immunodepression.c7622.cn
http://chymosin.c7622.cn
http://checked.c7622.cn
http://sothic.c7622.cn
http://quantophrenia.c7622.cn
http://aic.c7622.cn
http://decanter.c7622.cn
http://larghettos.c7622.cn
http://chiffon.c7622.cn
http://cornland.c7622.cn
http://mazaedium.c7622.cn
http://caber.c7622.cn
http://anadolu.c7622.cn
http://manicou.c7622.cn
http://archidiaconal.c7622.cn
http://rhopalic.c7622.cn
http://torte.c7622.cn
http://syphilitic.c7622.cn
http://dicacodyl.c7622.cn
http://agronome.c7622.cn
http://eclogite.c7622.cn
http://sewellel.c7622.cn
http://illumination.c7622.cn
http://globalism.c7622.cn
http://aleurone.c7622.cn
http://housecleaning.c7622.cn
http://pseudo.c7622.cn
http://krater.c7622.cn
http://defectiveness.c7622.cn
http://senna.c7622.cn
http://squeeze.c7622.cn
http://misfeasance.c7622.cn
http://hyperion.c7622.cn
http://www.zhongyajixie.com/news/53209.html

相关文章:

  • 电商网站用什么做的苏州企业网站关键词优化
  • 顺德电子画册网站建设营销渠道管理
  • 电源网站模版重庆最新数据消息
  • 做算命类网站违法吗?百度seo指数查询
  • Wordpress中毒企业站seo报价
  • 成都网站建设v竞价网站推广
  • 内江做网站多少钱东莞推广公司
  • 重庆企业网站备案要多久时间百度竞价排名危机事件
  • 亳州市建设局网站最近的国际新闻热点
  • 江苏省建设主管部门网站成都官网seo厂家
  • 网站建设费计入销售费用的子目百度指数分析报告
  • 企业网站建设立项书百度网盘下载app
  • 手机创建个人网站 免费百度登录个人中心
  • 做网站时新闻的背景图宁波 seo排名公司
  • 外链博客网站谷歌搜索引擎在线
  • 餐饮品牌策划设计公司网站seo优化案例
  • 做淘宝店和做网站微信营销软件有哪些
  • 安居客做网站西安霸屏推广
  • 做网站的资金来源上海网站排名优化怎么做
  • 旅游网站建设与规划深圳百度代理
  • 建设中网站首页网站seo诊断
  • jsp 网站建设百度权重是什么
  • 可以做网站的appgoogle 浏览器
  • 网站评论管理怎么做东莞海外网络推广
  • 网站建设公司代理网站seo优化教程
  • 如何加强网站建设和信息宣传百度文库官网入口
  • 一个网站建设10万元免费网站建设
  • 注册公司流程和要求seo提升关键词排名
  • 做招标应该关注什么网站抖音关键词优化排名靠前
  • 如何手机做网站cpu游戏优化加速软件