12 2018 档案

SG函数
摘要:组合博弈 先定义一个辅助函数mex=(s),mex是最小的不在集合s中的整数,如mex{0,1,3,4}=2; 定义函数sg(),sg(x)=0表示x为必败态,sg(x)!=0表示x为必胜态 sg(x)=mex{sg(y) | y是x的所有后继} 那么组合博弈时,若sg(x1,x2,x3...xn) 阅读全文

posted @ 2018-12-31 23:11 zsben 阅读(361) 评论(0) 推荐(0) 编辑

斐波那契博弈
摘要:首先有一个定理:齐肯多夫定理:任何整数可以分解成若干个不连续的斐波那契数之和 斐波那契博弈游戏规则:一堆个数为n的石子,游戏双方轮流去石子。要求 1)先手不能一次取完所有石子 2)之后每次可以取的石子数介于1-对手刚取的石子数2倍之间 定理:如果n不是斐波那契数,那么先手必胜,如果n是斐波那契数,那 阅读全文

posted @ 2018-12-31 17:57 zsben 阅读(440) 评论(0) 推荐(0) 编辑

尼姆博弈
摘要:问题一:有n堆物品各若干,两人轮流从某一对取任意多物品,规定每次至少取一个,多者不限,最后取光者胜利 用(a,b,c)表示局势,若a xor b xor c==0,那么(a,b,c)为奇异局势,面对奇异局势必败。若(a,b,c)为非奇异局势,则只要将c变为a xor b即变成奇异局势 若a1 xor 阅读全文

posted @ 2018-12-31 14:28 zsben 阅读(246) 评论(0) 推荐(0) 编辑

cf777c 模拟
摘要:水题 阅读全文

posted @ 2018-12-30 17:13 zsben 阅读(388) 评论(0) 推荐(0) 编辑

cf776c
摘要:这题用尺取法是怼不出来的。。。 一开始看到区间和等于k的幂,并且有负数,首先想到将前缀和排序后用尺取法,但因为排序后的前缀和次序是乱的,只适用带绝对值的情况(poj2566),所以无法做。 看了题解后发现其实是个简单的dp 阅读全文

posted @ 2018-12-30 15:59 zsben 阅读(569) 评论(0) 推荐(0) 编辑

hdu1506单调栈的宽度
摘要:很好的题目,单调栈上的宽度如何求 题解:https://blog.csdn.net/baidu_35643793/article/details/64440095 单调队列和单调栈都是去除没有用的数据,对于本题来说,当一个高度小于前面高度时,那么前面的高度就没用了,因为此时后面柱体宽度拓展的限制条件 阅读全文

posted @ 2018-12-30 10:18 zsben 阅读(143) 评论(0) 推荐(0) 编辑

hdu4122
摘要:题目很长,有点恶心,但实际上是个单调队列 没搞出来,题解 https://blog.csdn.net/lvshubao1314/article/details/46910271 阅读全文

posted @ 2018-12-29 18:07 zsben 阅读(157) 评论(0) 推荐(0) 编辑

poj3410单调队列(单调栈)
摘要:思路:求每个人的左使者就是从左到右把每个人加入到单调队列中去,加入时最后一个出队的就是那个最大的小于这个数的数 求右信使同理 由于本题的单调队列队头不需要出队,所以其实是一个单调栈 阅读全文

posted @ 2018-12-29 16:15 zsben 阅读(146) 评论(0) 推荐(0) 编辑

hdu3415 单调队列模板题
摘要:比较裸的单调队列 先求前缀和,枚举所有结束位置1~n+k即可 阅读全文

posted @ 2018-12-29 13:26 zsben 阅读(218) 评论(0) 推荐(0) 编辑

hdu1937 二维尺取
摘要:/* 二维上的尺取,外层循环枚举j轴上的可能,内层在i轴上尺取即可 O(N^3) */ #include #include #include #include using namespace std; #define maxn 305 int r,c,kk,sum[maxn][maxn]; char mp[maxn][maxn]; int main(){ while(scanf("... 阅读全文

posted @ 2018-12-29 11:56 zsben 阅读(257) 评论(0) 推荐(0) 编辑

hdu5358 推公式+在一个区间内的尺取+枚举法
摘要:尺取+枚举,推出公式以后就是一个枚举加尺取 但是这题的尺取不是对一个值尺取,而是在一个区间内,所以固定左边界,尺取右边界即可 阅读全文

