随笔分类 -  基础算法-二分答案

摘要:[LuoguP5319] [BJOI2019] 奥术神杖 (01分数规划+AC自动机+dp) 题面 神杖上从左到右镶嵌了n颗奥术宝石,奥术宝石一共有 1010 种,用数字 表示。有些位置的宝石已经残缺,用 表示,你需要用完好的奥术宝石填补每一处残缺的部分(每种奥术宝石个数不限,且不能够更换未残缺 阅读全文
posted @ 2020-02-15 17:55 birchtree 阅读(213) 评论(0) 推荐(0) 编辑
摘要:[LuoguP4094] [HEOI2016] [TJOI2016]字符串(二分答案+后缀数组+ST表+主席树) 题面 给出一个长度为n的字符串s,以及m组询问.每个询问是一个四元组(a,b,c,d),问s[a,b]的所有子串和字符串s[c,d]的最长公共前缀长度的最大值。 阅读全文
posted @ 2020-01-31 20:14 birchtree 阅读(138) 评论(0) 推荐(0) 编辑
摘要:[Codeforces 1208D]Restore Permutation (树状数组) 题面 有一个长度为n的排列a。对于每个元素i,si表示$\sum_{j=1,a_j include include include include define maxn 200000 using nam 阅读全文
posted @ 2019-08-27 16:01 birchtree 阅读(323) 评论(0) 推荐(0) 编辑
摘要:[BZOJ1074] [luogu 4036] [JSOI 2008] 火星人 (二分答案+哈希+fhq treap) 题面 给出一个长度为n的字符串,m个操作,字符串仅包含小写英文字母 操作1:在k位置后插入字符v: 操作2:将k位置的字符修改为字符v 操作3:查询从该字符串中第 x个字符开始的字 阅读全文
posted @ 2019-08-02 11:54 birchtree 阅读(173) 评论(0) 推荐(1) 编辑
摘要:给出一个长度为n的序列ai和常数I,定义一次操作[l,r]可以把序列中 阅读全文
posted @ 2019-07-31 07:17 birchtree 阅读(332) 评论(0) 推荐(0) 编辑
摘要:[Codeforces 865C]Gotta Go Fast(期望dp+二分答案) 题面 一个游戏一共有n个关卡,对于第i关,用a[i]时间通过的概率为p[i],用b[i]通过的时间为1 p[i],每通过一关后可以选择继续下一关或者时间清0并从第一关开始,先要求通过所有关卡的时间和不能超过R才算彻底 阅读全文
posted @ 2019-07-17 21:37 birchtree 阅读(258) 评论(0) 推荐(0) 编辑
摘要:[BZOJ 2653] middle(可持久化线段树+二分答案) 题面 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整。 给你一个长度为n的序列s。 回答Q个这样的询问:s的左端点在[a,b]之间,右端点在[c,d]之间的子序列中,最大的中位 阅读全文
posted @ 2019-07-14 19:50 birchtree 阅读(162) 评论(0) 推荐(0) 编辑
摘要:题面 "传送门" 分析 先考虑O(nk)的做法,先按s从小到大排序,每个串的数显然形成了n个连续区间[si+l,si+r],且这些区间的左端点升序排列,然后把区间合并就可以知道有多少个不同的数了 然后考虑优化 对于s[i]产生的区间,我们考虑s[i]和s[i+1]产生的区间之间的间隔 若 阅读全文
posted @ 2019-04-06 23:18 birchtree 阅读(356) 评论(0) 推荐(0) 编辑
摘要:题面 "传送门" 分析 二分答案,考虑如何判定 可以用贪心的方法,每次找最快没电的电脑,在没电前1单位时间给它充电 正确性显然 实现上可以维护一个堆,存储每个电脑电用完的时刻,每次从堆顶取出最小的一个给它充电。设二分值为mid,对于每个电脑记录它的充电次数num[i],则没电的时间就是$\lfloo 阅读全文
posted @ 2019-03-09 12:39 birchtree 阅读(326) 评论(0) 推荐(0) 编辑
摘要:题面 "传送门" 给定序列d和lim。假设有一个初始价值x0,则经历第i天后价值变为min(x0+d[i],lim[i]),记f(i,j,x0)表示以初始代价x0依次经过第i天到第j天后的价值。每次询问给出l,r,x0,求max(f(i,j,x0)),其中[i,j]是子串 阅读全文
posted @ 2019-02-28 13:24 birchtree 阅读(397) 评论(0) 推荐(1) 编辑

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