09 2019 档案

摘要:题意 给$2n$个物品,分别有$a,b$属性,对于$i=1...n$,选择$i$个$a$属性和$i$个$b$属性,且每个物品只能作为一种属性的贡献,求最小的值。 分析 看了题解补了两天... 应该叫做可反悔的贪心,或者其实就是网络流?不过因为是特殊的图,所以可以用优先队列来优化。 维护四个优先队列, 阅读全文
posted @ 2019-09-29 18:50 Keane1998 阅读(261) 评论(0) 推荐(0)
摘要:B Buffoon 判断最大值是不是第一个数,签到题。 H Hour for a Run 输出$n m$的$10\%$到$90\%$,签到题,注意别用浮点数和ceil,有精度问题。 M Maratona Brasileira de Popcorn 题有点难读,就是给n个数,m个人,每人分一个连续段, 阅读全文
posted @ 2019-09-28 20:03 Keane1998 阅读(1288) 评论(0) 推荐(0)
摘要:题意 给定两个排列a和b,两种操作,交换b_i和b_j,询问a[l_a...r_a]和b[l_b...r_b]有多少个数相同。 分析 由于给的是排列,保证b的每个数都有a的对应,构造数组c,c[i]表示b[i]在a数组中的位置。 所以询问就变成询问c[l_b...r_b]中有多少个值域为[l_a.. 阅读全文
posted @ 2019-09-11 23:37 Keane1998 阅读(159) 评论(0) 推荐(0)
摘要:题意 给定$n$个数,每次交换两个数,输出交换后的逆序数。 分析 交换两个数只会影响到对应区间内的逆序数,具体为减少区间$[l+1,r 1]$中比$a[r]$大的数的个数,增加比$a[r]$大的数的个数,减少比大的数的个数,$a[l]$增加比$a[l]$小的数的个数。 转化为单点修改+查询区间值域个 阅读全文
posted @ 2019-09-10 23:00 Keane1998 阅读(180) 评论(0) 推荐(0)
摘要:题意 给定一个序列,多次询问区间$[l,r]$中满足$min(a[i],a[j])==gcd(a[i],a[j])$的数对$(i,j)$数。 分析 其实就是求区间有倍数关系的数对数。 由于序列是全排列,所有有倍数关系的数对数只有$nlogn$个,因此可以暴力求出所有数对,然后对询问离线,转化为二位偏 阅读全文
posted @ 2019-09-10 13:28 Keane1998 阅读(222) 评论(0) 推荐(0)
摘要:题意 给定一个序列,两种操作,单点修改,询问区间$[l,r]$值域在$[x,y]$范围内的连续段个数。 分析 原数组为$a$,构造一个新的数组$b$,$b[i]=(a[i]==a[i 1])?0:a[i]$,这样将连续段转化为左端点的一个数来表示。 询问就可以转化为维护$b$数组,单点修改和询问区间 阅读全文
posted @ 2019-09-10 12:49 Keane1998 阅读(313) 评论(0) 推荐(0)
摘要:A Who is better? 题意 excrt+斐波那契博弈 分析 Java的BigInteger对象默认为null,不能直接比较。 代码 D Carneginon 题意 给一个串T和多个串S,根据长度大小和是否为子串判断输出。 分析 题目说明的复杂度刚好就是暴力KMP。 代码 c++ incl 阅读全文
posted @ 2019-09-07 18:52 Keane1998 阅读(444) 评论(0) 推荐(0)
摘要:题意 给定一个序列,定义 连续区间 为区间的数排序后,任意两个相邻的数之差不超过1。 分析 假设区间最大值为$max$,最小值为$min$,不同数个数为$cnt$,那么问题转化为求满足$max min cnt==1$的区间个数。 统计满足条件的区间个数可以考虑用线段树,主要有三个步骤: 枚举右端点$ 阅读全文
posted @ 2019-09-06 14:33 Keane1998 阅读(200) 评论(0) 推荐(0)
摘要:题意 ~~题意不明~~,队友告诉我对于每个$i$,所在下标$p[i]$,在$[p[i] k,p[i]+k]$中找到小于$i$的最大数$x$,然后$ans[i]=ans[x]+1$即可。 分析 第一种方法无脑主席树,求区间小于某个值的最大数。 第二种方法是线段树,因为对于每个数$i$,只有比他小的数才 阅读全文
posted @ 2019-09-01 20:47 Keane1998 阅读(381) 评论(0) 推荐(0)
摘要:题意 有一棵树$n$个节点,每个节点有一个防御值,以及两个属性,表示一个骑士占领该节点后攻击值是加还是乘,有$m$个骑士,有初始位置和初始攻击值,如果攻击值大于该节点的防御值,就能占领该节点,然后更新攻击值,走到父节点,如果攻击值小于防御值,骑士就会死在该节点。 问每个骑士能占领多少个节点,以及每个 阅读全文
posted @ 2019-09-01 11:13 Keane1998 阅读(135) 评论(0) 推荐(0)