posted @ 2018-12-29 10:43 zsben 阅读(258) 评论(0) 推荐(0) 编辑

poj3349 散列表(hash)
摘要:就是散列表的应用,把每片哈希值相同的雪花排到一条链上去即可,每片雪花x的哈希值 hash(x)=sum(x的六角)+mul(x的六角),会爆int 阅读全文

posted @ 2018-12-28 23:41 zsben 阅读(188) 评论(0) 推荐(0) 编辑

hdu3282 链表或者对顶堆
摘要:维护序列的动态中位数 第一次用链表做题。。感觉指针指来指去也挺麻烦的。。 本题链表解法就是用数组模拟出一个链表,然后离线输入所有数,排序,按照输入顺序在链表里删除元素,一次性删掉两个,然后中位数指针对应移动即可 网上另外一种解法是对顶堆,所谓对顶堆,就是建立一个小根堆q1,大根堆q2,每次读入的数如 阅读全文

posted @ 2018-12-28 21:01 zsben 阅读(281) 评论(0) 推荐(0) 编辑

hdu5178 尺取
摘要:会爆int 阅读全文

posted @ 2018-12-21 21:18 zsben 阅读(187) 评论(0) 推荐(0) 编辑

hdu5672 尺取
摘要:因为没有初始化ans搞了一晚上 还是尺取,枚举所有l 然后寻找对应满足条件的r,这个串可以被后面所有的串包含,所以每个l 的贡献就是len-r+1 阅读全文

posted @ 2018-12-20 22:17 zsben 阅读(149) 评论(0) 推荐(0) 编辑

hdu3244完全背包+二分答案 留坑
摘要:看了完全背包再来学 阅读全文

posted @ 2018-12-20 20:12 zsben 阅读(169) 评论(0) 推荐(0) 编辑

hdu5256 二分求LIS+思维
摘要:解题的思路很巧,为了让每个数之间都留出对应的上升空间,使a[i]=a[i]-i,然后再求LIS 另外二分求LIS是比较快的 阅读全文

posted @ 2018-12-20 18:32 zsben 阅读(213) 评论(0) 推荐(0) 编辑

hdu5646数学构造+二分
摘要:/* 满足n>=(k+1)*k/2的整数n必定满足 a+(a+1)+...+(a+k-1) #define mod 1000000007 #define ll long long using namespace std; ll n,k; int judge(ll x){ ll tot=(x+x+k-1)*k/2; if(tot>1; if(judge... 阅读全文

posted @ 2018-12-20 10:38 zsben 阅读(134) 评论(0) 推荐(0) 编辑

hdu4190 二分答案
摘要:/*二分答案即可*/ #include #define maxn 500005 #define ll long long #define INF 5000005 using namespace std; ll n,b,a[maxn]; int judge(ll x){ ll tot=0; for(int i=1;i0){ ll l=0,r=INF,mid,a... 阅读全文

posted @ 2018-12-20 09:16 zsben 阅读(267) 评论(0) 推荐(0) 编辑

hdu5493 树状数组+二分
摘要:数字的字典序,,有点迷,网上看题解也没有明说,总之越大的数字放在后面就行了 利用二分找到前k个空位即可 阅读全文

posted @ 2018-12-20 08:47 zsben 阅读(184) 评论(0) 推荐(0) 编辑

hdu2289二分答案 圆台体积
摘要:精度小一点就能过 阅读全文

posted @ 2018-12-19 16:53 zsben 阅读(109) 评论(0) 推荐(0) 编辑

hdu4768二分答案
摘要:/* 如果发的传单是偶数,那么所有人都收到双数张、 仅考虑发了单数张传单,二分答案x,如果x左边是偶数,那么答案在右侧,如果x左边是奇数,那么答案在左侧 */ #include #include #include #include #define ll long long #define maxn 20005 #define INF 1000000009 using namespace ... 阅读全文

posted @ 2018-12-19 16:06 zsben 阅读(112) 评论(0) 推荐(0) 编辑

poj3579 二分套二分
摘要:和poj3685类似,都是二分答案然后在判断时再二分 这题的内层二分可以用stl代替 阅读全文

posted @ 2018-12-19 13:53 zsben 阅读(117) 评论(0) 推荐(0) 编辑

poj3685 二分套二分
摘要:二分经典题, 注意INF不能开太小(WA),也不能开太大(会T)。。 阅读全文

