SGU 246. Black & White(数论)】的更多相关文章

题意: 有2*n-1个黑色和白色的珠子组成的环形项链,求至少需要多少颗黑色珠子才能使任意排列的项链中都存在两个黑珠间有n个珠子. (2*n-1<=2^31-1); Solution: 先分析n=5,n=7,n=9的情况. 当2*n-1=5,必须有两颗黑珠距离为1(较短的方向). 2*n-1=7,必须有两颗黑珠距离为2. 2*n-1=9,必须有两颗黑珠距离为3. 可以发现 对k=2*n-1,必须存在两颗黑珠的距离为l=(k/2-1) 假设问题的答案是ans, 我们先来求ans-1,即最多的不满足问…
141. Jumping Joe time limit per test: 0.25 sec. memory limit per test: 4096 KB Joe is a frog who likes to jump a lot. In fact, that's all he does: he jumps forwards and backwards on the integer axis (a straight line on which all the integer numbers,…
话说好久没来博客上面写过东西了,之前集训过于辛苦了,但有很大的收获,我觉得有必要把它们拿出来总结分享.之前一直是个数论渣(小学初中没好好念过竞赛的缘故吧),经过一道题目对一些基础算法有了比较深刻的理解,在这里我打算系统地讲出这道题目涉及的大部分内容,希望可以帮到大家. 原题地址:http://acm.sgu.ru/problem.php?contest=0&problem=261 题目大意:给出质数$p$.$k$和一个自然数$a$,求关于$x$的同余方程$x^k \equiv a \pmod p…
SGU 105-DIV 3 Problem's Link Mean: 定义这样一种数列:1,12,123.. 给出一个n,求这个数列中能被3整除的数的个数. analyse: 这道题可以用分析的方法解决: 对于正整数k,k+1,k+2总有 k+(k+1)+(k+2) =k+k+1+k+2 =3k+3 =3(k+1) 3(k+1)可以被3整除,而且,一个数是否能被3整除表现为它的各位数字之和能否被三整除. 这就意味着对于一个数12345678910111213...k(连写),我们可以从后面开始,…
137. Funny Strings time limit per test: 0.25 sec. memory limit per test: 4096 KB Let's consider a string of non-negative integers, containing N elements. Suppose these elements are S1 S2 .. SN, in the order in which they are placed inside the string.…
140. Integer Sequences time limit per test: 0.25 sec. memory limit per test: 4096 KB A sequence A is called an integer sequence of length N if all its elements A1 A2 .. AN are non-negative integers less than 2 000 000 000. Consider two integer sequen…
The equation Problem's Link Mean: 给你7个数,a,b,c,x1,x2,y1,y2.求满足a*x+b*y=-c的解x满足x1<=x<=x2,y满足y1<=y<=y2.求满足条件的解的个数. analyse: 做法是扩展欧几里德. 1.首先是欧几里德算法,欧几里德算法是用于求任意两个数的最大公约数(gcd(a,b)), 这个方法基于一个定理,gcd(a,b)=gcd(b,a % b)(a>b),%表示取模. 我们来证明上述定理,因为a>b,…
987654321 problem Problem's Link Mean: 略 analyse: 这道题目是道简单题. 不过的确要好好想一下: 通过简单的搜索可以知道,在N<9时答案一定为0,而N=9时有8个解.由于题目只是问“最后9位”,所以N=10的时侯第10位的取值不会对平方和的“最后9位”产生影响,而第10位上有9种取值方法,所以N=10的时侯,答案是72. 同样可以知道,当N>10的时侯,只要在72后加入(N-10)个“0”即可. Time complexity: O(n) vie…
题目链接:http://codeforces.com/contest/432/problem/C 首先由题意分析出:这些数是从1到n且各不相同,所以最后结果肯定是第i位的数就是i. 采用这样一种贪心策略:从1到n枚举每一位.如果第i位不是i,那么就把i 从它所在的位置移动到第i 位,每次移动的距离要选取符合要求的最大的素数,那么由哥德巴赫猜想可以知道,最后肯定小于5次移动就移好了.每一位都这么移就行了.这过程中记录一下每次谁和谁交换位置就行了. 我把x[],y[]开成了maxn而导致了RE,改成…
SGU 解题报告(持续更新中...Ctrl+A可看题目类型): SGU101.Domino(多米诺骨牌)------------★★★type:图 SGU102.Coprimes(互质的数) SGU103.TrafficLights(交通灯)---------★★type:图 SGU104.LittleShopofFlowers(小花店)---★type:DP SGU105.Div3(整除3) SGU106.TheEquation(方程)-------------★type:数论 SGU107.…