Codeforces Round #653 (Div. 3) D. Zero Remainder Array (数学,模拟)

- 题意:有一组数,刚开始时\(x=0\),每次可以让\(x\)++或让某一个元素+=\(x\)后\(x\)++,每个元素只能加一次\(x\),问最少操作多少次使得所有元素能被\(k\)整除. 
- 题解:每个元素只能被加一次,我们对每个元素%\(k\),然后记录他们出现的次数(不考虑\(k\)能整除的情况),因为\(x\)是递增的,所以如果我们将取余后的数看成一个数组的话,就相当于\(x\)在这个数组上跑循环,直到循环次数等于数组中最大的那个数为止(同时下标也要尽可能的大),所以答案也就是 (\(x\)从\(0\)到满足条件的步数+(循环次数-1)*\(k\)). 
- 代码: - int t;
 int n,k;
 ll x;
 map<ll,ll> mp; int main() {
 ios::sync_with_stdio(false);cin.tie(0);
 cin>>t;
 while(t--){
 cin>>n>>k;
 mp.clear();
 ll mx=0;
 ll num;
 for(int i=1;i<=n;++i){
 cin>>x;
 x%=k;
 if(x!=0){
 mp[x]++;
 if(mp[x]>mx){
 mx=mp[x];
 num=k-x;
 }
 else if(mp[x]==mx && k-x>num){
 num=k-x;
 }
 }
 }
 if(mx==0){
 cout<<0<<endl;
 }
 else{
 cout<<(mx-1)*k+num+1<<endl;
 }
 } return 0;
 }
Codeforces Round #653 (Div. 3) D. Zero Remainder Array (数学,模拟)的更多相关文章
- Codeforces Round #653 (Div. 3)   A. Required Remainder  (数学)
		题意:有三个正整数\(x,y,n\),再\(1\)~\(n\)中找一个最大的数\(k\),使得\(k\ mod\ x=y\). 题解:先记\(tmp=n/x\),再判断\(tmp*x+y\)的值是否大 ... 
- Codeforces Round #368 (Div. 2) C. Pythagorean Triples(数学)
		Pythagorean Triples 题目链接: http://codeforces.com/contest/707/problem/C Description Katya studies in a ... 
- Codeforces Round #622 (Div. 2) B. Different Rules(数学)
		Codeforces Round #622 (Div. 2) B. Different Rules 题意: 你在参加一个比赛,最终按两场分赛的排名之和排名,每场分赛中不存在名次并列,给出参赛人数 n ... 
- Codeforces Round #653 (Div. 3)
		比赛链接:https://codeforces.com/contest/1374 A. Required Remainder 题意 给出 $x, y, n$,找到最大的整数 $0 \le k \le ... 
- Codeforces Round #653 (Div. 3)  E1. Reading Books (easy version)  (贪心,模拟)
		题意:有\(n\)本书,A和B都至少要从喜欢的书里面读\(k\)本书,如果一本书两人都喜欢的话,那么他们就可以一起读来节省时间,问最少多长时间两人都能够读完\(k\)本书. 题解:我们可以分\(3\) ... 
- Codeforces Round #653 (Div. 3)  C. Move Brackets
		题意/题解:经典括号匹配题目,不多说了. 代码: int t; int n; string s; int cnt; int main() { ios::sync_with_stdio(false);c ... 
- Codeforces Round #653 (Div. 3)  B. Multiply by 2, divide by 6  (数学)
		题意:有一个数\(n\),每次操作可以使\(n*=2\)或\(n/=6\)(如果能被整除),求最少操作次数使得\(n=1\),如果不满足,输出\(-1\). 题解:我们只要看\(n\)的质因子即可,如 ... 
- Codeforces Round #272 (Div. 2)C. Dreamoon and Sums  数学推公式
		C. Dreamoon and Sums Dreamoon loves summing up something for no reason. One day he obtains two int ... 
- Codeforces Round #370 (Div. 2) E. Memory and Casinos (数学&&概率&&线段树)
		题目链接: http://codeforces.com/contest/712/problem/E 题目大意: 一条直线上有n格,在第i格有pi的可能性向右走一格,1-pi的可能性向左走一格,有2中操 ... 
随机推荐
- Java开发手册之设计规约
			1.谨慎使用继承的方式来进行扩展,优先使用聚合/组合的方式来实现.说明:不得已使用继承的话,必须符合里氏代换原则,此原则说父类能够出现的地方子类一定能够出现,比如,"把钱交出来", ... 
- 串口使用Pipeline时诡异的ReadOnlySequence问题
			借鉴之前的Pipeline的操作方式,现在目标是给串口读取操作也使用上Pipeline.稍微改造一下,以下代码可以直接运行. 协议为使用连续的4个0XFF作为结尾,没有头标志.数据总长为68位定长. ... 
- 为什么不建议用var
			看了这个例子估计你就会明白了 var a = 'global'; function test() { if (!a) { var a = 'part'; } console.log(a); } tes ... 
- ALV中的分隔条(SPLITTER_CONTROL)
			如上图,可以做成左右的分割,当然也可以做成上下的分割效果,在每个分割的容器内,显示各自的内容. 需要使用的class: cl_gui_splitter_container, cl_gui_custom ... 
- 被集群节点负载不均所困扰?TKE 重磅推出全链路调度解决方案
			引言 在 K8s 集群运营过程中,常常会被节点 CPU 和内存的高使用率所困扰,既影响了节点上 Pod 的稳定运行,也会增加节点故障的几率.为了应对集群节点高负载的问题,平衡各个节点之间的资源使用率, ... 
- SP338 ROADS
			题目描述 城市中有R条有向马路,n个马路连接点,通过每条马路都要花去一定费用.你现在在编号为1的连接点 ,手里有k元钱,要去n号连接点的最短路径的长度是多少?途中经过道路的花费不能超过k.注意:两个 ... 
- 阿里云VOD(二)
			一.准备工作 1.设置不转码 测试之前设置默认"不转码",以节省开发成本 2.找到子账户的AccessKey ID 3.给子账户添加授权 AliyunVODFullAccess 4 ... 
- Atlas 2.1.0 实践(3)—— Atlas集成HIve
			Atlas集成Hive 在安装好Atlas以后,如果想要使用起来,还要让Atlas与其他组件建立联系. 其中最常用的就是Hive. 通过Atlas的架构,只要配置好Hive Hook ,那么每次Hiv ... 
- 一体化的Linux系统性能和使用活动监控工具–Sysstat
			[转]原文出处: Tecmint-Kuldeep Sharma 译文出处:Linux Story-天寒 欢迎分享原创到伯乐头条 在监控系统资源.系统性能和使用活动方面,Sysstat的确是一个 ... 
- __init__ raises an exception, then __del__ will still be called
			issue 808164: socket.close() doesn't play well with __del__ - Python tracker https://bugs.python.org ... 
