CodeForces 44H - Phone Number-dp
来源:互联网 发布:netsh绑定mac 编辑:程序博客网 时间:2024/06/06 07:34
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20079
题意:
给你一个电话号码,根据这个号码生成一个新的号码。生成的规则就是 新号码的第一个数任意选(0-9), 然后之后的每一个新号码都按照以下规则生成:
第i个新号码 = (第 i-1个新号码 +第i个老号码 的和)/2 , 这里如果乘除,则新号码i唯一,否则新号码i可以向上或向下取整;
求总共能生成多少种号码
q=第i+1位的老号码; j为第i位上的新号码
<span style="white-space:pre"></span>if ((q+j)%2==0)dp[i][j]=dp[i+1][(q+j)/2];elsedp[i][j]=dp[i+1][(q+j)/2]+dp[i+1][(q+j+1)/2];
如果发现老号码本身能得到 自己,那么种类数要减一 (求得是 生成的 新的号码数)
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <iostream>#include <queue>#include <map>#include <set>#include <vector>using namespace std;__int64 tm[55];__int64 dp[55][15];char s[105];__int64 test[55];int main(){__int64 i,j;scanf("%s",s);__int64 n=strlen(s);for (i=0;i<n;i++)tm[i+1]=s[i]-'0';for (j=0;j<=9;j++)dp[n][j]=1;for (i=n-1;i>=1;i--){for (j=0;j<=9;j++){__int64 q=tm[i+1];if ((q+j)%2==0)dp[i][j]=dp[i+1][(q+j)/2];elsedp[i][j]=dp[i+1][(q+j)/2]+dp[i+1][(q+j+1)/2];}}__int64 flag=1; for (i=1;i<=n;i++)test[i]=tm[i];for (i=2;i<=n;i++){if ((test[i]==(tm[i]+test[i-1])/2) ||(test[i]==(tm[i]+test[i-1]+1)/2) )continue;else{flag=0; //自己不在里面break;} }__int64 ans=0;for (i=0;i<=9;i++){ans+=dp[1][i];}printf("%I64d\n",ans-flag);return 0;}
0 0
- CodeForces 44H - Phone Number-dp
- codeforces 245H Queries for Number of Palindromes 区间DP
- CodeForces 245H Queries for Number of Palindromes (区间DP)
- dp --- Codeforces 245H :Queries for Number of Palindromes
- Codeforces 245H H Queries for Number of Palindromes(DP)
- codeforces 245H H. Queries for Number of Palindromes(区间dp)
- Codeforces 245H 回文 DP
- codeforces 245H 区间dp
- codeforces 158E Phone Talks (dp)
- codeforces 158E. Phone Talks(dp)
- 【CodeForces 158E】Phone Talks(DP)
- CodeForces 158E Phone Talks dp
- codeforces 245H 区间DP 好题
- CodeForces 245H (区间dp)
- CodeForces 245H (dp+回文串)
- [DP] Codeforces Gym 101002 H. Jewel Thief
- Phone Number
- Phone Number
- 用java语言编写进制转换
- redis 哈希表(Hash)
- hdu 2841
- Redis与Memcached的区别
- HDU 5534 Partial Tree (变形完全背包 好题)
- CodeForces 44H - Phone Number-dp
- 缓冲区溢出攻击实验(一)
- spring源码目录模块的作用
- Android开发 设计模式(二、 Factory Method(工厂方法模式))
- STM32 SIM900
- Keras 深度学习框架Python Example:CNN/mnist
- Java中AWT,Swing与SWT三大GUI技术的原理与效率区别
- 二进制中1的个数(2)
- Java:内部类