poj 1790 Base Numbers(dp)
来源:互联网 发布:java运用领域 编辑:程序博客网 时间:2024/04/30 13:05
【题目大意】:给你一个字符串,里面的前一部分是一个数,后一部分是表示他的进制,问这个字符串可以表示成多少个数。
【解题思路】:表示某进制数下到第i位表示数的个数....dp[i]=sigema(dp[j])(j>=0 && j<i) 要加要满足能构成某进制数的条件。
条件有2个:1、首先它的前部分的数字必须小于进制数,2、除非它是一个数,否则第一个数位不能是0...(wa了..这里)
大环境1个:进制的首位不能是0;
【代码】:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <queue>#include <cmath>#include <string>#include <cctype>#include <map>#include <iomanip> using namespace std; #define eps 1e-8#define pi acos(-1.0)#define inf 1<<30#define linf 1LL<<60#define pb push_back#define lc(x) (x << 1)#define rc(x) (x << 1 | 1)#define lowbit(x) (x & (-x))#define ll long longint len;char s[50];int cnt[50];int cnt_num(int r){int n;n=len;if (s[n-r]=='0') return 0;cnt[0]=1;for (int i=1; i<=n-r; i++){cnt[i]=0; int minn; if (i-r<0) minn=0; else minn=i-r;for (int j=minn; j<i; j++){if ((j+1<i || j==0 && n-r>1) && s[j]=='0') continue; if (j+r==i) if (strncmp(s+j,s+n-r,r)>=0) continue;cnt[i]+=cnt[j];}}return cnt[n-r];}int main(){int r,c;while (1){scanf("%s",s); if (s[0]=='#') break; len=strlen(s); int ans=0;for (int i=1; i<len; i++)ans+=cnt_num(i);if (ans>0)printf ("The code %s can represent %d numbers.\n",s,ans);else printf ("The code %s is invalid.\n",s);}return 0;}
- poj 1790 Base Numbers(dp)
- POJ 1338 Ugly Numbers dp
- 【数位DP】Round Numbers POJ
- POJ 3252 Round Numbers 数位DP
- poj 3252 Round Numbers (数位DP)
- poj 3252 Round Numbers(数位dp)
- POJ 3252 Round Numbers (数位DP)
- poj 3252 Round Numbers(数位dp)
- Round Numbers - POJ 3252 数位dp
- poj - 1732 - Phone numbers(dp)
- 【数位DP】【poj 3252】Round Numbers
- poj 3252 Round Numbers 数位dp
- POJ 1732 Phone numbers(DP)
- POJ 3252 Round Numbers (数位DP)
- POJ 3252 round numbers(数位DP)
- 【数位DP】POJ 3252 Round Numbers
- POJ 3252 Round Numbers 数位dp(入门
- poj 3252 Round Numbers(数位dp)
- C#、WPF下实现普通快捷键的方法
- VisualSVN Server和TotoiseSVN的配置和基本使用方法
- ASP.NET用LINQ to SQL做的用户登录程序
- Android用Ksoap2类库调用.Net(C#)WebService类的实现
- LINQ查询返回DataTable类型
- poj 1790 Base Numbers(dp)
- 通过ksoap2访问.NET Webservice 的数据库
- milestone等系列android手机无法adb下使用sqlite3问题
- 在Android中查看和管理sqlite数据库
- 百度快照-更新原理-更新方法-更新技术-更新技巧
- POJ 2492 (并查集)
- 一闪一闪的小星星 - 玻璃瓶里的电子萤火虫
- 我的.Net武器库
- Nokia是否还有未来 - 小议诺基亚和微软的战略布局