
数学-规律题
文章平均质量分 65
Kim0403
这个作者很懒,什么都没留下…
展开
-
POJ 3175 Finding Bovine Roots
以整数形势给出了小数部分,那么就使它变成相应的整数部分为0的小数,再构造一个和它略有误差的小数 使两者同时平方然后向下取整,如果取整结果相同,那么就两者整数部分同时增加1。 暴力循环,直到两者误差够大,就出现了那个最小整数。 但是数据有0.99 0.998 这种类似情况,所以需要处理一下。 #include #include #include #include #include #incl原创 2016-07-28 17:29:57 · 372 阅读 · 0 评论 -
HDU 4588 Count The Carries
从a加到b,统计二进制进位总次数,纯粹暴力,肯定超时。 所以转换成统计从0-a二进制表达的各位1的个数,0-b各位的1的个数,后者减前者对应位,即可求出每位有多少个1。然后当前位1的个数/2,就是当前位的总进位数,后面的加上前一位答案除二,再除二,累加即可推出总数。 那么如何统计每一位上1的个数呢???卡壳卡了两个小时…… 以下是规律: 1 1 1原创 2016-07-27 16:46:41 · 468 阅读 · 0 评论 -
CodeForces 547A Mike and Frog
求循环节很关键。还有,得确定循环次数。 比如青蛙三次达到a1,花四次达到a2,那么循环12次时,也可以同时到达a1,a2 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #i原创 2016-07-11 22:23:31 · 609 阅读 · 0 评论 -
CodeForces 682A Alyona and Numbers
开始竟然交了两重循环。果然超时。 有规律可循,除以5就可以嘛。 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CPY(A原创 2016-07-08 21:40:53 · 403 阅读 · 0 评论 -
CodeForces 342A Xenia and Divisors
题目挺水,只有“1 2 4”,”1 2 6“,”1 3 6“这三种情况符合。所以就简单多了。 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2016-07-08 08:41:25 · 783 阅读 · 0 评论 -
HDU 5703 Desert
我场上不怕时间不够,慢慢来 以下,第一行是总量,第二行是分配方式,第三行是方法数及其二进制表示 1 1 1 1 2 2 11 2 10 3 3 12 21 111 4 100 4 4 31 13 22 211 112 121 1111 8 1000 5 5 41 14 32 23 212 122 221 311 113 131 2111 1121 1211 1112原创 2016-07-30 01:21:55 · 401 阅读 · 0 评论 -
HDU 5710 Digit-Sum
5*2=10,S(5*2)=1,2*S(5)=10; 6*2=12,S(6*2)=3,2*S(6)=12; 7*2=14,S(7*2)=5,2*S(7)=14; 8*2=16,S(8*2)=7,2*S(8)=16; 9*2=18,S(9*2)=9,2*S(9)=18; 规律显然,其实就是满十进1,每位数字之和便小了9。 假设n里有L位数为5-9,那么显然满足:S(2n)原创 2016-07-30 01:58:23 · 815 阅读 · 0 评论 -
CodeForces 166E Tetrahedron
这题是个规律题,我的好友们有用python跑出来规律的 有用离散数学的关系矩阵计算出来的,与自己看出来的 我用了dp………… int main() { LL ans=0; int n; cin>>n; for (int i=2; i<=n; ++i) { if (i%2==0) { ans= (ans+1) *3%MOD; } else { a原创 2016-07-14 15:43:44 · 499 阅读 · 0 评论 -
Astar Round2A 1001 ALL X
全是由数字x组成的m位数可表示为(10m-1)/9*x。 则判断 (10m-1)/9*x%k == c 的真假可转化为判断 (10m-1)*x%(9*k) == 9*c 的真假。 (对于加减乘运算,取模可以移动,对于除法不可行。但此处 10m-1 表示有m个9组成的数, 一定可以整除9,故可将9和k放在一起当模数)。接下来用快速幂就可以了。 比赛时,一直想着用大数模板………原创 2016-06-11 17:42:40 · 371 阅读 · 0 评论