竞赛
考级
[NOIP2009 普及组] 分数线划定 题解 AC代码(C++): 此处英文注释为自己靠着自己的英语知识使用百度翻译(fanyi.baidu.com/#zh/en/)所写,请酌情添加
ጿ ኈ ቼ ዽ ጿ
#include<iostream> #include<stdio.h> using namespace std; int main(){ int m,n; cin >> n >> m; int a[2][n]; m *= 1.5; for(int c=0 ;c<n; c++){ cin >> a[0][c] >> a[1][c]; } for(int c=0; c<n; c++){ for(int z=n-1; z > c; z--){ if(a[0][z]<a[0][z-1]){ swap(a[1][z],a[1][z-1]); swap(a[0][z],a[0][z-1]); } } } for(int c=0; c<n; c++){ for(int z=n-1; z > c; z--){ if(a[1][z]>a[1][z-1]){ swap(a[1][z],a[1][z-1]); swap(a[0][z],a[0][z-1]); } } } int c=m-1; for (; c<(n-1) && a[1][c] == a[1][c+1]; ++c); }
北辰有猫病
#include <bits/stdc++.h> using namespace std; int s[105],k[10005][105]; int main(void) { int n,m,ss,kk,count = 0,i,max = 0,x,j; scanf("%d%d",&n,&m); m = m * 1.5; for (i = 0;i < n;i++) { scanf("%d%d",&kk,&ss); k[kk][ss]; s[ss]; } for (i = 100;count < m;i--) count += s[i]; printf("%d %d\n",i + 1,count); x = i + 1; for(i = 100;i >= x;i--) for(j = 1000;j <= 10000;j++) if(k[j][i]) printf("%d %d\n",j,i); return 0; }
法兰西玫瑰
code
TX_Bernie
New Bing闪击ACGO
#include <bits/stdc++.h> //导入万能工具箱 using namespace std; int main(){ int m,n; cin >> n >> m; int a[2][n]; m *= 1.5; for(int c=0 ;c<n; c++){ cin >> a[0][c] >> a[1][c]; } for(int c=0; c<n; c++){ for(int z=n-1; z > c; z--){ if(a[0][z]<a[0][z-1]){ swap(a[1][z],a[1][z-1]); swap(a[0][z],a[0][z-1]); } } } for(int c=0; c<n; c++){ for(int z=n-1; z > c; z--){ if(a[1][z]>a[1][z-1]){ swap(a[1][z],a[1][z-1]); swap(a[0][z],a[0][z-1]); } } } int c=m-1; for (; c<(n-1) && a[1][c] == a[1][c+1]; ++c); cout << a[1][c] << " " << c + 1 << endl; for(int i=0;i<=c;i++){ cout<<a[0][i]<<" "<<a[1][i]<<endl; } }
ZhangCxuan
不会的可以参考一下我的代码 代码如下
☣☢核癌☯渴氢☢☣
第一秩序 - TIE
#include <future> #include <algorithm> using namespace std; struct information{ int k,s; bool operator<(information v){ if(s!=v.s) return s>v.s; return k<v.k; } }a[5001];int n,m; int main(){ scanf("%d%d",&n,&m); m+=m/2; for(int i=1;i<=n;i++)scanf("%d%d",&a[i].k,&a[i].s); sort(a+1,a+n+1); for(int i=m+1;a[i].s==a[m].s&&i<=n;i++)m++; printf("%d %d\n",a[m].s,m); for(int i=1;i<=m;i++)printf("%d %d\n",a[i].k,a[i].s); }
史莱克七怪
这是本蒟蒻的第一篇题解 题目分析 题目的核心是计算面试分数线,并根据这个分数线筛选出进入面试的选手。具体步骤如下: 读取输入数据 首先,读取总选手数n和计划录取志愿者人数m。然后,读取每位选手的报名号和笔试成绩。 计算面试分数线 m计算面试分数线。面试分数线是排名第m * 150%(向下取整,函数floor(float a OR double b))名的选手的分数。这意味着如果计划录取m名志愿者,那么排名在m * 150%以内(包括边界)的选手都能进入面试。 筛选和排序 根据面试分数线,筛选出所有笔试成绩不低于面试分数线的选手。然后,按照题目要求对这些选手的成绩进行排序:首先按成绩降序排序,如果成绩相同,则按报名号升序排序。 输出结果 首先输出面试分数线和实际进入面试的选手人数。然后,按照成绩(降序)和报名号(升序)顺序,输出这些选手的报名号和笔试成绩。 解题关键 排序算法的选择 使用常见的排序算法(如快速排序、归并排序等)或直接利用编程语言提供的排序函数sort。 数据结构的设计 为了方便地同时处理报名号和成绩,可以定义一个简单的结构体或类,或者使用两个并行数组(一个存储报名号,另一个存储成绩)。 精确控制排序规则 需要准确实现题目要求的排序规则——首先按成绩降序,再按报名号升序。 注意边界条件 特别是面试分数线的计算和重分情况的处理,需要仔细考虑。 代码环节 前面的题目解析你看了吗? 就知道你没看,都是冲着答案来的,但也有例外 AC代码!AC,GO! 其他没什么了,这篇题解到此结束
荣耀13 Pro MAX
话不多说,请看题解~
远在天边的浪子
#include<iostream> #include<stdio.h> using namespace std; int main(){ int m,n; cin >> n >> m; int a[2][n]; m *= 1.5; for(int c=0 ;c<n; c++){ cin >> a[0][c] >> a[1][c]; } for(int c=0; c<n; c++){ for(int z=n-1; z > c; z--){ if(a[0][z]<a[0][z-1]){ swap(a[1][z],a[1][z-1]); swap(a[0][z],a[0][z-1]); } } } for(int c=0; c<n; c++){ for(int z=n-1; z > c; z--){ if(a[1][z]>a[1][z-1]){ swap(a[1][z],a[1][z-1]); swap(a[0][z],a[0][z-1]); } } } int c=m-1; for (; c<(n-1) && a[1][c] == a[1][c+1]; ++c); cout << a[1][c] << " " << c + 1 << endl; for(int i=0;i<=c;i++){ cout<<a[0][i]<<" "<<a[1][i]<<endl; } }
章静远
#include <bits/stdc++.h> using namespace std; struct r{ string id; int f; }; bool cmp(r a,r b){ if(a.f != b.f)return a.f>b.f; else return a.id<b.id; } int main(){ int n,m; cin>>n>>m; r a[n]; int b[110]={0}; for(int i=0;i<n;i++){ cin>>a[i].id>>a[i].f; b[a[i].f]; } int fsx,rs=0; m=floor(m*1.5); for(int i=100;i>=1;i--){ if(m<1) break; for(int j=0;j<b[i];j){ rs++; m--; } fsx=i; } sort(a,a+n,cmp); cout<<fsx<<" "<<rs<<endl; for(int i=0;i<n;i++){ if(a[i].f>=fsx){ cout<<a[i].id<<" "<<a[i].f<<endl; } } return 0; }
对方正在输入...
邱振凯Цю Чжэнькай
(所有注释都在代码块里) AC代码
唱跳坤
空降坐标:CP002689 来源:NOIP2009 普及组 请看代码
Neumann
嫌疑を避ける ~~
https://www.acgo.cn/application/1683064920928477184
👇🐎😭👌
#include<iostream> #include<stdio.h> using namespace std; int main(){ int m,n; cin >> n >> m; int a[2][n]; m *= 1.5; for(int c=0 ;c<n; c++){ cin >> a[0][c] >> a[1][c]; } for(int c=0; c<n; c++){ for(int z=n-1; z > c; z--){ if(a[0][z]<a[0][z-1]){ swap(a[1][z],a[1][z-1]); swap(a[0][z],a[0][z-1]); } } } for(int c=0; c<n; c++){ for(int z=n-1; z > c; z--){ if(a[1][z]>a[1][z-1]){ swap(a[1][z],a[1][z-1]); swap(a[0][z],a[0][z-1]); } } } int c=m-1; for (; c<(n-1) && a[1][c] == a[1][c+1]; ++c); cout << a[1][c] << " " << c + 1 << endl; for(int i=0;i<=c;i++){ cout<<a[0][i]<<" "<<a[1][i]<<endl; } } 有帮助,赞一个
小垃圾
共30条