
数位dp
stargazer.
夜を穿つの
展开
-
【BZOJ3598】【SCOI2014】方伯伯的商场之旅(数位dp)
传送门似乎做出来之后很简单了显然对于每一个数都是在带权中点最优假设先把所有数都移到最后一位再枚举有多少能往左移更优考虑显然在找中点的时候能往左移的条件是当前位置前缀大于后缀而前后缀之差的范围是很小的,可以直接作为状态维护统计出所有更优的状态减一下就是了具体看代码吧我tm在口胡什么啊(逃)#include<bits/stdc++.h>using namespace ...原创 2019-03-27 19:49:50 · 190 阅读 · 0 评论 -
【BZOJ3530】【SDOI2014】—数数(Ac自动机+数位dp)
传送门f[0/1][j][k]f[0/1][j][k]f[0/1][j][k]表示有无限制,匹配到jjj位,在自动机上的点kkk的方案数瞎dpdpdp就完了注意前导0的情况,比如限制012301230123,但123123123是合法的#include<bits/stdc++.h>using namespace std;#define gc getcharinline ...原创 2019-07-19 12:01:02 · 148 阅读 · 0 评论 -
【Codeforces 750G】—New Year and Binary Tree Paths(数位dp)
传送门题意:给出一颗无限大的线段树,询问有多少条路径满足点的编号和为k,k≤1015k,k\le10^{15}k,k≤1015实际上线段树只有505050层左右考虑一条路径就是2条向下延伸的链考虑一条链的情况实际上如果确定了链的长度lll,就可以唯一确定一个出发点xxx证明:如果链一直向左儿子走,编号和显然为(2l+1−1)x(2^{l+1}-1)x(2l+1−1)x对于x−1x-...原创 2019-09-03 18:29:56 · 245 阅读 · 0 评论 -
【TJOI2019 Day2】简要题解
T1:传送门傻逼题考虑到kkk很小,把2k+12k+12k+1种暴力建出来跑dijdijdij就可以了结果出题人竟然不卡优先队列的O(n+mklog)O(n+mklog)O(n+mklog)写法跑的还比set的O(m+nklog)set的O(m+nklog)set的O(m+nklog)快……#include<bits/stdc++.h>using namespace st...原创 2019-09-03 18:32:44 · 155 阅读 · 0 评论 -
【Codeforces Round #228 (Div.1)】—D. Fox and Perfect Sets(线性基+数位dp)
传送门考虑实际上就是构造一个线性基使得最大数不超过kkk令f[i][j][0/1]f[i][j][0/1]f[i][j][0/1]表示前iii位,已经有jjj个基,是否抵着上界考虑当前位是否加入一个新的基如果不加,则考虑前面jjj个异或起来这一位是否为111为1,01,01,0的方案都是2j−12^{j-1}2j−1#include<bits/stdc++.h>using...原创 2019-09-08 17:03:43 · 147 阅读 · 0 评论 -
【LOJ #3114】【SDOI2019】—移动金币(博弈论+数位dp)
传送门首先这个很套路的转化成阶梯NimNimNim,把相邻的空看做石子问题就变成有n−mn-mn−m个石子,放在m+1m+1m+1个阶梯,先手必胜的状态考虑先手必败是奇数位置异或和为000于是可以数位dpdpdp考虑先枚举给奇数填多少个,把剩下填给偶数f[i][j]f[i][j]f[i][j]表示前iii位,还剩jjj个石子,异或和为0的方案数只需要枚举这一位选几个(当然必须是偶数个...原创 2019-09-15 13:23:32 · 332 阅读 · 0 评论