摘要:
这场比赛的题都偏水,比赛的时候切了 A ~ E A Matrix Game 刚开始看错题了,以为是不能相邻,然后就不会了. 又读了一遍题,发现不能同行或同列,那就判断一下奇偶性就行了. code: #include <bits/stdc++.h> #define ll long long #defi 阅读全文
摘要:
调都没调就 1 A 了,开心. 一些细节: 1. 当 3 个点中强制一个点不选时,又有 $(h_{i},h_{j})$ 这种限制时直接跳过即可. 2. 当有 $(h_{i},h_{j})$ 且 $i$ 这个位置存在,但是 $j$ 不存在的时候显然是不可以选择 $i$ 的,那就直接让 $i$ 连 $i 阅读全文
摘要:
一共有 60 次询问机会,显然可以用 30 次来确定序列的最大值(二分) 然后再用 30 次随机获得 30 个位置的值,那么有 $a_{j}=a_{i}+k\times d$,($d$ 为公差) 那么 $d$ = $gcd(d1,d2,d3,....dn)$,故将 30 个数排序,然后求一下两两之间 阅读全文
摘要:
思路非常巧妙,令 $f[i][j]$ 表示前 $i$ 个数,最大值不大于 $j$ 的权和. 转移的话枚举最大值出现的第一个位置,乘上该位置对应的贡献,然后发现最大值将 $1$ ~ $i$ 分成了两半. 然后两个部分又是互不干扰的子问题,转移一下就行. 把细节都提前考虑清楚后都不用怎么调. code: 阅读全文
摘要:
脑残了,这题竟然都不会. 显然,把所有左右端点放在一起排序,然后取中位数是 $k=1$ 时最优的. $k=2$ 的时候显然距离中点越近越好,所以将中点扔进去,然后枚举中间的分割点,分割点左右就变成两个子问题了. 动态求中位数的话用平衡树/权值线段树维护就行了. code: #include <bit 阅读全文
摘要:
这题怕不是 sb 题吧,随便分类讨论一下 $i$ 乘不乘 2 倍就没了. 然后细节要注意一下:题中要求的是大于等于. 求值域在 $[L,R]$ 中的元素个数时我用的权值线段树,可能会比二分要慢一点,但是不用判边界. code: #include <bits/stdc++.h> #define ll 阅读全文
摘要:
显然取对数,然后二分答案进行 01 分数规划. 设 $f[i][j]$ 表示在 AC 自动机上的点 $i$ ,匹配到了 $j$ 位的最大价值. 转移的时候判断一下当前是点还是数字,然后在 AC 自动机上的终止节点上算一下贡献就行. 构建 AC 自动机的时候要注意:点 $i$ 的价值是 val[i]+ 阅读全文