04 2018 档案

摘要:【传送门:BZOJ3391】 简要题意: 给出一棵n个点的树,求出所有满足这个点的与这个点相连的边被删除后,形成的多棵子树的节点数都不超过n的一半的点 如果没有,则输出NONE 题解: 直接DFS求出每个点的子树的节点数和每个点的所有儿子的子树中的最大节点数 一开始没看见是树的结构,想了半天,结果发 阅读全文
posted @ 2018-04-28 15:19 Star_Feel 阅读(204) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2730】 简要题意: 给出m条无向边,每个点有人,有时候会出现一个点崩塌,使得这个点和与这个点相连的边都不能经过 可以在某些点设置安全出口,其它可以到达这些点的点上的人可以逃出去 请问至少设置多少个安全出口和求出最少安全出口的情况下有多少种设置的方案 题解: Tarjan求割点例 阅读全文
posted @ 2018-04-28 11:24 Star_Feel 阅读(243) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2599】 简要题意: 给出一棵n个点的树,和每条边的边权 求出所有距离为k的点对中,两个点之间的最少边数 题解: 点分治好题 设c[i]为当前点分治的时候与根的距离为i的最小边数 因为我们不能使得求出来的点对都在一棵子树里面,所以我们枚举每一棵与根相连的子树,每次求出对于这棵子树 阅读全文
posted @ 2018-04-27 20:56 Star_Feel 阅读(213) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2152】 简要题意: 给出一棵n个点的树,和每条边的边权,求出有多少个点对,它们的距离为3的倍数 最后输出求出的点对数/总点对数的最简分数 题解: 点分治例题 求值时设t[i]为路径的值%3==i的情况数,那么答案就为t[1]*t[2]*2+t[0]*t[0] 参考代码: 阅读全文
posted @ 2018-04-27 11:23 Star_Feel 阅读(167) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1468&BZOJ3365】 简要题意: 给出一棵n个点的树,和每条边的边权,求出有多少个点对的距离<=k 题解: 点分治模板题 点分治的主要步骤: 1、首先选取一个点,把无根树变成有根树。 那么如何选点呢? ——树形DP 因为树是递归定义的,所以我们当然希望递归的层数最小。 每次 阅读全文
posted @ 2018-04-27 09:59 Star_Feel 阅读(207) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3530】 简要题意: 给出m个数,要求求出不含任意一个数的长度至多为n的数的数量 题解: 这道题比文本生成器要复杂一点,就是因为它的位数不确定,且不可以含有前导0 所以我们用数位DP的思想来做 设f[i][j][k]为当前长度为i且走到AC自动机的第j个点时,如果k=0,则表示仍 阅读全文
posted @ 2018-04-27 08:57 Star_Feel 阅读(194) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1030】 简要题意: 给出n个单词,要求求出至少含一个单词的长度为n的字符串数量 题解: 显然直接求出是很难求的,那么我们就求出总的字符串数量,再求出不含任何一个单词的字符串数量 然后相减就是答案 很像GT考试,不过变成了多个串,那么就用AC自动机 设f[i][j]为长度为i时到 阅读全文
posted @ 2018-04-27 07:47 Star_Feel 阅读(265) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3296】 简要题意: 给出n头牛,共有m种语言,每头牛会ki种语言,会相同语言的牛可以交流,A牛和B牛可以交流当且仅当它们能够通过和其他牛交流来互相交流 但是有些牛仍然不能互相交流,所以可以让某些牛学习一种或多种语言,让牛学习一种语言就必须买这个语言的书 求出能使得所有牛能相互交 阅读全文
posted @ 2018-04-26 15:00 Star_Feel 阅读(148) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2329】 简要题意: 给出一个长度为n的括号序列,有q个操作,4种操作: Query l r求出最少的步数,每步可以改变一个括号,将l到r的括号序列变为一一配对(也就是左括号在右边总有一个右括号与之对应) Invert l r将l到r中的左括号变成右括号,右括号变成左括号 Swa 阅读全文
posted @ 2018-04-26 08:14 Star_Feel 阅读(167) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2209】 简要题意: 给出一个长度为n的括号序列,有q个操作,3种操作: 0 l r求出最少的步数,每步可以改变一个括号,将l到r的括号序列变为一一配对(也就是左括号在右边总有一个右括号与之对应) 1 l r将l到r中的左括号变成右括号,右括号变成左括号 2 l r将l到r的序列 阅读全文
posted @ 2018-04-25 21:34 Star_Feel 阅读(211) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1047】 简要题意: 给出a,b,n,给出一个a*b的矩阵,要求在这个矩阵中得到一个n*n的矩阵,使得这个n*n的矩阵的最大值-最小值的差最小,求出最小的差 题解: 二维ST表(涨姿势) mx[i][j][k]表示左上角为(i-2k+1,j-2k+1),右下角为(i,j)的矩阵的 阅读全文
posted @ 2018-04-25 10:43 Star_Feel 阅读(185) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1009】 简要题意: 给出n,m,k,给出长度为m的不吉利串,求出长度为n的数字序列中不存在一个子串为不吉利串的序列数,答案%k 题解: 神矩乘+KMP f[i][j]表示当前枚举到第i位,和不吉利数字匹配到第j位 a[i][j]表示匹配到第i位,转移到第j位方案数(可以用KMP 阅读全文
posted @ 2018-04-25 09:34 Star_Feel 阅读(233) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1830&BZOJ1789】 简要题意: 给你3个字符串,你每一次可以在一个字符串的末端删除一个字符或添加一个字符,你需要用尽量少的操作次数使得这3个字符串变成一样的。 题解: 模拟直接搞,模拟以每个串的每个位置为最终答案,求最小值即可 参考代码: 阅读全文
posted @ 2018-04-25 07:54 Star_Feel 阅读(145) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1251】 简要题意: 给出一个长度为n的序列,有m个操作,3种操作: 1 l r k将l到r的数增加k 2 l r将l到r的数列翻转 3 l r求出l到r的最大值 题解: 裸SPLAY,直接下放两种标记,一种翻转,另一种增加值 而且对于求l到r的区间,我们需要l-1和r+1的节点 阅读全文
posted @ 2018-04-24 20:05 Star_Feel 阅读(179) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3620】 简要题意: 给出一个字符串和一个正整数k,判断有多少个子串为A+B+A的形式,如:aabaa(aa+b+aa),cbaccba(cba+c+cba) 注意不同位置但A,B相同算不同的子串,相同位置但A,B不同算相同子串 要求在len(A)>=k,len(B)>=1的情况 阅读全文
posted @ 2018-04-24 14:33 Star_Feel 阅读(307) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4477】 简要题意: 给出一棵n个点的树,树上的边都代表一个字符串,给出Q个询问,每个询问输入x,y和字符串s,求出x到y的路径上以s为前缀的字符串个数 题解: 自己yy了一波可持久化字典树 将每条边的字符串放到深度更深的节点保存 对于x到y的路径,将rt[x]+rt[y]-2* 阅读全文
posted @ 2018-04-24 08:18 Star_Feel 阅读(270) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3144】 简要题意: 2n个不同n位二进制数(即0~2n-1,不足n位在前补零)的一个排列,这个排列满足相邻的两个二进制数的n位数字中最多只有一个数字不同,所谓超级格雷码就是指Bn个不同的n位B 进制数的排列满足上面的条件 任务:给出n和B,求一个满足条件的格雷码 对于大于9的数 阅读全文
posted @ 2018-04-23 21:19 Star_Feel 阅读(311) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3144】 简要题意: 题解: 最小割经典问题 我们构造一个P*Q*(R+1)的点阵,用(i,j,k)表示一个点 那么(i,j,k)->(i,j,k+1) 的流量为原图中(i,j,k)的不和谐值。 S向所有底层连无穷边,所有顶层向T连无穷边。 那么(i,j,k) -> (i,j,k 阅读全文
posted @ 2018-04-23 20:20 Star_Feel 阅读(183) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3261】 简要题意: 给出一棵2n-1个点的完全二叉树,非叶子节点为城市,叶子节点为乡村,城市一条边是公路,一条边是铁路,城市i向城市j连边必须满足i>j, 然后乡村有3个参数a[i],b[i],c[i],要求每一个城市选一条通向该城市的路进行翻修(也就是翻修n-1条道路) 设乡 阅读全文
posted @ 2018-04-23 15:40 Star_Feel 阅读(170) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3261】 简要题意: 给出n个数,有m个操作,有两种操作: A x在序列末尾添加一个数x,序列长度+1 Q l r x在l到r中选出一个位置q,使得a[p]^a[p+1]^... ^a[n]^x最大,求出这个最大值 题解: 可持久化01字典树的例题 其实建图和查找都和主席树差不多 阅读全文
posted @ 2018-04-22 20:27 Star_Feel 阅读(196) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1135】 简要题意: 给出1到n号的鞋子,每对鞋子有k对 已知x号脚的人可以穿x到x+d号的鞋子 给出m个操作,每个操作输入r,x,说明来了x个r号脚的人(如果x为负数,则说明走了x个) 判断k对鞋子是否能够满足任何时刻所有人都有鞋穿 题解: 二分图匹配显然会超时 这时。。就应该 阅读全文
posted @ 2018-04-22 19:53 Star_Feel 阅读(191) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1222】 简要题意: 有n个任务,每个任务给出A机器单独完成,B机器单独完成,A和B机器共同完成的时间(如果为0,则说明不能用这种方法完成该任务),求出完成n个任务的最小时间 题解: DP 设f[i][j]为完成第i个任务且A机器运行了j时间时,B机器最少的运行时间 转移:f[i 阅读全文
posted @ 2018-04-22 16:22 Star_Feel 阅读(230) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2957】 简要题意: 给出一个平面直角坐标系,有一个人站在(0,0)处,x轴的取值范围为1<=x<=n 有m个操作,每个操作输入x,y,表示在(x,0)处建一座楼,高y,如果(x,0)处本来没有楼则看作新建,否则看作改造 对于一座楼房,它能被看到当且仅当它的最高点与(0,0)的连 阅读全文
posted @ 2018-04-22 14:31 Star_Feel 阅读(136) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4690】 简要题意: 有n个物品,m个操作,两种操作: ! a b w表示第a个物品比第b个物品重量轻w ? a b求出a比b轻多少,如果无法求出答案则输出UNKNOWN 题解: 带权并查集,对于!操作,默认编号小的在前面,如果要交换则w=-w 然后直接做就好了 参考代码: 阅读全文
posted @ 2018-04-19 21:14 Star_Feel 阅读(168) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1806】 简要题意: 有两个矿洞,有三种食物,给出n个食物的配送顺序,每个食物可以给任意一个矿洞,每个食物送到一个矿洞的收益是这个矿洞最近三次(包括送的那次)食物的种类数 请你经过合理的分配食物使得收益最大 题解: 水题DP 设f[i][t1][t2][t3][t4]为当前已经送 阅读全文
posted @ 2018-04-19 16:14 Star_Feel 阅读(175) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ5293】 简要题意: 给出一棵有n个点的树,有m个询问,每个询问输入x,y,k,输出x到y的路径上的所有点的深度的k次方的和 题解: 因为k很小,直接预处理每个点的k次方深度和k次方的时候根到每个点的深度的k次方的和 然后求LCA,直接搞就可以了 参考代码: 阅读全文
posted @ 2018-04-19 13:56 Star_Feel 阅读(206) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4240】 简要题意: 给出一个长度为n的序列,可以将相邻的数交换位置,要求通过最少交换次数使得这个序列呈左边段不递减,右边段不递增 题解: 树状数组+贪心 将每个数一开始的下标为原本的位置,最后得到的序列的逆序对数就是操作的次数 首先得到的序列肯定是最大的在中间,第二大的在旁边。 阅读全文
posted @ 2018-04-19 11:18 Star_Feel 阅读(268) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1509】 简要题意: 给你一棵有n个点树 找出三个点x,y,z 求从一个点x出发,先到另外两个点中距离x较近的点,再到剩下的那个点的时间 题解: 我们不妨先假设从x出发,先到y,再到z,这样子的话我们所花费的时间就是dis(x,y)+dis(y,z) 很显然我们肯定要让dis(y 阅读全文
posted @ 2018-04-19 09:57 Star_Feel 阅读(154) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ5301】 简要题意: 给出长度为n的序列,给出m个询问,并给出k,每个询问输入l,r 每个询问输出l到r的序列中的所有子串中的异或和为k的子串数量 题解: 莫队 异或,真是个神东西 首先异或和满足前缀,也就是说设sum[i]为a[1]^a[2]^...^a[i],那么a[i]^a 阅读全文
posted @ 2018-04-19 08:54 Star_Feel 阅读(765) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4540】 简要题意: 给出长度为n的序列,给出m个询问,每个询问输入l,r 每个询问输出l到r的序列中的所有子串中的最小值的和 题解: 莫队+RMQ+乱搞 太烦了,搞了三个小时,不想写题解了 orz 参考代码: 阅读全文
posted @ 2018-04-18 21:13 Star_Feel 阅读(237) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4956】 简要题意: 给出n对字母转换,m对单词 每对字母输入字母a和字母b,说明字母a可以转换为字母b(单向转换) 判断每对单词中第二个单词是否能够通过转换变成第一个单词 题解: 水题 因为只能是一个字母与一个字母间的转换,所以两个不同长度的单词肯定不能转换成功 而且一定是对应 阅读全文
posted @ 2018-04-18 11:10 Star_Feel 阅读(212) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2141】 简要题意: 给出一个长度为n的序列,一开始先求出逆序对数 然后给出m个操作,每个操作输入l,r,要求交换第l和第r个数,然后再求出逆序对数 题解: 树状数组处理逆序对数问题 因为每次交换l和r的时候,实际上除了l到r的区间外,其他是不受影响的,所以我们分块来处理 然后树 阅读全文
posted @ 2018-04-18 10:48 Star_Feel 阅读(182) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1833】 简要题意: 给出l,r,求出l到r中0到9的数字出现的次数 题解: 数位DP,设f[i][j][k]为i位数,最高位为j,k出现的次数 需要注意一下前导零的问题 参考代码: 阅读全文
posted @ 2018-04-18 08:58 Star_Feel 阅读(209) 评论(0) 推荐(0) 编辑
摘要:【传送门:HDU2089】 简要题意: 给出l,r,求出l到r中的数中不存在4或者62的数的个数 题解: 数位DP,第一题 参考代码: 阅读全文
posted @ 2018-04-17 20:18 Star_Feel 阅读(167) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ5178】 简要题意: 给出n个数,给出m个询问,每个询问输入l,r,求出是否存在有一个数在l到r中出现的次数超过总数/2次,如果存在则输出这个数,否则输出0 题解: 主席树例题,直接将n个数一个个插入主席树,然后判断是否存在一棵子树的数的数量超过总数/2次,然后继续向下找就可以了 阅读全文
posted @ 2018-04-17 19:02 Star_Feel 阅读(254) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3439】 简要题意: 给出n个字符串,给出ki,求出以每个字符串为后缀的字符串中的编号为ki的字符串,如果没有则输出-1 题解: 倒着把字符串插进字典树里,这样子就可以保证一个点是它的子树的所有点的后缀(字典树里一个点代表一个字符串) 然后跑一遍dfs,求dfs序,然后用主席树求 阅读全文
posted @ 2018-04-17 15:12 Star_Feel 阅读(194) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3212】 简要题意: 给出n个点,每个点有点权,Q个询问,两种询问: Q x y求出第x个点到第y个点的点权和 C x y c将第x个点到第y个点的点权都增加c 题解: 裸线段树 注意加long long 参考代码: 阅读全文
posted @ 2018-04-16 21:09 Star_Feel 阅读(149) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2733】 简要题意: 有n个点,每个点都有点权,m条边,给出q个操作,两种操作: B x y将x连向y Q x k求出所有与x相连通(包括x)的点中第k小的点的编号 题解: 主席树+并查集 将所有连通的点都并在一起,然后每次并查集合并的时候,合并能够代表这两个连通块的两棵主席树 阅读全文
posted @ 2018-04-16 20:37 Star_Feel 阅读(136) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1529】 简要题意: 给出n个储钱罐,给出每个储钱罐的钥匙在哪一个储钱罐里,可以选择用钥匙或者直接砸开储钱罐从而拿到钱,求出最少砸开多少个储钱罐能够将所有储钱罐里的钱 题解: 并查集 原本想用强联通,结果MLE 如果第i个储钱罐的钥匙在第j个储钱罐里,则j连向i 显然对于一个环, 阅读全文
posted @ 2018-04-16 18:46 Star_Feel 阅读(172) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4260】 简要题意: 给出一个长度为n的序列 求出l1,r1,l2,r2,使得a[l1]^a[l1+1]...a[r1]+a[l2]^a[l2+1]...a[r2]最大,且1<=l1<=r1<l2<=r2<=n 题解: 01字典树,get到了字典树处理异或和的操作 只要用贪心的思 阅读全文
posted @ 2018-04-16 13:48 Star_Feel 阅读(219) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1112】 简要题意: 给出n个数,每一次操作可以使得一个数增加1或者减少1 求出能得到连续k个相等的数的最少操作次数 题解: 师兄模拟赛的题 主席树求中位数就好了,求的时候顺便求次数就可以了 然而,赛中,师兄,卡空间!!! 才给我们开40M的空间,结果我的代码是44M。。。 光荣 阅读全文
posted @ 2018-04-16 12:40 Star_Feel 阅读(128) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1803】 简要题意: 给出一棵有根有点权的n个点的树,有m个询问,每个询问输入x,k,输出以x为根的子树内的第k小值 题解: 树上主席树裸题 求一遍DFS序,然后因为每棵子树的序号是连续的,所以只要记录以x为根的子树的序号区间就可以了 然后利用前缀和思想求第k小值就行了 参考代码 阅读全文
posted @ 2018-04-15 19:53 Star_Feel 阅读(192) 评论(0) 推荐(0) 编辑
摘要:【传送门:51nod-1526】 简要题意: 给出n个真名和笔名,都是字符串 要求n个真名和笔名一一匹配,一个真名和一个笔名所带来的价值是这两个字符串的最长公共前缀 题解: 直接将真名和笔名插进字典树里面 d1[i]表示真名在字典树的的第i个点被经过的次数,d2[i]表示笔名在字典树在第i个点经过的 阅读全文
posted @ 2018-04-13 14:07 Star_Feel 阅读(210) 评论(0) 推荐(0) 编辑
摘要:【传送门:51nod-1615】 简要题意: 一个人站在坐标轴原点,可以向左或者向右跳,第一次跳一格,第二次跳两格(以此类推) 求出最少的跳跃次数,使得这个人刚好落在(x,0) 题解: 高一师兄出的模拟赛的第一题 这道题很玄学,比赛的时候瞎想做出来了 其实x为正为负是没有关系的,我们取绝对值,当作正 阅读全文
posted @ 2018-04-13 13:53 Star_Feel 阅读(178) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2588】 简要题意: 给出n个节点的树,每个点有权值,有m个询问,每个询问输入x,y,k,求出x到y的路径上第k小的值 题解: 树上主席树,将根往下合并主席树 如果要得到x到y的主席树,就将rt[x]+rt[y]-rt[lca]-rt[fa[lca]]就能得到x到y的路径的信息了 阅读全文
posted @ 2018-04-12 20:05 Star_Feel 阅读(182) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1342】 简要题意: 给出n个数的序列,要选出连续m个数,使得这些数的最大值-最小值<=c 求出所有m个数的序列的第一个数的位置,如果没有输出NONE 题解: 直接单调队列,不解释 参考代码: 阅读全文
posted @ 2018-04-12 16:06 Star_Feel 阅读(140) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3613】 简要题意: 给出一个长度为n的A序列,可以使序列里的数增加或减小一个数,使得整个序列呈不下降序列 设B数组为最后的不下降序列 求出最小的ans=Max{|A[j]-B[j]|,1≤j≤n} 题解: 水题 直接二分改变大小,然后判断就可以了 输入的时候取mod要勤奋一点 阅读全文
posted @ 2018-04-12 15:38 Star_Feel 阅读(102) 评论(0) 推荐(0) 编辑
摘要:【传送门:SPOJ1811&BZOJ2946】 简要题意: 给出若干个字符串,求出这些字符串的最长公共子串 题解: 后缀自动机 这两道题的区别只是在于一道给出了字符串个数,一个没给,不过也差不多(代码就贴SPOJ的,因为数据范围大一点) 首先用第一个字符串构造SAM 然后处理其他的每个串在后缀自动机 阅读全文
posted @ 2018-04-12 15:08 Star_Feel 阅读(177) 评论(0) 推荐(0) 编辑
摘要:【传送门:SPOJ1811】 简要题意: 给出两个字符串,求出两个字符串的最长公共子串 题解: 后缀自动机 先用第一个字符串构建SAM,然后用第二个字符串去跑 假设当前的公共子串长度为s,在SAM的状态为p,匹配到第二个字符串的第i个字符 如果p存在连向第i个字符的边,则p=tr[p].son[st 阅读全文
posted @ 2018-04-12 11:39 Star_Feel 阅读(101) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4516】 简要题意: 给出一个长度为n的数字字符串,求出每个数字插入到字符串结尾时的不同子串个数 题解: 后缀自动机 对于一个状态s,他的right集合代表的子串的长度就是(dep[fail],dep[s]]。这道题我们需要动态的维护不同子串的个数,每次从头扫一遍直接计算肯定不行 阅读全文
posted @ 2018-04-12 10:21 Star_Feel 阅读(150) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3998】 简要题意: 对于一个给定长度为N的字符串,求它的第K小子串是什么 题解: 后缀自动机 首先对于T=0的时候,所有的能到达的不同状态,Right集合大小恒为1 T=1的时候,就累加 然后先判断子串数量是否超过K 如果没有,则直接DFS就好了 参考代码: 阅读全文
posted @ 2018-04-12 09:15 Star_Feel 阅读(163) 评论(0) 推荐(0) 编辑
摘要:【传送门:SPOJ8222】 简要题意: 给出一个字符串S,令F(x)表示S的所有长度为x的子串中,出现次数的最大值。求F(1)..F(Lengh(S)); 题解: 后缀自动机的模板题(会SAM是没有用的,会DP和广义才有用——Cherish_OI) 只要求出每个状态的Right集合的个数就可以求出 阅读全文
posted @ 2018-04-12 08:14 Star_Feel 阅读(126) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4491】 简要题意: 给出一个长度为n的序列,m个操作,每个操作输入x,y,求出第x个数到第y个数的最长子串,保证这个最长子串是不上升或不下降子串 题解: 线段树 因为不上升或不下降嘛,就差分一下呗 每一段区间维护: d表示最多连续的非正数的个数,u表示最多连续的非负数的个数 l 阅读全文
posted @ 2018-04-11 09:53 Star_Feel 阅读(236) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1858】 简要题意: 给出一个长度为n的01序列,有五种操作,m个操作: 0 x y将第x个数到第y个数都变成0 1 x y将第x个数到第y个数都变成1 2 x y将第x个数到第y个数的所有数取反(即0变为1,1变为0) 3 x y求出第x个数到第y个数有多少个1 4 x y求出 阅读全文
posted @ 2018-04-11 07:57 Star_Feel 阅读(205) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1901】 简要题意: 给出一个长度为n的序列,有两种操作,m个操作: Q l r k求出l到r第k小的值 C x c将第x个数变成c 题解: 带修主席树例题,用树状数组来维护修改 参考代码: 阅读全文
posted @ 2018-04-10 15:29 Star_Feel 阅读(170) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4010】 简要题意: 有n道菜,有m个限制条件,每个限制条件输入x,y,表示第x道菜要在第y道菜之前做 在满足所有限制条件的情况下,编号小的菜要尽早做 求出满足要求的菜的顺序,如果没有满足要求的则输出Impossible! 题解: 拓扑排序 一开始想着将x连向y,然后跑拓扑,输出 阅读全文
posted @ 2018-04-10 14:43 Star_Feel 阅读(120) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2134】 简要题意: 给出n道题目,每道题目有a[i]个选项 有一个人知道所有题目的正确选项,但是他把答案全部写在了第i+1的题目上(第n个题目的答案写在了第1个题目上) 求出这个人做对题目的期望 题解: 期望DP,有一点点水 首先对于a[i-1]和a[i]而言,假设要答对第i道 阅读全文
posted @ 2018-04-10 11:31 Star_Feel 阅读(196) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3562】 简要题意: 给出n个点,m条初始无向边,有3种操作,q个操作: A x y连接x和y D x y删除x和y的边 Q 求出有多少个连通块 题解: 并查集+DFS 因为询问很少,但是边很多,所以我们先离线将不会被删除的边拿出来,然后将永远连在一起的点缩点 这样子这个图就会变 阅读全文
posted @ 2018-04-10 10:44 Star_Feel 阅读(317) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1084】 简要题意: 给出n行m列的矩阵,要求选出k个不互相覆盖子矩阵,使得选出的k个子矩阵的和最大,求出和 题解: DP 我的DP方程可能有些麻烦。。 首先面向数据编程,因为m<=2,所以先把m=1的情况求出来,这个就不用讲了 然后对于m=2的情况,我们设: f[i][k][0 阅读全文
posted @ 2018-04-09 16:15 Star_Feel 阅读(201) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ5039】 简要题意: 给出一个长度为n个序列,有m个操作,共为三种操作: 1 x y c表示将x到y的值全部*c 2 x y c表示将x到y的值全部+c 3 x y求x到y的值的和 题解: 同BZOJ1798 参考代码: 阅读全文
posted @ 2018-04-09 08:41 Star_Feel 阅读(174) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1798】 简要题意: 给出一个长度为n个序列,有m个操作,共为三种操作: 1 x y c表示将x到y的值全部*c 2 x y c表示将x到y的值全部+c 3 x y求x到y的值的和 题解: 线段树嘛,区间修改加区间求值 但是关键是怎么处理乘和加的lazy标记的处理 首先肯定不能够 阅读全文
posted @ 2018-04-09 08:40 Star_Feel 阅读(260) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3932】 简要题意: 给出n个任务,每个任务给出开始时间和结束时间还有这个任务的优先度 有m个询问,每个询问给出x和k,求第x秒的时候,优先度从小到大k个任务的优先度的和 强制在线 题解: 主席树好题 设c为这个子树有多少个任务,sum为这个子树里的权值和 先把优先度离散化,然后 阅读全文
posted @ 2018-04-08 19:55 Star_Feel 阅读(206) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3339】 简要题意: 给出一个长度为n的数列,有m个询问,每个询问输入l,r,求出l到r之间没出现过的最小自然数 题解: 同BZOJ3585 参考代码: 阅读全文
posted @ 2018-04-08 11:32 Star_Feel 阅读(162) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3585】 简要题意: 给出一个长度为n的数列,有m个询问,每个询问输入l,r,求出l到r之间没出现过的最小自然数 题解: 莫队+权值分块 只要处理每一个权值块总共出现多少种数,每当找到一个权值块出现的种数不等于总共的种数,就直接在这个块里找哪个没出现过就行了 参考代码: 阅读全文
posted @ 2018-04-08 11:08 Star_Feel 阅读(327) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4196】 简要题意: 有n个软件,每个软件有一个依赖的软件(除了第一个软件),要想安装一个软件就必须要安装它所依赖的软件 有m种操作,有一种是安装某个软件,另一种是删除某个软件,如果删除了一个软件,那么所有直接或间接依赖它的软件都要删除 求出每种操作改变了多少个软件的状态 题解: 阅读全文
posted @ 2018-04-07 21:26 Star_Feel 阅读(159) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3524】 简要题意: 给出n个数,m个询问,每个询问输入l,r,请判断区间[l,r]是否存在一个数出现的次数大于(r-l+1)/2,如果存在则输出这个数,否则输出0 题解: 主席树例题,直接在找值的时候判断是否存在左子树或者右子树出现的值>(r-l+1)/2就行了 参考代码: 阅读全文
posted @ 2018-04-04 21:05 Star_Feel 阅读(120) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3626】 简要题意: 给出一棵树,设dep[i]为每个点与根节点的距离+1, 有m个询问,每个询问输入l,r,z 求出l<=i<=rdep[LCA(i,z)] 题解: 读题,实际上dep[i]就表示i到根有多少个节点 那么如果要求dep[LCA(i,j)]的话, 阅读全文
posted @ 2018-04-04 16:16 Star_Feel 阅读(138) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1930】 简要题意: 给出n个豆子和它们的坐标,保证在原点的右上方,有两个PACMAN在原点的左下方,每个PACMAN只能往右或往上移动,每移动到一个豆子所在的位置,就会把豆子吃掉,求出两个PACMAN的路径不相交的情况下,总共能吃到最多豆子 题解: 费用流 建边: st->S, 阅读全文
posted @ 2018-04-04 11:05 Star_Feel 阅读(208) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2326】 简要题意: 给出n和m,要求计算Concatenate(1...n)%m的值,其中Concatenate(1...n)是将所有正整数1,2,…,n顺序连接起来得到的数 例如,n=13,Concatenate(1...N)=12345678910111213 题解: 矩阵 阅读全文
posted @ 2018-04-03 12:59 Star_Feel 阅读(160) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3747】 简要题意: 共有m部电影,编号为1到m,第i部电影的好看值为w[i]。 在n天之中(从1到n编号)每天会放映一部电影,第i天放映的是第f[i]部 你可以选择l,r(1<=l<=r<=n),并观看第l,l+1,…,r天内所有的电影 如果同一部电影你观看多于一次,你会感到无 阅读全文
posted @ 2018-04-02 20:39 Star_Feel 阅读(292) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4326】 简要题意: 给出一棵n个点的树,每条边有边权,给出m条路径 在可以将一条边的边权变成0的情况下,求出m条路径的最大值最小 题解: 树上差分+二分 首先把原来的图构建出来,然后求出原图的m条路径的长度 然后二分答案,如果有路径的长度大于二分的答案,那么说明这条路径是需要把 阅读全文
posted @ 2018-04-02 11:42 Star_Feel 阅读(178) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4390】 简要题意: 给出一棵n个点的树,一开始所有点的点权为0,给出k个操作,每个操作输入x,y,表示将x到y的路径上的点权全部+1 求出最大点权 题解: 树上差分例题,对点差分 对于一个操作x,y,lca表示x和y的最近公共祖先,就将cf[x]++,cf[y]++,cf[lc 阅读全文
posted @ 2018-04-02 10:44 Star_Feel 阅读(141) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3732】 简要题意: 给出n个点,m条边的无向图,保证n个点联通,且给出每条边的权值 有k个询问,每个询问输入A,B,求出A到B的所有路径中的最长边的最小值 题解: 既然要求最长边的最小值,那么肯定是最小生成树啦 先建成最小生成树 然后如果要求A到B的路径上的最大值,就用倍增LC 阅读全文
posted @ 2018-04-02 09:18 Star_Feel 阅读(169) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1121】 简要题意: 在一个平面直角坐标系中给出一个多边形,相邻边垂直且每条边与坐标轴平行,要求在所有顶点放置发射器或者接收器,每个发射器能发射光线,且方向为角平分线,可以在到达每条边后进行反射,每个接收器只能接受一个发射器的光线,求出最多能有多少对发射器和接收器 题解: 结论题 阅读全文
posted @ 2018-04-02 09:14 Star_Feel 阅读(143) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3713】 简要题意: 给出一个数,判断这个数能否是两个斐波那契数列的数的乘积 题解: 水题,因为斐波那契数列增长得很快,所以很快就能达到10^9的级别 所以取个50(应该取多了一点),然后O(2500)做就行了 参考代码: 阅读全文
posted @ 2018-04-01 20:10 Star_Feel 阅读(126) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4034】 简要题意: 给出n个工厂,并给出每个工厂可以生产的镜子的最大、最小宽度和最大、最小高度 判断是否存在一个工厂能够生产出其他工厂能够生产的镜子 题解: 水题,直接排序,然后判断是否存在不合理情况就行了 参考代码: 阅读全文
posted @ 2018-04-01 19:48 Star_Feel 阅读(158) 评论(0) 推荐(0) 编辑

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