代码改变世界

随笔档案-2011年05月

pku1284_Primitive Roots

2011-05-25 00:56 by Min·zc, 195 阅读, 收藏,
摘要: 1/*2就是求一个奇素数的原根,ans就是phi(n-1)3证明如下,转自pku的discuss4-------------------------------------------------------------------------------------------5关于此题,看出是结果是Phi(p-... 阅读全文

pku773_Happy 2006

2011-05-23 06:14 by Min·zc, 183 阅读, 收藏,
摘要: 详细报告移步这里http://blog.csdn.net/shiren_Bod/archive/2010/07/17/5741029.aspx1#include2#include3usingnamespacestd;4ints[1000001];5intprime[80000];6voidPrime()7{8memset(s,0,siz... 阅读全文

pku_2480.Longge's problem

2011-05-23 02:27 by Min·zc, 215 阅读, 收藏,
摘要: 1/*2*欧拉函数的使用3*题意是求解小于等于x的所有数的与x的最大公约数的和4*5*一个非常好的解题报告6*http://blog.csdn.net/shiren_Bod/archive/2010/08/09/5798970.aspx7*8*/910#include11#include12#include13usingnamesp... 阅读全文

POJ_3090.Visible Lattice Points

2011-05-22 09:41 by Min·zc, 161 阅读, 收藏,
摘要: 1/*2*3*因为是关于对角线对称,所以只需要求解矩形的下半部分在乘以2就可以了4*满足题意的点对的要求是x和y互质,可以使用欧拉函数5*需要注意的是特殊的点对(1,1)(0,1)(1,0)6*这三个需要单独拿出来计算7*/8#include9usingnamespacestd;10longlongans[1010];11longlo... 阅读全文

NK_1214: Relatives

2011-05-22 09:08 by Min·zc, 185 阅读, 收藏,
摘要: 1/*2*今天看了一下欧拉函数,找了个水题练了一下3*4*/567#include8usingnamespacestd;9inteular(intn)10{11intret=1;12for(inti=2;i*i1)28ret*=(n-1);29retur... 阅读全文

2015. A New Year Gift

2011-05-20 23:32 by Min·zc, 262 阅读, 收藏,
摘要: 1/*2*因为可以大致估算出答案的上下界所以可以使用二分法对答案进行逼近3*对于给定的数列,对多了一产生sum/m条项链,这个就是答案的上界,下界自然就是04*然后验证某一个解的正确性5*如果ans大于某一种珍珠i的个数,那么,此种珍珠就选择ans个,如果选择多于ans个6*就会出现i珍珠在一条项链上出现多余一个的情况。如果某种珍珠的个数多于ans个那7*么... 阅读全文

1308. Dependencies among J

2011-05-20 17:16 by Min·zc, 150 阅读, 收藏,
摘要: 1/*2*广搜+字符串处理3*开始忘记数字可以是两位数(或者更多位),当成一位数处理,wa了挺长时间4*5*6*/789#include10#include11#include12#include13#include14usingnamespacestd;15vector rd[10001];16intvi[10001];... 阅读全文

2372. Non-Decreasing Digits

2011-05-20 09:57 by Min·zc, 288 阅读, 收藏,
摘要: 1/*2*dp使用ans[i][j]记录第i位以j结尾的数字的个数3*ans[i][j]=sum(ans[i-1][k])(k>=j)4*所求就是sum(ans[i][j]) (09#include10usingnamespacestd;11longlongans[70][10];12voidset()13{14memset(an... 阅读全文

2369. Nim-B Sum

2011-05-20 09:26 by Min·zc, 225 阅读, 收藏,
摘要: 1/*2*数制转换3*/45#include6#include7usingnamespacestd;8intbx[100];9intby[100];10intans[100];11intn,b,x,y;12intlx,ly;13intmain()14{15intt;16cin>>t;17... 阅读全文

2368. Penney Game

2011-05-20 08:56 by Min·zc, 225 阅读, 收藏,
摘要: 1/*2*3*直接遍历一遍字符串,统计就可以4*5*/67#include8#include9usingnamespacestd;10intmain()11{12intt;13cin>>t;14while(t--)15{16char... 阅读全文

2403. Voting

2011-05-20 08:17 by Min·zc, 157 阅读, 收藏,
摘要: 1#include2#include3#include4usingnamespacestd;5inta,y,n,p;6charv[100];7intmain()8{9while(true)10{11cin>>v;12if(v[0]=='#')13... 阅读全文

