随笔分类 -  abc

摘要:F - Operations on a Matrix 初看起来感觉不是很好搞,主要是有赋值操作,我们需要知道的是最近一次在这个行上的赋值操作以及之间的贡献 那么我们离线处理,每个3操作都往前找一个最近的同行2操作,然后两个做差就能得到中间的和。 #include<algorithm> #includ 阅读全文
posted @ 2023-09-16 21:02 gan_coder 阅读(19) 评论(0) 推荐(0)
摘要:E - Just one 怎么感觉大家都这么懂啊。 结论就是基环森林才有解 证明的话大概是这样 首先不是同一个连通块的话则互不相干,分开讨论即可。 如果一个点的度为1,那么它的出边唯一确定,那么我们可以删去这些点,删去的同时会造成一些新的点度为1,不断扩展即可,同时注意判断无解情况,有点类似于拓扑排 阅读全文
posted @ 2023-09-13 15:56 gan_coder 阅读(21) 评论(0) 推荐(0)
摘要:E - Subsequence Path 第一眼看过去感觉又是什么魔改BFS的样子,但是感觉不好弄 但是往dp上想就很容易 \(f[i]\)表示走到i的最小代价,按着给出的序列顺序转移即可,转移是O(1)的。 代码非常简单 #include<cstdio> #include<algorithm> # 阅读全文
posted @ 2023-09-11 23:24 gan_coder 阅读(11) 评论(0) 推荐(0)
摘要:F - Integer Division 挺有意思的一道题, 贪心的做法就是排序之后,逐个加入,如果不能被之前的表示则加入 题解证明的话大概是这样 考虑第i个数选不选 首先加入前面选的数,如果能够表示当前的数,则必然不选 否则前面的数不能表示当前的数,假如我们不选\(p_i\) 假设最后得到一个合法 阅读全文
posted @ 2023-09-11 11:13 gan_coder 阅读(37) 评论(0) 推荐(0)
摘要:[abc317f](https://atcoder.jp/contests/abc317/tasks/abc317_f) 一看就是数位dp,但之前还想错了,今天课上突然想到 之前想的是怎样构造保证能够整除 但实际上将余数也设计到状态中就行 其他就是基本的数位dp ```cpp #include #i 阅读全文
posted @ 2023-09-05 22:35 gan_coder 阅读(16) 评论(0) 推荐(0)
摘要:[abc302f](https://atcoder.jp/contests/abc302/tasks/abc302_f) 不是很难,但是还是有点绕 很明显是一个图的模型 但是边数很大 我们只关心每种数最早什么时候能够得到 对于每一种数,我们记录哪些集合包含它,每得到一个新的数,就用它来更新 ```c 阅读全文
posted @ 2023-08-31 19:56 gan_coder 阅读(11) 评论(0) 推荐(0)
摘要:[Warp](https://atcoder.jp/contests/abc265/tasks/abc265_e) 大概就是个dp f[n][x][y]表示走了n步,第一种走了x次,第二种走了y次。 不过写来写去发现都会TLE,N^3怎么会TLE呢? 后面发现原来是map的写法一直有问题, 比如判断 阅读全文
posted @ 2023-08-28 12:16 gan_coder 阅读(8) 评论(0) 推荐(0)
摘要:开始看成走到相邻格子,后面发现是车的走法。。。 发现可以将整个图分成四个部分, (x1,y1) $(x,y1) (x \neq x1)$ $(x1,y) (y\neq y1)$ $(x,y) (x\neq x1 ,y\neq y1)$ 然后每一部分中的点的答案都是相同的,转移即可。 ```cpp # 阅读全文
posted @ 2023-08-22 08:25 gan_coder 阅读(21) 评论(0) 推荐(0)
摘要:[abc236_e](https://atcoder.jp/contests/abc236/tasks/abc236_e) 二分+判断 如果是平均数,我们只需将每个数-mid,然后dp判断是和是否大于等于0即可 如果是中位数,那么我们将a[i]=mid看作1,然后dp判断是否大于0即可 ```cpp 阅读全文
posted @ 2023-08-15 12:45 gan_coder 阅读(133) 评论(0) 推荐(0)
摘要:[abc270d](https://atcoder.jp/contests/abc270/tasks/abc270_d) 直接贪心每次取最大的会有问题,比如说下面的例子 11 2 4 5 我们考虑dp $f[i]$表示在先手的情况下,有i个石头的局面,最多能拿多少个石头,同时记录$g[i]$表示选的 阅读全文
posted @ 2023-08-13 11:08 gan_coder 阅读(21) 评论(0) 推荐(0)