随笔分类 -  acm / 思维

摘要:(线段树 + 思维)or 动态dp [Problem - F - Codeforces](https://codeforces.com/contest/1743/problem/E) 题意 数轴上有 $n$ 个线段 $[l,r];(0<=l<=r<=3*10^5)$ ,表示有一个集合 $s_i$ 为 阅读全文
posted @ 2022-10-19 16:16 hzy0227 阅读(38) 评论(0) 推荐(0) 编辑
摘要:思维 [I-Sky Garden_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)(重现赛)@hzy0227 (nowcoder.com)](https://codeforces.com/gym/103202/problem/I) 题意 有 $n;(1<=n<=500)$ 个同心圆, 阅读全文
posted @ 2022-10-05 14:09 hzy0227 阅读(89) 评论(0) 推荐(0) 编辑
摘要:思维 [B-Mine Sweeper II_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)(重现赛)@hzy0227 (nowcoder.com)](https://codeforces.com/gym/103202/problem/I) 题意 在 $n*m;(1<=n,m<=10 阅读全文
posted @ 2022-10-05 13:59 hzy0227 阅读(55) 评论(0) 推荐(0) 编辑
摘要:思维 + DP [Problem - E - Codeforces](https://codeforces.com/contest/1695/problem/D2) 题意 给一张有 $n$ 个结点 $m$ 条有向边的有向无环图,$1<=n,m<=1000$, 每个点初始有 $a_i$ 个物品,对于每 阅读全文
posted @ 2022-09-22 18:39 hzy0227 阅读(33) 评论(0) 推荐(0) 编辑
摘要:构造 Problem - D - Codeforces 题意 给 $n(1<=n<=10^5)$ 个点,与权值 $a_i$,这 $n$ 个点组成一个完全图,$a_l$ 与 $a_r$ 连的边的权值为 $min(a_l,a_{l+1}...a_{r-1},a_r)$ 有 $k$ 次机会可以把任意一个点 阅读全文
posted @ 2022-09-21 23:43 hzy0227 阅读(37) 评论(0) 推荐(0) 编辑
摘要:思维+组合数学 Problem - D - Codeforces 题意 有 $2^n$ 个人进行锦标赛,编号1~$2^n$,每一场输的人失去比赛资格,赢的人继续。Madoka可以选择他们进行的顺序,以及决定哪一边赢得比赛。你的目标是尽量让编号小的赢得最终比赛。 主办方可以改变其中至多k场比赛的结果, 阅读全文
posted @ 2022-09-21 14:41 hzy0227 阅读(54) 评论(1) 推荐(1) 编辑
摘要:思维 Problem - D - Codeforces 题意 给两个长度为 $n(3<=n<=2*10^5)$ 的 01 串 s 与 t,求最小操作次数,使 s 变成 t;不存在则输出 -1 操作为:对于 2 <= i <= n - 1, 若 $s_{i-1}\neq s_{i+1}$, 则 $s_ 阅读全文
posted @ 2022-09-21 00:15 hzy0227 阅读(19) 评论(0) 推荐(0) 编辑
摘要:序列操作(代码源每日一题) 序列操作 - 题目 - Daimayuan Online Judge 思维 要观察到两种操作的性质: 单点修改的优先级是最高的,所以一个位置有且只有最后一次单点修改起作用 在不考虑单点修改的情况下,只有最大的 y 的操作才起作用 接下来思考在操作 2 中如何不考虑单点修改 阅读全文
posted @ 2022-06-13 14:56 hzy0227 阅读(38) 评论(0) 推荐(0) 编辑
摘要:D - Playlist 思维 st[i] : 第 i 个数是否被删去了 ne[i] : 第 i 个数的下一个数是哪个 del:当前的可能被删掉的数的集合 降复杂度的关键:只有在newdel里的才可能被删去,因为别的数对已经在上一轮被判过了 复杂度为 \(O(nlogn)\) #include <i 阅读全文
posted @ 2022-05-23 21:14 hzy0227 阅读(16) 评论(0) 推荐(0) 编辑
摘要:C - Alice and the Cake 队列/优先队列 记录每个重量的蛋糕个数 求出蛋糕的重量之和,看这个重量能否切出这些蛋糕 把总和放入队列,如果当前这个重量还有蛋糕,那就不切这个,如果没有就继续切 但是这样广搜,很多重量其实是切不出来的,但要一直切到 1 才能判断出来,所以效率很低 因为最 阅读全文
posted @ 2022-05-23 20:43 hzy0227 阅读(20) 评论(0) 推荐(0) 编辑
摘要:POJ 2566 - Bound Found SCUACM2022集训前训练-数据结构 - Virtual Judge (vjudge.net) 双指针 + 前缀和 本题似乎没有单调性,难以使用双指针,但可先求出前缀和并记录下标,然后对前缀和排序 因为是 \(|s[r]-s[l]|\) 取了绝对值, 阅读全文
posted @ 2022-05-23 19:11 hzy0227 阅读(18) 评论(0) 推荐(0) 编辑
摘要:C - 1D Sokoban 二分 + 找性质 可分正负的箱子分别讨论 本题的关键是发现一个重要的性质:因为推箱子这个过程会让被推到的箱子成为连续的一段,若想让在特殊位置的箱子最多,则这一段的终点一定要在特殊位置上(起点也可以, 这里的一定不是说不在特殊位置就取不到最优,而是在特殊位置上的某些情况一 阅读全文
posted @ 2022-05-23 12:25 hzy0227 阅读(27) 评论(0) 推荐(0) 编辑
摘要:C - Binary String 找性质 一开始没思路,想到可能跟前缀和,后缀和有关,就先试一下 设 \(pre0\) 为 \(0\) 的个数的前缀和,其他同理 先求出一开始的代价,即 \(0\) 的个数,设为 \(cnt\), 当前代价也是 \(cost=cnt\) 假设从前面删到下标为 \(i 阅读全文
posted @ 2022-05-23 11:34 hzy0227 阅读(29) 评论(0) 推荐(0) 编辑
摘要:D - Present 位运算 + 思维 + 二分(双指针) 按位考虑,第 \(k\) 位是 0 还是 1 只跟前 \(k\) 位有关,因此算第 \(k\) 位的答案时可对 \(a\) 数组的元素 \(\mod 2^{k+1}\) 赋给 \(b\) 若 \(b_i+b_j\) 第 \(k\) 位是 阅读全文
posted @ 2022-05-19 19:11 hzy0227 阅读(19) 评论(0) 推荐(0) 编辑
摘要:C - Berland Regional 算贡献 表面上若从 \(1\) 到 \(n\) 枚举 \(k\), 再枚举每个学校对第 \(k\) 个答案的贡献,复杂度为 \(O(n^2)\) 但因为一共只有 \(n\) 个学生,设每个学校有 \(cnt_i\) 个学生,那么每个学校最多只会对前 \(cn 阅读全文
posted @ 2022-05-17 23:25 hzy0227 阅读(25) 评论(0) 推荐(0) 编辑
摘要:E - Assimilation IV 注意到 \(n\) 很小,可以算每个点被至少一个城市覆盖的概率,相加就是期望 本题中直接算点被覆盖的概率并不容易,可以算点没有被任何一个城市覆盖的概率 注意到 \(d(i,j)\) 也很小,最大不超过 \(n+1\) 可以枚举每个点,按距离从小到大给这 \(n 阅读全文
posted @ 2022-05-17 22:32 hzy0227 阅读(48) 评论(0) 推荐(0) 编辑
摘要:D - Inconvenient Pairs 思维 不方便的点对就是类似于,这种在同一行块或同一列块的两个点,他们的距离一定大于曼哈顿距离 其中红色为横向点对,紫色为纵向点对 所以可按 y 递增排序,找到每一个行块有多少个点,这一行块中的点对贡献为:\(\binom {cnt}2-\sum\bino 阅读全文
posted @ 2022-05-16 21:51 hzy0227 阅读(35) 评论(0) 推荐(0) 编辑
摘要:D - Excellent Arrays 思维 + 组合数学 + 树形结合 \(a_i+a_j=i+j\), 看到这样的形式先移项变成 \(a_i- i=-(a_j-j)\), 令 \(k_i=a_i-i\), 即 \(k_i=-k_j\) \(k_i=a_i-i\) 即 \(y=x+k_i\), 阅读全文
posted @ 2022-05-15 12:46 hzy0227 阅读(17) 评论(0) 推荐(0) 编辑
摘要:C - Line Empire 贪心 每次征服一个国家之后,如果要将首都迁过来,显然之后迁不如现在迁 在征服第 i 个国家后,可利用前缀和 \(O(1)\) 算出 迁或不迁 时征服之后国家的代价,若迁的代价小就迁,否则就不迁 #include <iostream> #include <cstring 阅读全文
posted @ 2022-05-12 20:46 hzy0227 阅读(32) 评论(0) 推荐(0) 编辑
摘要:D - Insert a Progression 绝对值 首先算出不插入时的答案 如果插入的数在 [minn, maxn] 中,则没有代价 如果 x > maxn, 则有 \((maxn,x]\) 这些数要产生代价,把他们放到最大值后面,则代价为 \(2*(x-maxn)\) 若放到开头或结尾,则代 阅读全文
posted @ 2022-05-12 20:32 hzy0227 阅读(77) 评论(0) 推荐(0) 编辑