1239. Smallest Differencev

2011-05-19 23:06 by Min·zc, 225 阅读, 收藏,
摘要: 1#include2#include3usingnamespacestd;4ints[12];5intan[12];6//int ck[12];7intans=99999;8intn;9voidsol(intt,intmax,intmin)10{1112if(t==n)13{14/... 阅读全文

1448. Antimonotonicity

2011-05-19 13:08 by Min·zc, 327 阅读, 收藏,
摘要: 1/*2*使用tmp来记录队列的最后一个数flag来记录数列是应该增还是减3*如果数列要增4*1.如果数列要增那么如果下一个数字比tmp大,那么成立,ans加一,flag变为减5*2,如果下一个数比cmp小,那么就把当前队列的最后一个数cmp换成小的那个数,因为我们需要找的数字要比队列的最后一个数字大,6* 所以如果队列的最后一个数字越... 阅读全文

1738. Get Ready?

2011-05-18 20:52 by Min·zc, 188 阅读, 收藏,
摘要: 1/*2*按分数,罚时和ID的顺序比较输出3*4*5*6*7*/89#include10#include11usingnamespacestd;12structteam13{14intid;15intsc;16intpn;17};18intcmp(constvoid... 阅读全文

1228. Crashing Robots

2011-05-18 20:29 by Min·zc, 165 阅读, 收藏,
摘要: 1/*2*直接按照题意模拟3*如果有一个机器人出现问题,那么后面的行动都不执行4*5*6*7*/89#include10#include11usingnamespacestd;12structrb13{14intx;15inty;16intd... 阅读全文

1321. Robot

2011-05-18 17:11 by Min·zc, 221 阅读, 收藏,
摘要: 1/*单源最短路径2*日,因为把计算节点的算式写错了,错到死3*节点太多,所以在转化成无向图的时候需要压缩一下4*因为一个节点最多与4个节点相连接,所以只需要保存4个相邻节点的信息就可以了5*6*7*8*9*/101112#include13#include14#include15#define i... 阅读全文

1484. 守望者的逃离

2011-05-17 15:48 by Min·zc, 310 阅读, 收藏,
摘要: 推荐一个师兄的博客http://godorz.info/2009/11/heap///dp//假设守望者开始只能闪烁或者原地等魔恢复//然后再遍历一次决定在某一秒应该奔跑还是等在魔法恢复//求出每一秒的能走的最大距离1#include2#include3usingnamespacestd;4intM,S,T;5intdis[300001];6intsol()... 阅读全文

1797. Do solve it directly

2011-05-16 19:34 by Min·zc, 142 阅读, 收藏,
摘要: 1#include2usingnamespacestd;3intd;4intx,y;5voidrun(inta,intb)6{7if(a>t;26while(t--)27{28inta,b;29cin>>a>>b;30... 阅读全文

1801. Reading books

2011-05-16 12:54 by Min·zc, 140 阅读, 收藏,
摘要: 1/*学习了并查集2*先找出所有的不关联集合,找出其中最小的一个,然后先读最小的那本书3*图片不能显示,具体的计算方法是读的第一本书用全时,跟他关联的书用时间的一半4*5*6*/7#include8#include9#include10usingnamespacestd;11intB[110];//父节点12i... 阅读全文

1920. Divide The Stones

2011-05-15 17:16 by Min·zc, 167 阅读, 收藏,
摘要: 1/*奇数个偶数就是Alice胜利2*偶数个偶数就是Bob胜利3*奇数个偶数最后都可以转化为1,1的形式4*偶数个偶数最后转化为1,2的形式5*6*/78#include9#include10usingnamespacestd;11intmain()12{13intt;14scanf("%d",&t... 阅读全文

1280. Permutation

2011-05-15 16:09 by Min·zc, 262 阅读, 收藏,
摘要: 1/*搜索超时,但是不知道进行一些剪枝会不会过了2*后来看了别人的思路DP3*这个DP真的挺牛逼的4*移步这里http://blog.csdn.net/Rappy/archive/2007/09/23/1797699.aspx5*传送门http://soj.me/12806*/78#include9#include10usingnamespac... 阅读全文

1937. 导游

2011-05-14 22:36 by Min·zc, 148 阅读, 收藏,
摘要: 1/*大概就是在两点间最短路径的基础上的一点修改2*求出两点间的单路径最大流3*需要注意的是导游必须在车上,所以会占掉一个乘客的位置4*在最后进行计算时要将导游的位置减掉5*6*7*8*9*10*11*12*/1314#include15#include16#include17#include18usingnam... 阅读全文

