ural1057 Amount of Degrees
2014-04-23 15:32
288 查看
链接
这题有一点小坑点 就是AX^B A只能为0或者1 ,剩下的就比较好做的了。
View Code
这题有一点小坑点 就是AX^B A只能为0或者1 ,剩下的就比较好做的了。
#include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<stdlib.h> #include<vector> #include<cmath> #include<queue> #include<set> using namespace std; #define N 100000 #define LL long long #define INF 0xfffffff const double eps = 1e-8; const double pi = acos(-1.0); const double inf = ~0u>>2; LL dp[35][35][11]; int d[35]; LL dfs(int i,int e,int k,int b) { if(i==-1) return k==0; if(!e&&dp[i][k][b] != -1) return dp[i][k][b]; int mk = e?d[i]:1; int ans = 0; mk = min(1,mk); for(int j = 0 ;j <= mk ;j++) { if(k-j>=0) { ans+=dfs(i-1,e&&j==d[i],k-j,b); } } return e?ans:dp[i][k][b] = ans; } LL cal(int x,int k,int b) { int g = 0; while(x) { d[g++] = x%b; x/=b; } return dfs(g-1,1,k,b); } int main() { int x,y,k,b; memset(dp,-1,sizeof(dp)); while(cin>>x>>y) { cin>>k>>b; cout<<cal(y,k,b)-cal(x-1,k,b)<<endl; } return 0; }
View Code
相关文章推荐
- URAL 1057 Amount of Degrees 数位DP *
- ural 1057 - Amount of Degrees(数位统计)
- URAL 1057 Amount of Degrees
- ural 1057 Amount of Degrees(数位dp)
- [ural1057][Amount of Degrees] (数位dp+进制模型)
- URAL - 1057 - Amount of Degrees
- ural 1057 Amount of Degrees
- ural 1057 Amount of degrees 数位DP (入门)
- URAL 1057 Amount of Degrees (数位DP)
- URAL 1057 Amount of Degrees
- URAL 1057 Amount of Degrees (数位DP)
- URAL 1057 - Amount of Degrees (入门数位DP)
- ural 1057 Amount of degrees (数位dp)
- URAL 1057 Amount of Degrees(数位DP)
- URAL 1057 Amount of Degrees (数位DP)
- 【Ural】【1057】Amount of degrees
- ural1057 Amount of Degrees 数位dp
- URAL - 1057 Amount of Degrees--数位dp
- URAL1057_Amount Of Degrees
- ural1057 Amount of Degrees ——数位DP