博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 5435
阅读量:4553 次
发布时间:2019-06-08

本文共 719 字,大约阅读时间需要 2 分钟。

数位DP题,然而不会做。设dp[i][j]表示前i位异或和为j的时候的个数。先dp出所有的可能组合使得异或和为j的个数,然后按位进行枚举。对于dp[i][j],其实不止是前i位,对于后i位的情况同样适用,当在枚举s[i]位时k,如果k<s[i]时,只需直接计算后dp[i][j]的情况就好。。

可见,我其实对于状压、数位DP已经很生疏了,因为这个暑假。。。

#include 
#include
#include
#include
using namespace std;#define LL long longconst int MAX=100005;const int mod=1000000007;int cnt[MAX][17];char s[MAX],t[MAX];void init(){ memset(cnt,0,sizeof(cnt)); cnt[0][0]=1; for(int i=0;i<10;i++) cnt[1][i]=1; for(int i=1;i
=mod?cnt[i+1][j^k]-mod:cnt[i+1][j^k]; } } }}LL cal(char s[]){ int cur=0; LL res=0; int len=strlen(s); for(int i=0;i

 

转载于:https://www.cnblogs.com/jie-dcai/p/4816682.html

你可能感兴趣的文章
C# Enum Name String Description之间的相互转换
查看>>
Android 实现ripple动画
查看>>
PHP wamp server问题
查看>>
Spring Data Redis学习
查看>>
js闭包理解案例-解决for循环为元素注册事件的问题
查看>>
2015.04.23,外语,读书笔记-《Word Power Made Easy》 12 “如何奉承朋友” SESSION 33
查看>>
Spring+SpringMVC+JDBC实现登录
查看>>
生与死之间
查看>>
NEFU 109
查看>>
HDU 5435
查看>>
git从已有分支拉新分支开发
查看>>
滚动条隐藏兼容写法
查看>>
SQL2005查询所有表的大小
查看>>
Shell 正则表达式
查看>>
Docker run命令参数整理
查看>>
qt-opencv配置mingw编译器
查看>>
CSS之Medial Queries的另一用法:实现IE hack的方法
查看>>
oo第三单元总结
查看>>
linux-CentOS6.4下安装oracle11g详解
查看>>
实力为王 八年DBA经验谈
查看>>