posted @ 2018-12-19 10:59 zsben 阅读(139) 评论(0) 推荐(0) 编辑

cf343c 二分答案+模拟
摘要:/* 怎么判断能否在时间k内完成扫描 贪心:每次取出最靠左边的磁头去扫描最左边的,然后再往右扫描即可 如果当前点无法扫到最左侧点,那么后继点一样无法扫到 */ #include #define maxn 100005 #define ll long long using namespace std; int n,m; ll h[maxn],p[maxn]; int judge(ll ... 阅读全文

posted @ 2018-12-19 09:35 zsben 阅读(195) 评论(0) 推荐(0) 编辑

hdu3530 双单调队列的维护
摘要:单调队列有部分堆的功能,但其只能维护给定区间中比v大的值或者比v小的值,且其一般存储元素的下标。 思路:两个单调队列维护最大值与最小值的下标,如果区间的最大值最小值之差大于给定范围,则选择队首靠左的删去,并记录删去元素的下标,然后维护最大区间长度即可 注意有两个范围,第二个范围不能忽略 阅读全文

posted @ 2018-12-18 21:46 zsben 阅读(132) 评论(0) 推荐(0) 编辑

poj2823 单调队列初步
摘要:什么是单调队列:头元素一直是队列当中的最大值,队列中的值按照递减顺序排列,可以从末尾插入一个元素,或从两段删除元素 1.插入元素,为了保证队列的单调性(这里假设为递减性),在插入元素v时要将对位的元素和v比较,如果队尾的元素不大于v,删掉,直到队尾元素大于v,再将v插入队尾 2.删除元素,队尾的删除 阅读全文

posted @ 2018-12-18 19:58 zsben 阅读(193) 评论(0) 推荐(0) 编辑

poj2739 poj2100 尺取法基础(二)
摘要:都是很简单的题目 poj2739素数打表+单点推移 poj2100单点推移 阅读全文

posted @ 2018-12-18 18:43 zsben 阅读(406) 评论(0) 推荐(0) 编辑

poj3061 poj3320 poj2566尺取法基础(一)
摘要:poj3061 给定一个序列找出最短的子序列长度,使得其和大于等于S 那么只要用两个下标,区间和小于S时右端点向右移动,区间和大于S时左端点向右移动,在这个过程中更新Min poj3320给一本书有P页,每页都有一个知识点,求最少的连续页数覆盖所有知识点 如果一个区间的子区间满足条件,那么右端点固定 阅读全文

posted @ 2018-12-17 23:00 zsben 阅读(144) 评论(0) 推荐(0) 编辑

基数排序和后缀数组的原理入门
摘要:字符串里算难了。。参考了好多博客 推荐https://blog.csdn.net/YxuanwKeith/article/details/50636898 每个数组的含义:sa[i]:排在第i位的子串的位置,、 rank[i]:位置 i 的子串排在第几位 height[i]:位置为sa[i]的后缀和 阅读全文

posted @ 2018-12-17 21:51 zsben 阅读(642) 评论(0) 推荐(0) 编辑

近期目标:单调队列,尺取,分块,块状链表
摘要:近期打算赶紧补一些遗漏的知识点 尺取:https://blog.csdn.net/consciousman/article/details/52348439 单调队列: https://blog.csdn.net/justmeh/article/details/5844650 https://blo 阅读全文

posted @ 2018-12-15 17:38 zsben 阅读(103) 评论(0) 推荐(0) 编辑

poj2464扫描线好题,树状数组解法
摘要:用树状数组解比线段树快了好多,难度也下降许多 分别用两个树状数组维护当前扫描线左侧和右侧的点,离散化y轴即可 阅读全文

posted @ 2018-12-13 17:03 zsben 阅读(280) 评论(0) 推荐(0) 编辑

uva11610 树状数组+素数打表求因子,好题!
摘要:/* uva11610 树状数组+素数打表+离散化 打出的素数范围在2-1000000之间,不超过六位数,然后按照格式翻转成七位数 */ #include using namespace std; #define maxn 1000005 #define ll long long int flag[maxn],prime[maxn],cnt; int fac[maxn],a[maxn],tot,... 阅读全文

posted @ 2018-12-13 15:28 zsben 阅读(221) 评论(0) 推荐(0) 编辑

