【数位DP】【poj 3252】Round Numbers
2014-12-09 10:55
351 查看
http://poj.org/problem?id=3252
组合计数?和数位DP差不多啦~
感觉组合数就是预处理的DP
组合计数?和数位DP差不多啦~
感觉组合数就是预处理的DP
//#define _TEST _TEST #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <cmath> #include <algorithm> using namespace std; /************************************************ Code By willinglive Blog:http://willinglive.cf ************************************************/ #define rep(i,l,r) for(int i=l,___t=(r);i<=___t;i++) #define per(i,r,l) for(int i=r,___t=(l);i>=___t;i--) #define MS(arr,x) memset(arr,x,sizeof(arr)) #define LL long long #define INE(i,u,e) for(int i=head[u];~i;i=e[i].next) inline const int read() {int r=0,k=1;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')k=-1; for(;c>='0'&&c<='9';c=getchar())r=r*10+c-'0';return k*r;} ///////////////////////////////////////////////// int C[33][33]; int bit[33]; ///////////////////////////////////////////////// int cal(int n) { n++; for(*bit=0;n;n>>=1) bit[++*bit]=n&1; int ans=0; rep(i,1,*bit-1) rep(j,(i+1)/2,i-1) ans+=C[i-1][j]; int one=1,zero=0; per(i,*bit-1,1) if(bit[i]) { zero++; rep(j,max(0,(*bit+1)/2-zero),i-1) ans+=C[i-1][j]; zero--;one++; } else zero++; return ans; } ///////////////////////////////////////////////// void solve() { rep(i,0,32) C[i][0]=1; rep(i,1,32) rep(j,1,i) C[i][j]=C[i-1][j]+C[i-1][j-1]; int l,r; l=read(); r=read(); printf("%d\n",cal(r)-cal(l-1)); } ///////////////////////////////////////////////// int main() { #ifndef _TEST freopen("std.in","r",stdin); freopen("std.out","w",stdout); #endif solve(); return 0; }
相关文章推荐
- POJ 3252 Round Numbers 数位dp
- 【数位dp && 优化】POJ - 3252 Round Numbers
- POJ 3252 Round 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)
- POJ 3252 Round Numbers (数位dp)
- POJ3252---Round Numbers(数位dp)
- 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)
- 【数位DP】POJ 3252 Round Numbers
- POJ 题目3252 Round Numbers(数位DP)
- POJ - 3252 Round Numbers 数位dp
- POJ 3252 Round Numbers 数位dp
- poj 3252 Round Numbers(数位DP)