Ural 1057(Amount of Degrees-数位统计入门)
2013-05-27 12:52
337 查看
Time limit: 1.0 second |
input | output |
---|---|
15 20 2 2 | 3 |
Tags: none (
hide tags for unsolved problems
)
Difficulty: 778 Printable version Submit solution Discussion
(35)
My submissions All submissions (8220) All
accepted submissions (1664) Solutions rating (1261)
详见程序备注(说白了就是填数字)
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #include<functional> #include<cmath> #include<cctype> using namespace std; #define For(i,n) for(int i=1;i<=n;i++) #define Rep(i,n) for(int i=0;i<n;i++) #define Fork(i,k,n) for(int i=k;i<=n;i++) #define ForD(i,n) for(int i=n;i;i--) #define Forp(x) for(int p=pre[x];p;p=next[p]) #define RepD(i,n) for(int i=n;i>=0;i--) #define MAXK (20+10) #define MAXB (10+10) #define MAXLog (32+10) int x,y,k,b,C[MAXLog][MAXLog]; int a[MAXLog]; int calc(int x,int k,int b) //k num ()b { int len=0,ans=0; while (x) { a[++len]=x%b; x/=b; } ForD(i,len) { if (a[i]>1) { ans+=C[i-1][k]+C[i-1][k-1];break; //考虑这位为1/0的情况 } else if (a[i]==1) { ans+=C[i-1][k]; //考虑这位为0的情况 k--; } if (k<0) return ans; } return ans; } int main() { // freopen("ural1057.in","r",stdin); Rep(i,32+1) { C[i][0]=1;C[i][1]=i; Fork(j,2,i) C[i][j]=C[i-1][j]+C[i-1][j-1]; } // cout<<C[3][1]<<' '<<C[3][2]<<' '<<C[3][3]; scanf("%d%d%d%d",&x,&y,&k,&b); cout<<calc(y+1,k,b)-calc(x-1+1,k,b)<<endl; return 0; }
相关文章推荐
- ural1057 Amount of Degrees数位统计入门题
- URAL 1057 Amount of Degrees (数位统计)
- [ACM] ural 1057 Amount of degrees (数位统计)
- ural 1057 Amount of degrees 数位DP (入门)
- Amount of Degrees URAL - 1057 数位dp
- ural 1057 - Amount of Degrees(数位统计)
- [ACM] ural 1057 Amount of degrees (数位统计)
- 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【数位Dp】
- ural1057 Amount of degrees
- [ural1057]Amount of Degrees && 数位DP
- URAL 1057 Amount of Degrees(数位dp)
- ural1057 Amount of Degrees ——数位DP
- URAL 1057 Amount of Degrees 数位dp
- URAL 1057 Amount of Degrees (数位DP)
- Amount of Degrees[ural 1057]
- Ural 1057. Amount of Degrees 数位统计