网站制作app开发,涂料厂做网站有用吗,logo网站设计素材,整站seo优化推广文章目录 P1271 【深基9.例1】选举学生会选择排序、冒泡排序、插入排序快速排序排序算法的应用[NOIP2006 普及组] 明明的随机数[NOIP2007 普及组] 奖学金P1781 宇宙总统 #mermaid-svg-Zo8AMme5IW1JlT6K {font-family:trebuchet ms,verdana,arial,sans-serif;font-s… 文章目录 P1271 【深基9.例1】选举学生会选择排序、冒泡排序、插入排序快速排序排序算法的应用[NOIP2006 普及组] 明明的随机数[NOIP2007 普及组] 奖学金P1781 宇宙总统 #mermaid-svg-Zo8AMme5IW1JlT6K {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Zo8AMme5IW1JlT6K .error-icon{fill:#552222;}#mermaid-svg-Zo8AMme5IW1JlT6K .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Zo8AMme5IW1JlT6K .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Zo8AMme5IW1JlT6K .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Zo8AMme5IW1JlT6K .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Zo8AMme5IW1JlT6K .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Zo8AMme5IW1JlT6K .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Zo8AMme5IW1JlT6K .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Zo8AMme5IW1JlT6K .marker.cross{stroke:#333333;}#mermaid-svg-Zo8AMme5IW1JlT6K svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Zo8AMme5IW1JlT6K .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Zo8AMme5IW1JlT6K .cluster-label text{fill:#333;}#mermaid-svg-Zo8AMme5IW1JlT6K .cluster-label span{color:#333;}#mermaid-svg-Zo8AMme5IW1JlT6K .label text,#mermaid-svg-Zo8AMme5IW1JlT6K span{fill:#333;color:#333;}#mermaid-svg-Zo8AMme5IW1JlT6K .node rect,#mermaid-svg-Zo8AMme5IW1JlT6K .node circle,#mermaid-svg-Zo8AMme5IW1JlT6K .node ellipse,#mermaid-svg-Zo8AMme5IW1JlT6K .node polygon,#mermaid-svg-Zo8AMme5IW1JlT6K .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Zo8AMme5IW1JlT6K .node .label{text-align:center;}#mermaid-svg-Zo8AMme5IW1JlT6K .node.clickable{cursor:pointer;}#mermaid-svg-Zo8AMme5IW1JlT6K .arrowheadPath{fill:#333333;}#mermaid-svg-Zo8AMme5IW1JlT6K .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Zo8AMme5IW1JlT6K .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Zo8AMme5IW1JlT6K .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-Zo8AMme5IW1JlT6K .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-Zo8AMme5IW1JlT6K .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Zo8AMme5IW1JlT6K .cluster text{fill:#333;}#mermaid-svg-Zo8AMme5IW1JlT6K .cluster span{color:#333;}#mermaid-svg-Zo8AMme5IW1JlT6K div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Zo8AMme5IW1JlT6K :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 排序 计数排序 选择排序 冒泡排序 插入排序 快速排序 排序算法的应用 投票 计数排序的原理与实现 数列排序 明明的随机数 奖学金 宇宙总统 选择排序 冒泡排序 插入排序 快速排序的原理 实现和分析 求第 k 小的数 借助快速排序的思想 使用 STL 中的 sort 进行排序 unique 去重 结构体排序 插入排序与选择排序思想 字符串排序 P1271 【深基9.例1】选举学生会
题目描述
学校正在选举学生会成员有 n n n n ≤ 999 n\le 999 n≤999名候选人每名候选人编号分别从 1 1 1 到 n n n现在收集到了 m m m m ≤ 2000000 m \le 2000000 m≤2000000张选票每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。
输入格式
输入 n n n 和 m m m 以及 m m m 个选票上的数字。
输出格式
求出排序后的选票编号。
样例 #1
样例输入 #1
5 10
2 5 2 2 5 2 2 2 1 2样例输出 #1
1 2 2 2 2 2 2 2 5 5#includeiostreamusing namespace std;int n,m,tmp,a[1010]{0};signed int main(){cinnm;for(int i0;im;i){cintmp;a[tmp];}for(int i1;in;i)for(int j0;ja[i];j)couti ;coutendl;return 0;
}
选择排序、冒泡排序、插入排序
选择排序
for(int i0;in-1;i){for(int ji1;jn;j){if(a[j]a[i]){int pa[i];a[i]a[j];a[j]p;}}
}冒泡排序
for(int i0;in-1;i){for(int j0;jn-i-1;j){if(a[j]a[j1]){int pa[j];a[j]a[j1];a[j1]p;}}
}插入排序
for(int i1;in;i){int nowa[i],j;for(ji-1;j0;j--)if(a[j]now)a[j1]a[j]else break;a[j1]now;
}快速排序
void quick_sort(int a[],int l,int r){int il,jr,flaga[(lr)/2],tmp;do{while(a[i]flag)i;while(a[j]flag)j--;if(ij){tmp a[i];a[i] a[j];a[j] tmp;、i;j--;}}while(ij);if(lj)quick_sort(a, l, j);if(ir)quick_sort(a, i, r);
}
排序算法的应用
[NOIP2006 普及组] 明明的随机数
题目描述
明明想在学校中请一些同学一起做一项问卷调查为了实验的客观性他先用计算机生成了 N N N 个 1 1 1 到 1000 1000 1000 之间的随机整数 ( N ≤ 100 ) (N\leq100) (N≤100)对于其中重复的数字只保留一个把其余相同的数去掉不同的数对应着不同的学生的学号。然后再把这些数从小到大排序按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
输入格式
输入有两行第 1 1 1 行为 1 1 1 个正整数表示所生成的随机数的个数 N N N。
第 2 2 2 行有 N N N 个用空格隔开的正整数为所产生的随机数。
** 输出格式**
输出也是两行第 1 1 1 行为 1 1 1 个正整数 M M M表示不相同的随机数的个数。
第 2 2 2 行为 M M M 个用空格隔开的正整数为从小到大排好序的不相同的随机数。
样例 #1
样例输入 #1
10
20 40 32 67 40 20 89 300 400 15样例输出 #1
8
15 20 32 40 67 89 300 400提示
NOIP 2006 普及组 第一题
#includeiostream
#includealgorithmusing namespace std;const int maxn 1010;int a[maxn],ans[maxn],n,cnt0,tmp-1;int main( ){cinn;for(int i0;in;i)cina[i];sort(a,an);for(int i0;in;i){if(a[i]!tmp)ans[cnt]a[i];tmpa[i];}coutcntendl;for(int i0;icnt;i)coutans[i] ;return 0;
}
#includeiostream
#includealgorithmusing namespace std;const int maxn 1010;int a[maxn],n,cnt0;int main( ){cinn;for(int i0;in;i)cina[i];sort(a,an);cnt unique(a,an)-a;coutcntendl;for(int i0;icnt;i)couta[i] ;return 0;
}
[NOIP2007 普及组] 奖学金
题目描述
某小学最近得到了一笔赞助打算拿出其中一部分为学习成绩优秀的前 5 5 5 名学生发奖学金。期末每个学生都有 3 3 3 门课的成绩:语文、数学、英语。先按总分从高到低排序如果两个同学总分相同再按语文成绩从高到低排序如果两个同学总分和语文成绩都相同那么规定学号小的同学 排在前面这样每个学生的排序是唯一确定的。
任务先根据输入的 3 3 3 门课的成绩计算总分然后按上述规则排序最后按排名顺序输出前五名名学生的学号和总分。注意在前 5 5 5 名同学中每个人的奖学金都不相同因此你必须严格按上述规则排序。例如在某个正确答案中如果前两行的输出数据(每行输出两个数:学号、总分) 是: 7 7 7 279 279 279 5 5 5 279 279 279
这两行数据的含义是:总分最高的两个同学的学号依次是 7 7 7 号、 5 5 5 号。这两名同学的总分都是 279 279 279 (总分等于输入的语文、数学、英语三科成绩之和) 但学号为 7 7 7 的学生语文成绩更高一些。如果你的前两名的输出数据是: 5 5 5 279 279 279 7 7 7 279 279 279
则按输出错误处理不能得分。
输入格式
共 n 1 n1 n1行。
第 1 1 1 行为一个正整数 n ( ≤ 300 ) n ( \le 300) n(≤300)表示该校参加评选的学生人数。
第 2 2 2 到 n 1 n1 n1 行每行有 3 3 3 个用空格隔开的数字每个数字都在 0 0 0 到 100 100 100 之间。第 j j j 行的 3 3 3 个数字依次表示学号为 j − 1 j-1 j−1 的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为 1 ∼ n 1\sim n 1∼n恰好是输入数据的行号减 1 1 1。
所给的数据都是正确的不必检验。
//感谢 黄小U饮品 修正输入格式
** 输出格式**
共 5 5 5 行每行是两个用空格隔开的正整数依次表示前 5 5 5 名学生的学号和总分。
** 样例 #1**
样例输入 #1
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98样例输出 #1
6 265
4 264
3 258
2 244
1 237** 样例 #2**
样例输入 #2
8
80 89 89
88 98 78
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98** 样例输出 #2**
8 265
2 264
6 264
1 258
5 258#includeiostream
#includealgorithmusing namespace std;int const MAXN 310;
int n;struct student{int id,chinese,total;
}a[MAXN];int cmp(student a,student b){if(a.total!b.total)return a.totalb.total;if(a.chinese!b.chinese)return a.chineseb.chinese;return a.idb.id;
}int main(){cinn;for(int i0;in;i){int math,english;cina[i].chinesemathenglish;a[i].total a[i].chinesemathenglish;a[i].id i1;}sort(a,an,cmp);for(int i0;i5;i)couta[i].id a[i].totalendl;return 0;
}
P1781 宇宙总统
题目描述
地球历公元 6036 年全宇宙准备竞选一个最贤能的人当总统共有 n n n 个非凡拔尖的人竞选总统现在票数已经统计完毕请你算出谁能够当上总统。
输入格式
第一行为一个整数 n n n代表竞选总统的人数。
接下来有 n n n 行分别为第一个候选人到第 n n n 个候选人的票数。
输出格式
共两行第一行是一个整数 m m m为当上总统的人的号数。
第二行是当上总统的人的选票。
样例 #1
样例输入 #1
5
98765
12365
87954
1022356
985678样例输出 #1
4
1022356** 提示**
票数可能会很大可能会到 100 100 100 位数字。 1 ≤ n ≤ 20 1 \leq n \leq 20 1≤n≤20。
#includeiostream
#includealgorithmusing namespace std;
const int MAXN 25;
struct node{string x;int num;
}s[MAXN];
bool cmp(node a,node b){if(a.x.length()!b.x.length())return a.x.length()b.x.length();return a.xb.x;
}
int n;
int main(){cinn;for(int i0;in;i){cins[i].x;s[i].num i1;}sort(s,sn,cmp);couts[0].numendls[0].x;return 0;
}
练习题 超级书架 2676车厢重组 1116欢乐的跳 1152分数线划定 1068攀爬者 5143生日 1104拼数 1012