spoj227 树状数组插队序列问题
摘要:插队问题和线段树解决的方式一样,每个结点维护值的信息是该节点之前的空位有多少,然后从后往前插点即可 注意该题要求输出的是从左往右输出每个士兵的等级,即问士兵最后排在第几个位置 阅读全文

posted @ 2018-12-12 21:47 zsben 阅读(272) 评论(0) 推荐(0) 编辑

hdu2838树状数组解逆序
摘要:离散化和排序后的序号问题搞得我实在是头痛 不过树状数组解逆序和偏序一类问题真的好用 更新:hdu的数据弱的真实,我交上去错的代价也对了。。 下面的代码是错的 下面的代码是对的 阅读全文

posted @ 2018-12-11 17:19 zsben 阅读(149) 评论(0) 推荐(0) 编辑

hdu2642二维树状数组单点更新
摘要:碰到这种题一定要注意坐标是不是有序的,也要注意坐标是不是有0的,有的话需要+1处理 阅读全文

posted @ 2018-12-11 12:15 zsben 阅读(143) 评论(0) 推荐(0) 编辑

hdu1556 树状数组区间更新单点查询板子
摘要:就是裸的区间更新: 相对于直观的线段树的区间更新,树状数组的区间更新原理不太相同:由于数组中的一个结点控制的是一块区间,当遇到更新【l,r】时,先将所有能控制到 l 的结点给更新了,这样一来就是一下子更新到【l,+无穷】了,所以需要将【r+1,+无穷】区间的更新消去,那么同理,【r+1,+无穷】反向 阅读全文

posted @ 2018-12-10 20:38 zsben 阅读(139) 评论(0) 推荐(0) 编辑

hdu3015树状数组 poj1990的离散化版本
摘要:都是一类题目,推导调试比较烦,想出来还是不难的 阅读全文

posted @ 2018-12-09 17:41 zsben 阅读(142) 评论(0) 推荐(0) 编辑

poj1990两个树状数组
摘要:垃圾poj交不上去 阅读全文

posted @ 2018-12-09 12:57 zsben 阅读(231) 评论(0) 推荐(0) 编辑

cf 1082abc
摘要:还是菜,两题dp一题模拟 阅读全文

posted @ 2018-12-08 00:13 zsben 阅读(171) 评论(0) 推荐(0) 编辑

:树状数组总结一
摘要:进来做了一些树状数组的题,这是个比较强大的数据结构,能在logn的时间内进行修改和查询 值得注意的是:树状数组要么单点更新区间查询,要么区间更新单点查询,不能同时区间更新区间查询,这是由其原理决定的 单点更新时树状数组结点维护的是每个段的和, 区间更新时树状数组结点维护的是每个段的每个值被修改的量! 阅读全文

posted @ 2018-12-07 20:22 zsben 阅读(94) 评论(0) 推荐(0) 编辑

poj3321 dfs序+树状数组单点更新 好题!
摘要:当初听郭炜老师讲时不是很懂,几个月内每次复习树状数组必看的题 树的dfs序映射在树状数组上进行单点修改,区间查询。 阅读全文

posted @ 2018-12-07 20:17 zsben 阅读(139) 评论(0) 推荐(0) 编辑

poj2155二维树状数组区间更新
摘要:垃圾poj又交不上题了,也不知道自己写的对不对 阅读全文

posted @ 2018-12-07 19:37 zsben 阅读(143) 评论(0) 推荐(0) 编辑

SPOJ - MATSUM 二维树状数组单点更新
摘要:忘记了单点更新时要在树状数组中减去原值。。wa了一发 阅读全文

posted @ 2018-12-07 16:56 zsben 阅读(223) 评论(0) 推荐(0) 编辑

zoj1716简单的二维树状数组
摘要:问一个矩形框在一个大矩形内最多能围几个给定的点 都不用排序,先把所有的点加入树状数组,再直接枚举大矩形的每个格子即可 阅读全文

posted @ 2018-12-07 16:29 zsben 阅读(126) 评论(0) 推荐(0) 编辑

poj3067 二维偏序树状数组
摘要:题解是直接对一维升序排列,然后计算有树状数组中比二维小的点即可 但是对二维降序排列为什么不信呢?? ac代码 阅读全文

posted @ 2018-12-06 23:40 zsben 阅读(238) 评论(0) 推荐(0) 编辑

