2011年11月10日

摘要: 鸡抬腿,数鸡腿,(1只腿居然还能抬起来,挂屋顶了?)先看出差值有变化的,可以算出一些前面的数,注意一些小TRICK即可,比如负数,末尾很多0等等,还要注意算出了n-1个的话,还可以把第n个给算出来(显然,第n种鸡的数量就是接下来鸡腿的减少值,鸡腿数是现在还剩下的腿数除以鸡的数量加上之前抬起的腿数)。重点是计算不确定的,转化为x[1]*a[1]+x[2]*a[2]+...+x[unsure]*a[unsure]=sum 其中 min<=x[i]<x[i+1] sigma(a[i])=sa. a[i]>0 问解的情况 .x表示这种鸡的腿数,a表示这种鸡的数量,unsure表示还有 阅读全文
posted @ 2011-11-10 18:45 yaoz10051538 阅读(1296) 评论(1) 推荐(0) 编辑

2011年10月17日

摘要: 【关于两个物体进行背包的最大证明】给定背包体积V,两物体体积v1,v2,价值d1,d2,求其最大的能放入的值.令LCM=lcm(v1,v2),r=V%LCM,t=V/LCM;现在证明如果t>=1那么将两物体填到不能填为止一定与LCM+r的不能再填的状况相对应,即空出来的部分相对应.假如某个k1v1+k2v2使2LCM+R不能再填满,如果k1v1<LCMk2v2<LCM则明显不成立,所以k1v1,k2v2中一定有一个超过LCM把其中那个减到LCM就到达了LCM+R证毕.所以KLCM+R都是由LCM+R的状态转移过来的.然后先枚举出LCM+R的所有不能填满状态,枚举体积较大的那个 阅读全文
posted @ 2011-10-17 22:51 yaoz10051538 阅读(1749) 评论(2) 推荐(1) 编辑

2011年10月15日

摘要: hdu 2394Johnny and the Quadratic Equation对于一个二次方程a*x*x+b*x+c==0(%2^32) 给出a,b,c 问 能否找到这个x;开始想复杂了,把x各种设2^..p1^..p2^..p3^..,其实只要进行可以使分解2继续下去的x的奇偶讨论即可.如果x=2*k 各种除以2,如果x=2*k+1,关键来了,对于这个新变量k,作为下一个讨论的对象,化简后表示成 A*k^2+B*k+C 进行下一轮 当消到32个2时 表示KO了 注意几个false的情况即可 .View Code 1 while(true) 2 { 3 ... 阅读全文
posted @ 2011-10-15 11:27 yaoz10051538 阅读(287) 评论(2) 推荐(2) 编辑
摘要: hdu 4055Number String另类作法:dp[i][j]表示第i位前面没有用过的数字比他小的有j个,对于某个i,j的一种状态第i+1位的选择都能唯一的到达另外一种状态,最后输出dp[len][0]即可,另外还有合法串的变换进行DP . 另外n^3需要化为n^2 .View Code 1 ///自己的做法 2 inline void gao() 3 { 4 int i,j; 5 int len=strlen(s); 6 int idx; 7 n=len+1; 8 memset(dp,0,sizeof(dp)); 9 memset(su... 阅读全文
posted @ 2011-10-15 11:20 yaoz10051538 阅读(493) 评论(0) 推荐(2) 编辑
摘要: Lucas 应用hdu 3304Interesting Yang Yui Trianglelucas 对于c(n,i)把 n,i表示成p进制,对于n(p)某位上的数,如果i(p)对应位上大于它 那么这个数为0 .也就是说每个位置上都只能选择0->n(p).... 所以用乘法如果问你为0的 那么你可以反面考虑不为0 减一下,另外还有一种方法证明,有点长 应用了a/p>=b/p+(a-b)/p ,阶乘分解因子 对其后进行讨论 含有的P因子的个数, 见下面代码View Code 1 int main() 2 { 3 int i,j; 4 while(cin>>p>> 阅读全文
posted @ 2011-10-15 00:10 yaoz10051538 阅读(231) 评论(0) 推荐(1) 编辑

2011年10月14日

摘要: hdu 3853 LOOPSDP[i][j]表示到R,C的步数期望,倒着DP,如果状态设为从1,1到i,j的期望,难搞;DP列方程有两种方法:1.dp[i][j]=p[i][j][1]*(dp[i][j+1]+2)+p[i][j][2]*(dp[i+1][j]+2)+p[i][j][0]*(dp[i][j]+2).化解后后便可以倒着DP.2.dp[i][j]暴力枚举往下的情况p*(dpnext+2)+p*(dpnext+4)*s+p*(dpnext+6)*s*s....... 列项相消出结果 也能AC. 两个式子应该能化成一样 .View Code 1 /* 2 无限枚举推出来的公式: 3.. 阅读全文
posted @ 2011-10-14 23:52 yaoz10051538 阅读(206) 评论(0) 推荐(1) 编辑

导航