1634. Relax! It's just a game

2011-05-12 10:55 by Min·zc, 208 阅读, 收藏,
摘要: 1#include2usingnamespacestd;3intdp[21][21];4voiddpf()5{6for(inti=0;i>n>>m;18while(n!=-1)19{20if(dp[n+m][n]==m+n)21... 阅读全文

1234. Playground

2011-05-12 09:55 by Min·zc, 208 阅读, 收藏,
摘要: 1/*去掉半圆的圆弧,将半圆的两个端点连接起来就可以将问题抽象成给定一组边长2*验证其能否构成闭合的多边形。构成闭合多边形的条件是出了最大边的所有边长之和3*大于最大边。4*所以首先对所有给定的边长进行排序,然后从最小的边长开始求和,看能否找到5*能构成闭合多边形的条件的解6*因为实际情况是给定的是半圆而不是直线,所以除最大边边长之和等于最大边也满足7*条件... 阅读全文

1176. Two Ends

2011-05-11 21:15 by Min·zc, 131 阅读, 收藏,
摘要: 1/*采用倒推的dp,假设我们已经知道知道了从i到j段的最大差,然后去推导包含此段的最大差,如i-1到j+1段2*因为是偶数个数字,所以最后一定会剩下两个,且刚好是A来选择,所以此时A一定是选择两个中最大的那个。3*首先将长度为2的段全部初始化,注:34行4*然后将长度从2开始逐渐增大到n-2,对于给定的一个子段,可以产生四种父段,如下5*AB--,A--B,B--A,... 阅读全文

1587. Eat or Be Eaten

2011-05-11 13:53 by Min·zc, 239 阅读, 收藏,
摘要: 二分查找小于目标元素的最后一个元素的位置,注意每一组元素是不需要去重复的。-------------------------------------------------------------------------------------------------------1#include2#include3#include4usingnamespacestd;... 阅读全文

1893. Sell Ticket

2011-05-08 20:12 by Min·zc, 179 阅读, 收藏,
摘要: 卡特兰数,看了资料才知道原来这个数列这个神奇,厉害厉害传送门http://soj.me/1893资料参考http://gpww.blog.163.com/blog/static/118268164200996103932731/貌似编程之美这个书不错,准备下载看看--------------------------------------------------------------------... 阅读全文

1422. Table Tennis

2011-05-08 17:16 by Min·zc, 219 阅读, 收藏,
摘要: 假设球碰到横边或者总边都不会发生方向的改变,那么就相当于将球的路线完全展开来看,我们会发现,求横向和纵向行走的距离刚好都是横纵边长的最小公倍数。之后就可以求得横纵边各走了几个,每走一个就在相应的一条边发生了一次碰撞。原因如下:比如变长分别是2和3,最大公约数就是6,也就是说最终球进洞的时候横向和纵向都走了6个单位。但是实际横向边最长只有3,如果想继续前进,只能调头,所以发生了纵向边的碰撞。最后根据... 阅读全文

1569. Encrypted SMS

2011-05-08 15:42 by Min·zc, 213 阅读, 收藏,
摘要: 挺水的,简单按照题意模拟就行-------------------------------------------------1#include2#include3usingnamespacestd;4intw2[3]={0,1,2};5intw3[3]={3,4,5};6intw4[3]={6,7,8};7intw5[3]={9,10,11};8i... 阅读全文

1122. Prerequisites?

2011-05-02 11:27 by Min·zc, 426 阅读, 收藏,
摘要: 看题里面那个图好像挺高逼的,读了题才发现原来跟那个图完全没有关系。。。水题一个,没啥说的----------------------------------------------------------1#include2#include3#include4usingnamespacestd;567intmain()8{9intn... 阅读全文

1073. Pearls

2011-05-02 10:52 by Min·zc, 135 阅读, 收藏,
摘要: 之前用的是贪心来做,对于这组数据就出错了10,105,1510,23看了一下别人的想法,用的是动态规划传送门http://soj.me/1073具体的题解移步这里http://wenku.baidu.com/view/27cbabdb50e2524de5187ed3.html证明连续性是为了保证动态规划方程的成立,如果连续性成立那么就是说明了子问题对于父问题没有影响。连续性的具体解释如下假设存在i... 阅读全文