hihocoder 1259 (数位DP)
来源:互联网 发布:java字符串截取前几位 编辑:程序博客网 时间:2024/05/28 17:07
连接:点击打开链接
题意:定义g(x)为f(1)到f(n)中模k余n的个数,求出所有g(x)的异或和.
坑爹UVA一直报RE然后转向hihocoder就过了~
f(2x)=3f(x),f(2x+1)=f(2x)+1.
然后发现f(1)到f(n)在三进制下等价于二进制下的1到n,然后就可以用数位DP搞了.
这个思想下的转移方程dp(d,m) = dp(d-1, (m-x)%k).
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>using namespace std;long long dp[68][68686];long long n, ans[68686];int mod;int bit[68], l;#define pow Powlong long pow[68];void solve (long long num) { long long cur = 1; l = 0; while (num) { bit[++l] = (num&1); num >>= 1; } pow[0] = 1; for (int i = 1; i <= l; i++) pow[i] = pow[i-1]*3%mod; for (int i = 1; i <= l; i++, cur *= 3, cur %= mod) { for (int j = 0; j < mod; j++) { dp[i][(j+cur)%mod] += dp[i-1][j];//1 dp[i][j] += dp[i-1][j];//0 } } memset (ans, 0, sizeof ans); cur = 0; for (int i = l; i >= 1; i--) { if (bit[i]) { for (int j = 0; j < mod; j++) { ans[(j+cur)%mod] += dp[i-1][j]; } cur += pow[i-1]%mod; cur %= mod; } } ans[cur]++;//最终的数字 ans[0]--;//排除数字0 long long gg = 0; for (int i = 0; i < mod; i++) { gg ^= ans[i]; } cout << gg << endl; return ;}int main () { //freopen ("in.txt", "r", stdin); int t; scanf ("%d", &t); while (t--) { memset (dp, 0, sizeof dp); dp[0][0] = 1; scanf ("%lld%d", &n, &mod); solve (n); } return 0;}
0 0
- hihocoder 1259 (数位DP)
- HihoCoder 1259 数位DP
- hihoCoder 1259 A Math Problem 数位dp
- hihoCoder 1259 A Math Problem 数位dp
- hihoCoder 1259 A Math Problem(数位dp)
- Hihocoder 1259 A Math Problem(数位DP+公式推导)
- hihocoder 1259 推公式+数位dp(非dfs写法)
- 数位DP 浅谈(hihocoder 1033:交错和)
- hihoCoder 1076 与链 (数位dp)
- [数位dp] hihoCoder 1033 交错和
- hihocoder 1033 交错和 数位DP
- [数位DP] hihoCoder#1033 交错和
- 数位DP 浅谈(hihocoder 1033:交错和)
- 数位DP 浅谈(hihocoder 1033:交错和)
- hihocoder 1103 数位dp+记忆化搜索
- hihoCoder 1033 : 交错和 数位dp
- hihoCoder 交错和 (数位DP)
- hihocoder 1033 交错和 (数位dp)
- Java编码规范
- c++第3次上机-2
- 机房重构之导出excel
- Java各种对象理解(转)
- 输出1-100之间的奇数
- hihocoder 1259 (数位DP)
- C++如何实现单例模式
- [BZOJ2186][Sdoi2008]沙拉公主的困惑
- 递归搜索之朋友配对数
- leetcode 121. Best Time to Buy and Sell Stock-股市交易
- 在Myeclipse 中导入java web项目出现JRE System Library(unbound)和Server Library(unbound)解决方法
- 尽量以const、enum、inline替换#define
- RS232电平 RS485电平 RS422电平
- Java反射学习总结