数位dp
alan_cty
蒟蒻一只
别打脸(⊙o⊙)哦
展开
-
GDKOI2016 Day2 T2 QT与泰剧
T2 QT与泰剧 给出上界S和下界T,求在T+1~S中,模3与S同余并且不全由质数组成的数的个数。典型数位DP,答案即为⌊S−T+23⌋−ans\lfloor {S-T+2\over 3}\rfloor-ans。ans为不合法的数的个数。注意细节。#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b) f原创 2016-03-05 12:51:49 · 1193 阅读 · 1 评论 -
【SDOI2014】数数
Description求1~N中不含数字串集合S中的任意一个的数字的数量。 数字串可以有前导0,少于位数不用补0. 字符串集合中有M个串,字符集总长为L。 |N|<=1200,M<=100,L<=1500SolutionAC自动机上DP。 设Fi,j,up,zero表示当前到第i位,AC自动机走到j这个节点,有没有爆上界,是否在算前导0. 其实最后一维可以不要,%各位大犇,蒟蒻不会。 随原创 2016-04-13 20:56:32 · 580 阅读 · 0 评论 -
【NOIP2013模拟】期望异或&&【NOI2015模拟9.7】大新闻
Description在区间[0,n)中随机生成一个整数x,然后,有p的概率选择[0,n)中与x异或值最大的y,否则在区间[0,n)中随机选择一个整数y。求x⊕yx\oplus y的期望值。 n<=10^18Solution首先把答案写出来:Ans=1−pn2∑i=0n−1∑j=0n−1i⊕j+pn∑i=0n−1i⊕f(i)Ans={1-p\over {n^2}}\sum_{i=0}^{n-1}\原创 2016-06-29 19:41:47 · 925 阅读 · 0 评论 -
【WC2015模拟2.6】Circle
Description一开始有个n个在[0,2^m)区间内的数。 每一秒每一个数将会+1,然后对2^m取模。 求在[1,T]秒内,有多少个时间,使得这n个数的异或值为S。 n<=10^5,m<=50,T<=10^16Solution很显然的与位运算有关的题目。 首先我们就相当于求给出一个上界up,[1,up]中有多少个数x使得所有的(ai+x)%2^m的异或值为S。 考虑Dp,发现我们只需原创 2016-12-27 22:01:44 · 547 阅读 · 0 评论 -
[51nod1169]石子游戏
Description有n堆石子,第i堆有ai个。 现在要从这n堆石子的任意堆中拿走任意个石子,使得如果两个人用这n堆石子玩nim游戏先手必败。 但要求至少有一堆石子不动。 求方案数对1e9+7取模之后的结果。 n<=100,ai<=1e9Solution显然我们只需要异或值为0就好了。 这种东西一般都是考虑位运算啦,对于至少有一堆不取,我们可以容斥,先任意取,在减去全部都取一个然后任意取原创 2016-12-30 12:37:14 · 717 阅读 · 0 评论 -
【WC2016模拟】计数系统(stones)
Description n,k<=2000,T<=50Solution是不是很容易想到数位Dp? 讲一下我考场上想到的辣鸡做法,从中间向两边对称着做,满足第三个条件必然在某个时刻出现左端点为0,右端点为1,分成两段Dp。 特别难写而且自带一个大常数在50组数据的加强下可以达到接近N^3 膜拜一下题解: 先考虑字典序严格小于,枚举一个X把它变成I,然后考虑这一段前缀对答案的贡献。 既然要反原创 2017-12-26 17:29:44 · 415 阅读 · 0 评论