lightoj 1021 (数位DP)
2014-08-08 11:51
381 查看
题意:给你一个b进制的数,再给你一个十进制数k,你可以重新排列b进制数的每一位得到其他b进制数,问你这些数中有多少可以整除k?
思路:数位dp。
思路:数位dp。
#include <cstdio> #include <string> #include <cstring> #include <iostream> #include <algorithm> using namespace std; long long int dp[1 << 16][20]; int hashDigit(char ch){ if(ch >= '0' && ch <= '9') return ch-'0'; return 10 + ch - 'A'; } int main(){ int t,b,K,CASE(0); char str[20]; scanf("%d",&t); while(t--){ scanf("%d%d%s",&b,&K,str); memset(dp,0,sizeof dp); dp[0][0] = 1; int len = strlen(str),range = 1 << len; for(int i = 0;i < range;i ++){ for(int j = 0;j < len;j ++){ if(i & (1 << j)) continue; for(int k = 0;k < K;k ++) dp[i|(1 << j)][(k*b + hashDigit(str[j]))%K] += dp[i][k]; } } printf("Case %d: %lld\n",++CASE,dp[range-1][0]); } return 0; }
相关文章推荐
- lightoj 1021 - Painful Bases 【数位dp 状压】
- Lightoj 1021 数位dp
- lightoj1021 Painful Bases【数位dp】
- lightoj 1021 (数位DP)
- lightoj 1021 (数位DP)
- LightOJ 1021 Painful Bases 【状压DP+数位DP】
- Lightoj 1021 数位DP
- Lightoj 1033 数位DP
- LightOJ - 1140 How Many Zeroes?(数位DP)
- LightOJ 1068 - Investigation (数位dp)
- lightoj 1191 数位DP
- lightoj 1032 Fast Bit Calculations 数位dp
- lightoj 1032 - Fast Bit Calculations 【数位dp】
- LightOJ1140(数位DP)
- LightOJ 1140 How Many Zeroes?(数位dp)
- lightoj 1068(数位dp)
- lightoj 1205 - Palindromic Numbers(数位DP)
- LightOJ1068 Investigation(数位DP)
- LightOJ1105 Fi Binary Number(数位DP)
- lightoj 1068 数位DP