I and OI
Past...
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 35 下一页
摘要: 先来看一道题(HDU3507):题意:给出N个单词,每个单词有个非负权值Ci,将k个单词排在一行的费用为(∑Ci)^2+M.求最优方案,使得总费用最小.我们很容易得到一个O(N^2)的算法:s[i]表示前i个单词的权值和.先写个东西在这:所有元素非负的数组的前缀和值随下标增加单调递增.后面会用到.f[i]表示将前i个单词排版完毕后的最优值,f[i]=min{f[j]+(s[i]-s[j])^2+M}.但题目中N的范围是500000.这个算法明显不行.考虑如何优化.我们固定i,考虑它的两个一般决策点j,k(j<k).记g[pos]=f[pos]+(s[i]-s[pos])^2+M,即i从p 阅读全文
posted @ 2011-08-11 14:14 exponent 阅读(2027) 评论(0) 推荐(2) 编辑
摘要: 题意:一个N*M的网格,只能在网格的边上向上或向右走,求从左下角走到右上角的方案数.分析:一共要走N+M步,其中M步向右,N步向上.因此方案数即C(N+M,N).code:var n,m,max,o,ans:int64;begin while not eof do begin readln(n,m); if n+m=0 then halt; max:=n; if m>max then max:=m; ans:=1; o:=max+1; while o<=n+m do begin ans:=int64(ans)*int64(o) div int64(o-max); o:=o+1; e 阅读全文
posted @ 2011-08-10 16:44 exponent 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题意:求A^B的约数和mod 9901.(0 <= A,B <= 50000000)分析:记f(n)为n的约数和.求f(a^b) mod c.f(n)=∏(pi^(qi+1)-1)/(pi-1)pi为质因子,qi为质因子个数.(pi^(qi+1)-1)/(pi-1)=1+pi+pi^2+......+pi^qi转化为等比数列的和.可以用二分.例如:1+p+p^2+p^3+p^4=p^2+(1+p^3)(1+p)1+p+p^2+p^3+p^4+p^5=(1+p^3)(1+p+p^2)递归进行.code:const mo=9901;var p,q:array[0..20] of lon 阅读全文
posted @ 2011-08-10 16:41 exponent 阅读(670) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 35 下一页