lightoj 1021 (数位DP)
2024-10-14 23:01:30
题意:给你一个b进制的数,再给你一个十进制数k,你可以重新排列b进制数的每一位得到其他b进制数,问你这些数中有多少可以整除k?
思路:数位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;
}
最新文章
- 7 -- Spring的基本用法 -- 5...
- linux 的 磁盘操作
- chem01- 添加商品到购物车
- VirtualizingStackPanel
- BOT、BT、PPP形式介绍(2)
- BZOJAC400题留念
- PHP的MySQL扩张:MySQL数据库概述
- jsp+servlet实现模糊查询和分页效果
- 「拆小鹤」使用 python 实现 QQ机器人服务。
- php缩放gif和png图透明背景变成黑色的解决方法_php技巧
- Chipmunk碰撞形状:cpShape
- java servlet的执行流程
- Centos7安装Openldap初级篇
- Spark思维导图之内存管理
- vue项目中使用scss
- Hadoop JAVA HDFS客户端操作
- 01.hadoop集群环境搭建
- SSM 关于service和dao的封装
- python函数def
- mongodb基础学习7-备份与恢复