bzoj3944 Sum 杜教筛

模板题,注意杜教筛化式子的技巧:1、构造求和函数2、利用积性函数约数性质3、做差算出单项4、约数倍数转化贡献5、分块求商码:#include<iostream> #include<cstdio> #includ...

2018-03-16 14:54:22

阅读数:24

评论数:0

bzoj4820 [Sdoi2017]硬币游戏 高斯消元+概率+kmp

有环的概率是可以高斯消元的由于匹配情况可能从一个串转移到另一个串,所以需要建一个转移关系的图就可以建一个ac自动机,但节点数是nm的。就可以设未知数,然后凑一些方程。设N表示没有任何人获胜的概率(允许有前缀)然后N+ A串/B串/...n串  一定会停止。一定会停止的情况只有N  +  n种串。若...

2018-03-09 15:04:50

阅读数:25

评论数:0

bzoj4600 [Sdoi2016]硬币游戏 sg函数+结论

sg[maxQ][二的次数][三的次数]=前面的都是正面的胜负状态C不一样的相互独立首先顺序是不重要的,因为他有一个模仿关系。比如   9,3是0    必胜策略是 选9翻9 、3  由于是异或,所以必胜策略可以理解为 选9 翻 9  ,这样3的位置就需要翻两遍,也就相当于翻0次就可以理解为3这位...

2018-03-07 10:50:22

阅读数:24

评论数:0

bzoj4598 [Sdoi2016]模式字符串 hash+点分

哈希也是有技巧的。不然很容易错。匹配串范围是1e6的,所以普通hash错误概率也是很大的所以就要利用匹配的特性(长度与匹配串一一对应)来hash,这样错误概率会小,相当于hash挂链吧。一开始写的每个前缀hash存位置。这样一个hash里就有1e6个值。码:#include<...

2018-03-06 20:18:19

阅读数:23

评论数:0

bzoj4515 [Sdoi2016]游戏 标记永久线段树+链剖+差分

