摘要: problem 1:贪心,我二了。。。problem 2:对这题表示无语,我担心快速幂函数会超,所以10^6一次分开幂的,WA了,直接用快速幂函数算就对了,我无语了。。。快速幂函数:int exp_mod(int a,int n,int b){ int t; if(n==0) return 1%b; if(n==1) return a%b; t=exp_mod(a,n/2,b); t=t*t%b; if((n&1)==1) t=t*a%b; return t;}problem 3:母函数模板题。problem 4:按速度排序,然后枚举所有的路,... 阅读全文
posted @ 2011-11-22 21:22 AC_Von 阅读(252) 评论(0) 推荐(0) 编辑
摘要: /*发现并查集的应用太巧妙了。。。大体思路:从题中可以看出来如果(i, j)是even的话,sum(i-1) 和 sum(j)的奇偶性相同。(i, j)如果是odd的话则其奇偶行不同。定义奇偶性为朋友,不同则为敌人。这样按照奇偶性分成连个集合。same[i] = {x|sum[x]与sum[i]同奇偶}(即i的朋友集)diff[i] = {x|sum[x]与sum[i]不同奇偶}(即i的敌人集)如果(i, j)是even,则分别合并(same(i-1), same(j))和(dirr[i-1] , diff(j))。如果是odd,则因为不是奇就是偶,所以,一个的朋友和另一个的敌人合并(敌人.. 阅读全文
posted @ 2011-11-22 20:42 AC_Von 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 描述在一个星期三的早上,某同学想用扔硬币的方式来决定是否要去上算法课。他扔n次硬币,如果当中有连续m次以上(含m次)的结果都是正面,那么他就去上课,否则就接着睡觉。(假设每次扔硬币扔出的正反两面的概率都是 0.5。)输入输入的每行有一组数据,分别为n和m(0 <n<= 2000, 0 <m<= 10)。输入以 0 0 结尾。输出对于每组数据,输出他去上课的概率,四舍五入保留小数点后 2 位。 今天队友问我这个题,说是dp的问题。悲摧的开始看错题意了,题目让找连续m次以上的概率。开始思路是建立一个2维dp[i][j],表示仍i次硬币出现j次连续正面朝上的概率。但后来发现实 阅读全文
posted @ 2011-11-22 18:23 AC_Von 阅读(196) 评论(1) 推荐(0) 编辑