CF1516A
2021/4/23 18:58:21
本文主要是介绍CF1516A,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
A. Tit for Tat
这个题不是很难。
考虑贪心。我们一定要先把前面的数字给尽量变成 \(0\),把数字全加到最后一个数身上。这一定是最优的做法。
读者自证不难
如果指针到了最后有一个数,但是 \(k\) 还不为 \(0\),就退出循环。因为题目里说:
at most \(k\) operations
读者可以自己想一下,如果没有 at most 这个条件,怎么做,也挺简单的。
//Don't act like a loser. //This code is written by huayucaiji //You can only use the code for studying or finding mistakes //Or,you'll be punished by Sakyamuni!!! #include<bits/stdc++.h> #define int long long using namespace std; int read() { char ch=getchar(); int f=1,x=0; while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=x*10+ch-'0'; ch=getchar(); } return f*x; } const int MAXN=101; int n,k; int a[MAXN]; signed main() { int t=read(); while(t--) { n=read();k=read(); for(int i=1;i<=n;i++) { a[i]=read(); } int p=1; while(k&&p<n) { if(a[p]<=k) { k-=a[p]; a[n]+=a[p]; a[p]=0; p++; } else { a[n]+=k; a[p]-=k; k=0; } } for(int i=1;i<=n;i++) { printf("%lld ",a[i]); } puts(""); } return 0; }
这篇关于CF1516A的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享