树上路径问题还有一个比较好的差分就是利用到根节点的信息。。题目的形式显然是一个一次函数,于是想到维护一次函数最小值上升路径就是: A(d[x]-d[o])+B   =  -Ad[o]+(B-Ad[x]);下降路径:       A(d[x]+d[o]-2*d[lca])+B = Ad[o]+(B+...

2018-03-04 10:33:37

阅读数:26

评论数:0

bzoj1568 [JSOI2008]Blue Mary开公司 标记永久化线段树

维护n条直线,保存斜率和截距。注意维护的时候分类讨论:1、两端都大于2、两端都小于3、交点在中点左4、交点在中点右注:点数不是询问数初值码:#include<iostream> #include<cstdio>...

2018-03-03 14:12:28

阅读数:16

评论数:0

bzoj4513 [Sdoi2016]储能表 dp

这种数位dp第一次见。。其实应该是利用位运算相互独立来避免后效性一般的数位dp只有一个范围 这个题有三个范围。。由于数位和整个数的大小没直接关系,所以就需要用状态记录首先不合法的一定不转移,对于n和m的限制 ,一位合法的话有可能出现后面无论如何都合法, 与后面的数不能小于剩下的数,由于比他大的都不...

2018-02-27 15:00:42

阅读数:16

评论数:0

bzoj4514 [Sdoi2016]数字配对 费用流

千万不要想复杂了,倍数和质数仅仅是判断两点之间能不能匹配的条件。。主要问题还是一个分配问题一开始想贪心,但好像不对,然后就由反例推出了关系图,然后就是二分匹配问题。。由于每个点入的量+出的量==数量,由于一次匹配要流两条边,对于原图是很难限制的;但由于对称性,所以就直接建两个方向的边即可。。码:#...

2018-02-25 21:00:43

阅读数:38

评论数:0

bzoj4602 [Sdoi2016]齿轮 边权并查集

把并查集的树形结构画出来,尝试路径压缩,就是直接把边权乘起来,表示当前节点转1圈,父节点转几圈。。如果卡精度可以用取log或分解质因数。码:#include<iostream> #include<cstdio>...

2018-02-25 16:24:40

阅读数:21

评论数:0

bzoj2756 [SCOI2012]奇怪的游戏 结论+网络流

首先这个题有一些情况不满足二分的性质,即黑白块数不相等的情况,这种情况满足的最后数字是可以直接求出来的因为有解的条件  x*cnt1-ans1==x*cnt0-ans0,x是唯一解相等的情况 上式就等价于x=x。。所以另外一个解的判定方法就是按照当前x能不能及时分配完,由于点与点之间的关系连成一片...

2018-02-24 20:34:23

阅读数:35

评论数:0

bzoj1296 [SCOI2009]粉刷匠 区间dp+背包

每一条都是独立的,所以可以分开处理对于一条,粉刷一定是粉刷完完整的一条是最优的(不会有比它优的),所以枚举次数起点转移不同条之间就是分组背包的关系了。。码:#include<iostream> #include<cstdio&...

2018-02-24 15:36:42

阅读数:25

评论数:0

bzoj1069 [SCOI2007]最大土地面积 凸包+单调性

先做凸包 枚举对角线,然后两个指针单调的扫。。枚举的顺序有时候也会创造性质注意重点不能选!码:#include<iostream> #include<cstdio> #include<al...

2018-02-24 14:46:32

阅读数:22

评论数:0

bzoj1293 [SCOI2009]生日礼物 单调队列

比较好想的单调队列码:#include<iostream> #include<cstdio> #include<algorithm> #include&amp...

2018-02-23 18:16:23

阅读数:20

评论数:0

bzoj1024 [SCOI2009]生日快乐 结论+dfs

一定不要想复杂了,虽然他看起来和二分的条件一模一样切的时候一定是切在等分点上,所以就枚举等分点切就可以了。。感觉应该有更简单的结论码:#include<iostream> #include<cstdio> us...

2018-02-23 15:49:27

阅读数:17

评论数:0

bzoj2460 [BeiJing2011]元素 贪心+线性基

线性基其实和向量关系很近。只是他们都是单位向量然后重复的01组判断方式类似高斯消元判无消方程的情况由于出现无解方程类似于一个环,所以这个线性无关组就类似一棵树,所以就可以用类似kruskal的方法求最大线性无关组相当于带权最大生成树码:#include<iostream&am...

2018-02-22 12:26:59

阅读数:25

评论数:0

bzoj1193 [HNOI2006]马步距离 构造+枚举

首先肯定不是直接按xy跳,因为会有几个特殊位置:(0,0)到(1,1)(0,0)到(1,0)(0,0)到(4,4)正常逼近是那长距离跳2,短距离跳1,但在这几个类似的点上是不行的首先,一定会有一段两个坐标都逼近的一部分,而且还很多都逼近的话,一定是当前位置最优解,但只逼近的话,当前位置不一定能落在...

2018-02-18 16:50:50

阅读数:35

评论数:0

bzoj 2962 序列操作 线段树

这个题卡常数。。首先c比较小,所以可以考虑dp转移,对于合并子序列就直接枚举跨区间的就可以了对于反转操作,要注意只有奇数位置才会变成相反数对于增加操作,可以考虑抽象成组合数学问题:对于(a1+b)*(a2+b)+(a1+b)*(a3+b)+(a2+b)*(a3+b),拆下来就是每一项都会和不同的两...

2018-02-11 07:45:57

阅读数:60

评论数:0

bzoj2127 happiness 最小割

不要往费用流上想,要往最小割上想,舍弃的权值最小,然后就想一下放到哪边有哪些贡献,不同位置会割掉不同贡献的边,然后枚举各种割的情况,赋边权就可以了码:#include<iostream> #include<cstdio&am...

2018-02-08 14:48:52

阅读数:39

评论数:0

bzoj1070 [SCOI2007]修车 费用流+拆分

这个题一开始容易想到最暴力的建法,由于前面的决策影响后面的人的等待时间,所以就枚举第几个选第几辆, 由于有后面受前面影响,所以也可以看成前面对后面影响,影响的最多n个,所以就枚举影响建图,由于3辆车 安排4个一定不如3个优,就没有后效性了 码: #include #include #...

2018-02-07 21:34:32

阅读数:29

评论数:0

bzoj3190 [JLOI2013]赛车 半平面交

思路和求凸包有点像 首先根据初始位置排序,然后同位置按斜率升序 然后加一条直线就暴力找就可以了(可以二分) 存每条直线的选取区间,然后由于有效的斜率单增,所以若覆盖了就是最后一个 要注意多条直线交于区间端点和 直线重合,由于后面的点一定被覆盖 ,直接加进前一条直线即可,然后这条直线加在最后...

2018-02-07 17:36:16

阅读数:40

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