poj2481树状数组解二维偏序
摘要:按区间r降序排列,r相同按照l升序排列,两个区间相同时特判一下即可 阅读全文

posted @ 2018-12-06 21:29 zsben 阅读(425) 评论(0) 推荐(0) 编辑

poj1195二维树状数组模板
摘要:二维树状数组和一维的也差不多,改一下add和query函数即可:即按行修改,行内单点修改即可 阅读全文

posted @ 2018-12-06 20:08 zsben 阅读(140) 评论(0) 推荐(0) 编辑

poj2352树状数组解决偏序问题
摘要:树状数组解决这种偏序问题是很厉害的! 阅读全文

posted @ 2018-12-05 23:41 zsben 阅读(237) 评论(0) 推荐(0) 编辑

poj2299树状数组入门,求逆序对
摘要:今天入门了树状数组 习题链接 https://blog.csdn.net/liuqiyao_01/article/details/26963913 离散化数据:用一个数组来记录每个值在数列中的排名,不能用map,会超时 开结构体存储每个数在数列中原来的位置,排序后用a数组求出原来状态下每个数的排名。 阅读全文

posted @ 2018-12-05 22:29 zsben 阅读(229) 评论(0) 推荐(0) 编辑

分治算法入门
摘要:https://blog.csdn.net/rainchxy/article/details/78957851可以看这篇博客 分治的复杂度分析:对于规模为n的问题,将其分成a个子问题,每个问题的规模是n/b。 证明:在递推式中每次往下分治时,子问题数量都会乘以a,子问题规模都会除以b,那么当子问题规 阅读全文

posted @ 2018-12-04 13:46 zsben 阅读(475) 评论(0) 推荐(0) 编辑

poj1177 矩形周长并
摘要:线段树扫描线的模板题,一个月前写的发现忘了一些还是要看看以前的博客呀! 阅读全文

posted @ 2018-12-03 21:40 zsben 阅读(129) 评论(0) 推荐(0) 编辑

hdu4942线段树模拟rotate操作+中序遍历 回头再做
摘要:很有意思的题目,详细题解看这里 https://blog.csdn.net/qian99/article/details/38536559 自己的代码不知道哪里出了点问题 阅读全文

posted @ 2018-12-03 20:03 zsben 阅读(169) 评论(0) 推荐(0) 编辑

hdu3193 降维+rmq
摘要:/* 给定n个数对(p,d),如果有这么一个数对(pi,di),其他所有的数对都不能严格小于这个数对 请求出有多少个这样的数对! 解法:对于数对(p,d),能找到在【1,p-1]之间的小于d的数对,那么数对(p,d)不符合要求,反之符合 那么开一个数组x,x[i]表示价格不超过p的最小的d的值,rmq打表后即可 */ #include using namespace std; #define m... 阅读全文

posted @ 2018-12-03 11:06 zsben 阅读(142) 评论(0) 推荐(0) 编辑

hdu3183 rmq求区间最值的下标
摘要:两个月前做的题,以后可以看看,是rmq关于求区间最值的下标 阅读全文

posted @ 2018-12-03 09:51 zsben 阅读(329) 评论(0) 推荐(0) 编辑

cf1061c 普通dp题
摘要:题解见https://blog.csdn.net/godleaf/article/details/84402128 这一类dp题是可以压缩掉一维空间的,本题枚举a1到an,枚举到ai时枚举ai的每个约数,dp[i-1][j]用来表示前i-1个数组成的子串长度是j的解个数,dp[i][j]即时前i个数 阅读全文

posted @ 2018-12-01 21:39 zsben 阅读(275) 评论(0) 推荐(1) 编辑

cf1061D 贪心+multiset 好题!
摘要:cf上的思维题真好! 本题是在模拟的基础上贪心即可:将n段时间按照左端点(右端点为第二关键字)从小到大排序,然后遍历每一个时间段。 对于每一个时间段【li,ri】,先找到multiset中最靠近li但在li左侧的r, 如果没有这样的r,即【li,ri】是当前最靠左的,那就需要新加一台电视机,然后把r 阅读全文

posted @ 2018-12-01 19:27 zsben 阅读(364) 评论(0) 推荐(0) 编辑

cf1020c 瞎搞
摘要:枚举获胜状态即可 阅读全文

posted @ 2018-12-01 08:43 zsben 阅读(201) 评论(0) 推荐(0) 编辑

导航

统计

点击右上角即可分享
微信分享提示