解题思路:
看到这题题解居然都用的动态规划包括优质题解,大哥不要误导别人啊,明明几分钟就做出来了。
具体思路 贪心
for(i从0遍历到k-1)
比如 如果要选i号积分的兄dei,那么(i+2k),(i+4k)...(i+2*N*k)的兄dei就全部留下, (i+k+2*N*k)的朋友就全部扔了。 如果不选i号的兄dei,那就反之。 然后看这两个哪个大,就加到ans上面去
具体请研究代码
注意事项:
参考代码:
#include<iostream> #include<cstdio> #include<algorithm> #define RI(a) scanf("%d",&a); #define _for(i,a,b) for(int i=a;i<b;i++) using namespace std; typedef long long LL; int n,k,a[100005],x; LL ans=0; int main() { RI(n);RI(k); _for(i,0,n){ RI(x); if(!k&&!a[x])ans++; //一条代码处理k==0情况 a[x]++; } _for(i,0,k){ LL cnt1=0,cnt2=0; for(int j=i,f=0;j+k<100002;j+=k,f=1-f){ if(f)cnt1+=a[j]; else cnt2+=a[j]; } ans+=max(cnt1,cnt2); } printf("%d\n",ans); }
0.0分
2 人评分
点我有惊喜!你懂得!浏览:1417 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:724 |
C语言训练-求函数值 (C语言代码)浏览:600 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:644 |
【排队买票】 (C语言代码)浏览:944 |
淘淘的名单 (C语言代码)浏览:1167 |
【简单计算】 (C语言代码)浏览:642 |
【魔板】 (C++代码)(时间超限,希望会的帮我改正一下)浏览:804 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:541 |
第三届阿里中间件性能挑战赛-总决赛亚军比赛攻略浏览:1170 |