UVA - 12105 Bigger is Better DP
来源:互联网 发布:带文字单页源码 编辑:程序博客网 时间:2024/06/03 07:12
题目链接
题意很简单哦,就是用n根火柴拼出能被m整除的最大的数。这题一直困扰了我很久。。。本来是按照书上给的方法,dp[i][j]表示除以m余j的i位数需要的火柴数,刚开始想用记忆化搜索写,然而,在选择数字的时候出了问题,不知道该选大的还是该选火柴少的,恩 一定是功力不够,然后一直拖着好久,今天终于看到了老先生说的‘更简单的做法’,就是用dp[i][j]存储被m除余j的数的最大长度,i为火柴数,这样的话可以写出状态方程
dp[i][j]=max(dp[i][j],dp[i-nedd[k]][(j*10+k)%m]+1); 同时用一个同等规模的二元组ans来记录(i,j)状态下的最大数字即可。输出答案时往回推就可以了
#include <map>#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define INF 0x7f7f7f7fusing namespace std;const int c[]={6,2,5,5,4,5,6,3,7,6};const int maxn = 105;const int maxm = 3002;int n,m,dp[maxn][maxm],ans[maxn][maxm],cases=0;int main() { while(~scanf("%d%d",&n,&m)&&n){ memset(dp,-1,sizeof(dp)); memset(ans,-1,sizeof(ans)); for(int i=0;i<=n;i++) for(int j=0;j<m;j++){ if(j==0) dp[i][j]=0; for(int k=9;k>=0;k--){ if(i>=c[k]){ if(dp[i-c[k]][(j*10+k)%m]>=0&&dp[i-c[k]][(j*10+k)%m]+1>dp[i][j]){ dp[i][j]=dp[i-c[k]][(j*10+k)%m]+1; ans[i][j]=k; } } } } printf("Case %d: ",++cases); if (ans[n][0]<0) printf("-1"); else { int i=n,j=0; for(int d=ans[i][j]; d>=0; d=ans[i][j]) { printf("%d",d); i-=c[d]; j=(j*10+d)%m; } } printf("\n"); } return 0;}
0 0
- UVA 12105 - Bigger is Better(DP+高精度)
- uva 12105 - Bigger is Better(dp)
- UVA - 12105 Bigger is Better(dp)
- Bigger is Better - UVa 12105 dp
- UVA - 12105 Bigger is Better DP
- UVA 12105 Bigger is Better(数位dp)
- UVa:12105 Bigger is Better
- uva 12105 Bigger is Better
- UVA 12105 Bigger is Better
- UVA 12105 Bigger is Better(数位DP)
- UVA 12105 Bigger is Better(数位DP)
- Bigger is Better UVA
- Bigger is Better UVA
- uva 12105——Bigger is Better
- 12105 - Bigger is Better
- UVA12105 - Bigger is Better(DP)
- UVA - 12105 Bigger is Better (数位dp思路+前导零的判断)
- UVALive - 3782 Bigger is Better DP
- poj 2763 Housewife Wind (LCA转RMQ+树状数组)
- 九度oj 1195
- Associated Objects
- android中final的理解
- C++primer 阅读笔记-模板与泛型编程(函数模板)
- UVA - 12105 Bigger is Better DP
- ASP.NET 防盗链的实现[HttpHandler]
- 数据库空值和null的区别
- 字符串转数字,包括正数,负数,小数
- Chrome浏览器免插件更改Ua模拟iOS和Android等教程,附QQ和微信
- myeclipse中web项目没有run on server的解决办法
- 100个iOS开发/设计面试题汇总,你将如何作答?
- 一幅图弄清DFT与DTFT,DFS的关系【转载】
- Android安全(MDM、Root、Hook、Inject等)、软件加固、移动保护