SRM 586 DIV1
2014-04-02 21:12
260 查看
A
考虑都是格点 , 枚举所有y+-0.5就行了.
trick是避免正好在y上的点重复统计.
View Code
考虑都是格点 , 枚举所有y+-0.5就行了.
trick是避免正好在y上的点重复统计.
int f[maxn][30][30] , len[maxn] , n; int dfs(int i,int a,int o,vector<int> L) { int & res = f[i][a][o]; if (res == -1){ res = INF; if (i==n) { if (o==0) { res = 0; } } else { int s = i-1>=0?len[i-1]:0; int m = min(L[i],26); for (int c=0 ; c<=m && c<=o ; c++ ) { for (int p=0 ; c+p<=m && p<=a ; p++ ) { for (int u=0 ; p+u+c<=m && u+c<=o ; u++ ) { int k = m-(c+u+p); if (p+k>a) continue; int w = dfs(i+1,a-k-p,o-c+p,L); if (u > 0 ) { w += s*c + (c-1)*c/2; w -= (s+L[i]-1)*p - (p-1)*p/2; } else { w += s*c + (c-1)*c/2; w -= (s+L[i]-1)*p - (p-1)*p/2; w += L[i]-(c+p+k); } res = min(res,w); } } } } } return f[i][a][o] = res; } int StringWeight::getMinimum(vector <int> L) { n = L.size(); memset(f, -1, sizeof(f)); for (int i=0 ; i<n ; i++ ) len[i] = i==0?L[i]:len[i-1]+L[i]; int ans = dfs(0,26,0,L); return ans; }
View Code
相关文章推荐
- 好久不写ios代码,生疏了,以前的一些方法竟然被启用了,网上着了文章转载
- Android Intent 用法全面总结
- 利用nginx反向代理tomcat服务器
- Phone List
- spring学习前奏002
- java.util.queue
- [hdu 2001] 计算两点间的距离
- Net上传附件大小控控值(转)
- webService客户端参数为DataHandler类型时候的参数组装
- DELL电脑只有背景音乐解决方法
- WebService Exceptions
- 求1+2+……+n(位运算)
- android studio SDK版本的调节
- shell if else case用法DEMO
- mpc5125 uboot 阅读笔记
- 如何删除Eclipse subclipse plugin中记住的SVN用户名密码
- HDU1710——Binary Tree Traversals(二叉树)
- 排序总结之基数排序
- ASP.Net页面传值的6种方式
- 使用wamp通过ip地址无法访问的问题