P2777 [AHOI2016初中组]自行车比赛——洛谷


真是不好意思,感觉我的代码比各路大神,简单多了

主要是循环一边

利用贪心的思想,假设当前a[i]是第一

把他与当前序列最大的a[n]

因为已经排好了顺序如果a[n]的分数排到最后一名满足没有排到第一名的a[i]所得的分大

a[i]就满足

ans++ 代码很短 不懂可以私信我

题解 by >.< 我为saber上大师

我的博客园,刚刚创建的,大家有兴趣,可以关注一下,大家也可以交个朋友QAQ

#include<bits/stdc++.h> using namespace std; int n,a[10000000]; int main() { cin>>n; for(int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+1+n); int ans=0; for(int i=1;i<=n;i++) { if(a[n]-a[i]<=n-1) ans++; } cout<<ans; return 0; }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM