- 博客(39)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 有关计算机网络和网络编程一块知识点(复习自己理解+看大佬博客)
计算机网络TCP协议和UDP协议的区别TCP协议和UDP协议的区别TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。 一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂, 只简单的描述下这三次对话的简单过程:1)主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话; 2)主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作
2021-07-13 17:58:47
318
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 C++中使用空对象指针调用成员函数和delect this
C++中,空指针是不能够使用的,然后空对象指针有时候却能够调用成员函数。 下面定义一个简单的类:class TestCls { public : static void Test_Fun1(){ cout<< "Test_Fun1" <<endl; } void Test_Fun2(){ cout<&l
2021-07-12 10:21:02
631
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 关于排序的一些算法(自己复习用的)
1、快速排序精髓一、先从数列中取出一个数作为基准数 二、分区,将比这个数大的数全放到它的右边,小于或等于它的数全部放到它的右边 三、对左右区间重复步骤(二),直到各区间只有一个数为止#include<bits/stdc++.h>using namespace std;void qsort(int a[],int l,int r){ if(l>=r) return ; ///找完了 int x=a[l+r>>1];///选中间数为基数然后去快排
2021-06-16 20:00:56
92
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 大数模拟 加减乘除 判断大数是否为素数 板子
重载+ - * /#include<iostream>#include<vector>#include<string>using namespace std;struct Wint:vector<int>//用标准库vector做基类,完美解决位数问题,同时更易于实现{ //将低精度转高精度的初始化,可以自动被编译器调用 //因此无需单独写高精度数和低精度数的运算函数,十分方便 Wint(int n=0)//默认初始化为0
2020-11-16 20:26:40
208
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 ACM数学题做题记录
仅以此博客记录每次遇到的数论,以便日后的复习(口胡:根本不可能再看 )1.2020ICPC·小米 网络选拔赛第一场 Intelligent Warehouse(数学)2.2020牛客NOIP赛前集训营-提高组(第一场)牛牛的方程式 (求解不定方程)3.Math Problem 2017广西邀请赛 矩阵快速幂+递推...
2020-10-26 15:21:21
202
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Math Problem 2017广西邀请赛 矩阵快速幂+递推
原题传送门题解:首先蒟蒻不会推,然后oeis大法好,f(n)=f(n-1)+5*f(n-2)+f(n-3)-f(n-4);那么这个不就是矩阵快速幂了呀;#include <bits/stdc++.h>#define fio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);#define debug(x) cout << #x << ": " << x << endl;#defin
2020-07-10 16:53:57
93
1
转载 大端小端的理解
什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。为什么会有大小端:为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者3
2021-12-22 16:31:44
154
原创 memmove源码
如果两段内存重叠,用memcpy函数可能会导致行为未定义。 而memmove函数能够避免这种问题,下面是一种实现方式#include <iostream>using namespace std;void* memmove(void* str1,const void* str2,size_t n){ char* pStr1= (char*) str1; char* pStr2=(char*)str2; if (pStr1< pStr2 ) {
2021-09-29 22:07:44
330
原创 C++智能指针
sharedshared_ptr智能指针:多个shared_ptr中的T *ptr能指向同一个内存区域(同一个对象),并共同维护同一个引用计数器。一般来说,智能指针的实现需要以下步骤:1.一个模板指针T* ptr,指向实际的对象。2.一个引用次数(必须new出来的,不然会多个shared_ptr里面会有不同的引用次数而导致多次delete)。3.重载operator*和operator->,使得能像指针一样使用shared_ptr。4.重载copy constructor,使其引用次数加一
2021-09-01 17:43:23
122
原创 C++知识点
什么是字节对齐计算机中内存大小的基本单位是字节(byte),理论上来讲,可以从任意地址访问某种基本数据类型,但是实际上,计算机并非逐字节大小读写内存,而是以2,4,或8的 倍数的字节块来读写内存,如此一来就会对基本数据类型的合法地址作出一些限制,即它的地址必须是2,4或8的倍数。那么就要求各种数据类型按照一定的规则在空间上排列,这就是对齐。对齐准则是什么?1.结构体变量的首地址能够被其对齐字节数大小所整除。2.结构体每个成员相对结构体首地址的偏移都是成员大小的整数倍,如不满足,对前一个成员填充字节以
2021-07-06 11:47:27
59
1
原创 Codeforces Round #717 (Div. 2) A-C题解
心得:打这个比赛的时候由于读题,自己变成一个大傻逼了,反思了一晚上 ,确实还是自己做的不够好,下面我口胡一篇自己的对于这几个题的解答。比赛地址传送门开始了:A题意:给出长度为N 的数组和可以操作的最大次数,然后要求你找出非负的最小的数组字典序,然后有一个操作,选择一个数组+1,一个数组-1,直到找到最小字典序,或者操作做完。题解:直接就是把所有的数字[1–n-1]这个范围的数字依次减 然后+到第N个数上,特别要小心一下中间的的过程可能初始就是为0int ans[maxx];int mai
2021-04-22 17:47:46
253
1
转载 C++STL中reverse()和 reserve()函数
很是恶心 很搞英语水平。注意啦。首先看reverse()函数:reserve()函数reserve(输入你需要的空间大小)是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用容器内的元素,因此当加入新的元素时,需要用push_back()/insert()函数。undered_map在使用的时候最好先去预先开一下空间 实际上是不断扩容消耗了大量的时间,在使用之前预留空间就没有任何问题,查询就很快了 比map还要快...
2021-03-30 20:10:54
1375
原创 Codeforces Round #705 (Div. 2) C. K-beautiful Strings(贪心+思维)
C. K-beautiful Strings(贪心+思维)题意:给你一个字符串长度为N,再给你一个K。要求字符串中每个字符出现的总数是K的倍数,如果不是K的倍数,那么就修改字符串,修改后的字符串比原字符串打,而且输出大于原字符串的最小字符串。例:15 3a b c c c c b b a b c c c c aa b c c c c b b a c a a a a c题解:如上述样例第十个变成c,后面的变成a然后补充c,这个过程是怎么来的?首先我们应该先处理每个字符的总数,然后从后面往前面开始处
2021-03-16 16:40:31
120
原创 Educational Codeforces Round 105 (Rated for Div. 2)C (二分+思维)
C. 1D Sokoban这题是一道相当好的二分思维题啊,题意很秒,思维很难想到。口胡: 必须写下来留着以后出题上正文。题意:人在一个一维的坐标上,处于0位置,然后左右都有箱子共N个 每个箱子位置为a[i],然后一维坐标上有完美位置b[i],共有M个,之后人会推动箱子去完美位置,但是人不可以越过面前的箱子去推后面的,如果遇到了下一个,那么箱子就会+1个,一起推动,假如最右边的箱子在最右边的完美位置,那么最右边的那个箱子就可以不动,问这样左右都推箱子后,可以得到最多的完美位置上有箱子的个数是多少?(推动
2021-03-10 16:43:00
139
原创 Codeforces Round #659 (Div. 2)D. GameGame(思维)
题意:两个人,n个数字,每个人每次可以选择一个,然后最后将每个人选择的数字最后异或起来,看谁的大。题解:首先我们一定要想到就是关于二进制的每一位的关系,以及如何取 ,我们可以很明确的发现,二进制从高位往低位遍历的时候 后面低位的二进制加起来绝对不会大于最高位,所以,现在我们可以预处理每个数字,判断其中每一位的个数:加入当前位1有X个,0有Y个;X+Y=N;如果X%4偶数,那么这一位无用,因为最后都可以异或为0;如果X%41,那么最后先手必赢,因为当前最高位有额外的一位,后面所有的每一位的1加起来都不
2021-01-12 21:12:04
248
原创 Codeforces Round #659 (Div. 2)B2. Koa and the Beach (Hard Version)思维
题意:给你n,k,l,表示koa距离目标的距离、涨潮的周期和koa的高度。koa一秒只能游泳一个距离。接着n个输入涨潮之前的海水高度。涨潮的规律是k秒上涨k秒下跌。当海水超过l时,koa就会被淹死。传送门题解:按照正常来走,首先判断当前位置是否最大差值能够直接走,如果可以,那么当前把潮变成落潮最大化-k(安全位置涨潮最大,然后最大慢慢落潮),如果不可以 那么就使上一个的潮增加1,这个过程需要更新就是max(上一次的潮+1,–(l-当前初始潮)),因为退潮的时候必须找到一个安全的最大退潮。#pragma
2021-01-04 20:58:10
141
原创 完全二叉树的层序遍历(模板)以及树的其他类型题
传送门一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。输入格式:输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。输出格式:在一行中输出该树的层序遍历序列。所有数字都以 1 个空格分隔,行首
2020-12-02 21:29:29
606
原创 结构体初始化
struct node { ll l,r,lazy,val; node() :l(),r(),lazy(),val(){} node(ll a, ll b, ll c,ll d) :l(a),r(b),lazy(c),val(d){}};
2020-11-23 18:04:35
80
原创 卡特兰数+卢卡斯定理+组合数
既然写到这里了就先来写一下卡特兰数吧;卡特兰数有四个公式,但我们要分析每个公式的用处。公式一递归公式h(0)=h(1)=1h(n)= h(0)*h(n-1)+h(1)*h(n-2) + … + h(n-1)*h(0) (n>=2)如果我们用这个公式显然我们要使用递归算法,那么数据一大就在时空上很麻烦公式二递推公式h(n)=h(n-1)(4n-2)/(n+1)这个公式应用递推,但是对于大数据有点鸡肋我们注意到大数据的时候h(n)会很大,这时候题目一般会让你对某素数取模(当然你可以打
2020-11-09 21:02:45
449
原创 2020CCPC绵阳场(部分题解)
7-4 D Defuse the Bombs题意:有N个东西价值分别为Ai,然后接下来三个操作同时发生。1.每个物品价值-1;2.选择一个物品价值+13.当有物品价值为-1时,结束三个操作,若不为-1,那么继续执行操作1,2;求最多可以操作几次?题解:结束条件必然是有1个或者多个物品价值变成-1,然后必然可以枚举答案,然后利用答案去找满足的条件,对于答案我们可以去猜,那么是不是就是一个二分答案。注意细节问题,对于二分有可能有小的答案满足,一定要在满足的答案里面找一个max#pragma GCC
2020-11-04 19:22:36
1396
1
原创 2020 China Collegiate Programming Contest Weihai Site L Clock Master(分组背包+思维)
2020威海现场赛L 分组背包+思维题意:读不懂是真的很烦,看样例都给我猜 给你一个数字N,然后N=a1+a2+a3…+ak, 找出LCM(a1,a2,a3,a4…ak)的最大值 然后取log;题解:要想找到LCM最大,那么必然每个数要互素,这样子就可以产生最大的贡献,所以我们先预处理所有的范围的素数,然后,分组背包跑一次(借鉴一个大佬写的分组背包,写的很详细),把所有的情况都预处理,然后O(1)查询。为什么要找素数?这样的目的?只有每个数字互素,才可以产生最大的LCM ,最后使用分组背包的思
2020-11-03 13:26:04
156
原创 2020 China Collegiate Programming Contest Weihai Site D ABC Conjecture(数论)
2020CCPC 威海站 D ABC Conjecture(数论)题意 :给一个数 C(1-1e18),要求找到一个a,b。a+b=c;然后abc的积里面的素数因子要求< c,如果可以找到那么答案yes,否者no。题解:首先可以明确的发现如果C是素数,一定是no,因为 a,b里面必然还有别的素因子,那么相乘必然大于c,所以现在就是判断合数,那么怎么样合数满足条件,C=A * B * C * D * E…;我们可以把C这样表示出来,然后要尽量去减少他的因数的贡献是不是他的因子里面就要有幂次的,这样子
2020-10-29 16:21:29
679
1
原创 2016ACM/ICPC亚洲区沈阳站-重现赛Recursive sequence(矩阵快速幂)
题意: Fi=F[i-1]+2*F[i-2]+i^4。给定F1和F2求Fn。一个犇犇推的i^4题解:很明显就是矩阵快速幂 ,但是我们要想去如何构建这个矩阵,式子要是线性的才可以构造,那么我们现在就把他变成线性。先考虑F[i-1]+2*F[i-2];我们可以构建矩阵| 1 2 | | F[i-1] || 1 0 | | F[i-2] |然后 我们可以把i^4 构造成 (i+1)^4 ,(i+1)^4 = i
2020-10-28 13:35:29
139
转载 2013 ACM-ICPC长沙赛区全国邀请赛 A题 so easy(数学+矩阵快速幂)
2013 ACM-ICPC长沙赛区全国邀请赛 A题 so easy(数学+矩阵快速幂)题意:给你a,b,n,m;求Sn;(答案向上取整);0< a, m < 2^15, ( a-1)^2< b < a^2 , 0 < b, n < 2^31题解:题目范围很巧妙 ,这儿要借用大佬的图%%%最后K1 K2不用管 我自己的写法没有用。接下来看我手推/*///> 口胡:矩阵快速幂一般板子打好 就不会有问题 ,主要就是注意
2020-10-27 17:40:50
292
原创 Codeforces Round #678 (Div. 2) C. Binary Search组合数+快速幂逆元
Codeforces Round #678 (Div. 2)C 组合数+快速幂逆元题意:给你一个二分的模板,然后就是给你一个序列长度为N,固定序列中一个位置pos,该处的值为 x,问 我有多少种序列可以在无序的时候依旧可以使用二分找到这个x。序列是从0—N-1的。题解:首先我们要知道,mid=L+R>>1;每次查询的这个(mid-1位置上的数)值要是在pos左边那必须是小于x,在右边一定是大于的,所以我们可以先二分pos的左右两边,找到小于等于x的个数a,大于x的个数b。注意,二分条件里面.
2020-10-26 21:45:01
162
3
原创 2020ICPC·小米 网络选拔赛第一场 Intelligent Warehouse(数学)
仅以此博客记录每次遇到的数论,以便日后的复习(口胡:根本不可能再看 )2020ICPC·小米 网络选拔赛第一场 Intelligent Warehouse(数学)传送门题意:给你一个数组a包含N个数,然后找一个最长的子数组,要求每个子数组里面的任意两个数能够整除。求个子数组的长度;题解:1 4 2 8 5 7 样例很清楚 最长就是1 2 4 8 答案为4,首先我们预处理1e7的素数,然后再去标记数组a的出现次数,然后每次我们都去枚举每个素数的倍数 积然后更新最大,dp[i*prime[j]=m
2020-10-26 15:13:19
182
原创 2020牛客NOIP赛前集训营-提高组(第一场)牛牛的方程式 (求解不定方程)
传送门题意:ax+by+cz=d中有没有至少存在一组{{x,y,z}}{x,y,z}的解,且x,y,z都为整数,使得方程式成立。如果成立yes 否者no,给你a,b,c,d,的值。题解:看这个方程首先应该很容易想到扩展欧几里得,就是解不定方程的,那么首先我们可以写出ax+by=m; 这个方程要想有解必须ax+by=gcd(a,b)*k=m, 那么是不是现在我们就可以换元,ax+by=gcd(a,b)*k, gcd(a,b)是已知,那么未知的k,我们就又可以把他看成是一个 gcd(a,b)*k+cz=
2020-10-19 11:24:32
307
原创 2019 China Collegiate Programming Contest Qinhuangdao Onsite F - Forest Program判环
传送门密码GGLNB题意:就是你N个点,M条边,然后删去边,成为森林,图中有环,无向图无重边,问你有多少种情况可成为森林。题解:首先我们可以很明确的想到 (不懂画一下图),每一个环的情况是 选择删1个边,或者2个或者3个边直到N个边 ,那么就是组合数中所有情况2^n – 1,(减去不选边的情况1种),然后找出每个环的个数相乘,然后单边的数量num=总边M-环的数量,然后在乘以2^ num;主要就是dfs找环,然后利用每个树的深度去处理,如果deep[to]<deep[x],并且那么说明就是一个环
2020-10-15 17:09:58
225
原创 8VC Venture Cup 2017 - Elimination Round D. PolandBall and Polygon 树状数组+思维 妙啊
题意:给你一个凸N边形,然后一个K,每次从1到1+k连线,然后下一次1+k到1+k+k,依次这样连线,直到最后有重复的线出现,问每次新连一条线可以将该N边形分成几块。题解:由于GCD(n,k)=1,所以肯定可以连N次,关键是连边产生的规则,自己可以手动模拟一下, 可以得出一个结论,现在的块数=原来的块数+现在新连线与以前的线交线个数+1;那么每个点的使用次数我们就可以用一个树状数组来存,每次查询的时候都是在(1,1+k)这个开区间那么我们就可以计算【2-k】这个区间的的点的数量,开始的时候我们每次都处理
2020-10-06 19:08:10
203
原创 Educational Codeforces Round 92 (Rated for Div. 2) C. Good String 模拟+暴力
题意:给你一个字符串 ,A=T 0_00,T 1_11,T 2_22,T 3...._3....3....,T N−1_N-1N−1,T N_NN,然后有两个操作,1.最后一个字符移到最前面形成一个字符串S,2.第一个字符移到最后形成一个字符串B,S=T N_NNT 0_00,T 1_11,T 2_22,T 3...._3....3....,T N−1_N-1N−1, B=$,T 1_11,T 2_22,T 3...._3....3....,T N−1_N-1
2020-10-04 17:27:46
530
原创 VK Cup 2012 Finals (unofficial online-version) E. IT Restaurants 树形DP
/纪念第一次写树形DP202010049:45.:00/题意:给你N个点,n-1条边,形成一棵树,然后每个点可以染红色,蓝色,无色,染红色和染蓝色的数量分别是a,b, 每个点染色规则,相邻的点颜色要么一样,要么一个点染色一个点不染色,至少要染一个红色或者蓝色。问最后a+b最大情况下,a,b的分别的取值题解:根据题意 我们可以得出,首先要去找到一个根节点的子节点个数,然后以该根节点不染色 ,其他分别染色,然后用背包的思想,详情看代码#pragma GCC optimize(2)#pragma
2020-10-04 09:58:02
130
原创 Codeforces Round #673 (Div. 2) C. k-Amazing Numbers思维+枚举
传送门题意:给你一个数组,长度为N,然后找到每个不同的连续区间有的共同的数,然后找出这个共同的数字最小值,每个区间长度每次从K=1 - N的长度每次,比如 1 2 3 4 5 ,第一次K=1,那么没有共同的数字 K=1答案是-1,如果K=2,答案也是-1,因为 K=2时候 区间为 (1,2) (2,3)(3,4)(4,5),所以没有共同的,然后k=3,区间就是1 2 3 2 3 4 3 4 5 那么就有一个共同的数 3 答案就是3 K=4 区间:1 2 3 4 2 3 4 5
2020-10-02 16:53:37
120
原创 Codeforces Round #674 (Div. 3)F. Number of Subsequences DP
传送门 Number of Subsequences题意: 给你一个字符串长度为N,字符串只有a,b,c,?,然后?可以变成a,b,c任意一个 ,然后问你可以找到多少种字串abc.题解:首先如果没有?,那么很明显是一个普通dp,然后就是状态的转移,a:dp[1]=dp[1]+1,ab: dp[2]=dp[2]+dp[1];abc: dp[3]=dp[2]+dp[3];但是现在多了一种情况就是?,那么我们考虑一下,当多一个?,会产生哪些变化,首先原来的字符串类型是不是就会增加三种,那么再来一个是不
2020-10-01 15:55:28
104
原创 Codeforces Round #672 (Div. 2)C2. Pokémon Army (hard version)思维+差分
题意:给你一个序列,N个数字,然后你从前到后任意选择第一个加上他 第二个减去 第三个加 第四个减去 依次这样下去 ,a1-a2+a3-a4+a5-a6…问最后的答案最大为多少?题解:真的很考思维,我们可以这样想,既然要最大,那是不是加的数字一定要够大,减去的要尽量小,是不是有点像电波图,我们需要找波峰波谷。一般我们的差分都是后一项减去前一项,但是这个题我们要反向差分,举个列子,1 3 5 7 9 2 差分后是 -2 - 2 -2 -2 7 2 这个样例的MAX = 9. ,仔细观察一下是不是答案为我们的
2020-09-27 14:43:15
111
原创 51nod 最后的机会题解 二分 前缀
传送门给定一字符串S,S非空,由小写字母组成,设v为S中元音字母的个数,c为辅音字母的个数。“a”, “e”, “i”, “o”, "u"为元音字母。其余为辅音字母。如果元音字母没有超过辅音字母的2倍,即v≤2c则称S是好的字符串。现在给定S,找出其中最长的好的子串的长度,以及个数。子串是由原串中连续的几个字符组成的。样例解释:在样例一中,最长的子串是他的自身“abo”。其它好的子串是“b”,“ab”,“bo”,但是都不是最长的。在样例二中,最长的子串是“eis”。其它好的子串是“s”,“is”,
2020-09-21 17:43:30
92
原创 CCPC2018-湖南全国邀请赛G - String Transformation题解
传送门题意:字符串只含a,b,c,然后可以再该字符串任何位置进行加或者减去 aa,bb,abab,问,S串能否进行上述操作后得到T串。思路:首先,判断C是否相同,因为条件里面没有增加删除C,然后将字符串以C划分区间,每个区间我们都去^一下,为什么要异或,因为a^a=0, b^a ^a=b;所以我们可以判断该区间是否有相同的a,b如果不同 一定不可以变换得到,所以这个时候我们可以使用vector,然后进行比较。#pragma GCC optimize(2)#pragma GCC optimi
2020-09-16 20:19:06
119
原创 Mooyo Mooyo大模拟题解
题目传送门链接:https://ac.nowcoder.com/acm/contest/7154/E来源:牛客网题目描述由于手上(更确实的,蹄子上)有大把的空余时间,Farmer John的农场里的奶牛经常玩电子游戏消磨时光。她们最爱的游戏之一是基于一款人类中流行的电子游戏Puyo Puyo的奶牛版;名称当然叫做Mooyo Mooyo。Mooyo Mooyo是在一块细长的棋盘上进行的游戏,高NN(1≤N≤100)格,宽10格。 这是一个N=6的棋盘的例子:00000000000000000
2020-09-16 15:02:30
446
原创 Convention II题解 优先队列+模拟
链接:https://ac.nowcoder.com/acm/contest/7154/C来源:牛客网题目描述 虽然在接机上耽误了挺长时间,Farmer John为吃草爱好牛们举行的大会至今为止都非常顺利。大会吸引了世界各地的奶牛。然而大会的重头戏看起来却给Farmer John带来了一些新的安排上的困扰。他的农场上的一块非常小的牧草地出产一种据某些识货的奶牛说是世界上最美味的品种的草。因此,所有参会的N头奶牛(1≤N≤10^5)都想要品尝一下这种草。由于这块牧草地小到仅能容纳一头奶牛,这很有可能
2020-09-15 20:22:52
551
原创 Codeforces Round #653 (Div. 3)D题解
题意:就是给你N个数,有个x,每次加在N个数中任意一个,然后X++,或者直接X++,x=0开始,问你要多少次后N中所有数字可以%K==0;题解:首先简单化,把N个数全部%k,一次,这样就好看了,然后我们处理出来的,数字是不是就会有大有小,这个时候我们要从 小的开始处理,为什么,越大得数字是不是越容易接近K,那么N个数字我们可以把他转换为一个环,比如1 1 2,K=3是不是,第一次出现X=2得时候,需要就是可以加到1上,下次出现,是不是就要循环一个K才会出现他的X+k=5,加到第二1上,是不是最后全部就为0
2020-06-30 22:42:46
75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人