2025.11

  • 2025/11/4

    A,61 / 100

    在思考怎么检验组成一条简单路径的时候想了很久才想到可以通过度来判断,之前的想法很复杂,导致花了大量的时间调,也没调对。

    两个小时终于把代码写对了,虽然交上去样例都能过,但不知道会不会超时,又不知道怎么优化,所以就搁置了。最后果然还是超。

    其实是被卡常了,将 multiset 改成 unordered_multiset 就能过。这就涉及到什么时候该用 unordered_multiset,不需要有序存储的时候就用 unordered_multiset

    还要学习更优秀的做法。

    B,16 / 16

    大概十分钟想到答案是 \(cnt1\)\(cnt2\) 的较大值,即有 \(0\) 的列和有 \(1\) 的行的个数的较大值。

    其实有很多性质都没想清楚,比方说一定有 \(cnt1=m\)\(cnt2=n\)

    C,0 / 0

    没看懂题。

    D,12 / 12

    暴力。


    \(11/4\) \(A\) → 100。

  • 2025/11/6

    A,100 / 100

    很快想到了做法,一开始忽略了检验的时候端点两侧颜色的要求,卡了一下子。

    然而实现了很久,大样例里调对了一个数据就错下一个,调得很崩溃。

    花了两个半小时。感觉还是写复杂了,题解里检验的方法比我的简洁好多。

    B,0 / 0

    没想清楚什么时候抓不到,对它们移动的策略想得不清晰,感觉暴力都不会就跳过了。

    C,0 / 0

    不会暴力。

    D,13 / 13

    暴力。

  • 2025/11/7

    CF2149\(G\),超时还在调。

  • 2025/11/8

    A,60 / ?

    一开始没有思路,也算浪费了很多时间。到最后几十分钟硬写了一个之前否过的结论,发现结论是对的。剩十几分钟的时候改成两个二分,不过还是超时。

    B,60 / 56

    写超级暴力的暴力的时候发现只会往后面跳,于是改成了 \(dp\)。加上特殊性质 \(A\),预计 48 分。然后观察到特殊性质 \(C\),踩到黑格子的最小次数一定是 \(0\),所以最后全输出了 \(0\)。没去想第二个答案怎么做,所以能得 \(C\)\(t=0\) 的 8 分。

    C,0 / 0

    没什么很直接的想法,换句话说就是暴力也不太会。

    D,12 / 12

    暴力。

    abc431:

    ABC 很快写完了。

    D 写得慢了一点,花了 30 分钟。好像是写的时候没注意只要从头向身体移零件,并且不能收集型,因为不一定要刚好移得头和身体一样重,大于需要移的总重量 \(sum\) 的状态要并到 \(sum+1\) 的状态上。贪心思路跟 s 组第一题一样,只是后面要 \(dp\) 选数。

    E 赛时想到了做法,就是走非给定的方向就要花一个代价,但是没写完。实现的过程中发现自己对 \(stl\) 用得很不熟练,比方说优先队列里面的类型是个结构体,我就不会写重载运算符。爆编的时候还不知道为啥。

    而且没看清题,它是射到 \((h,w+1)\) 结束。

  • 2025/11/10

    abc431\(E\) → 100。

    abc431\(F\) → 100:

    有重复元素的情况,都可以先看作不一样的,做有序的排列,再除以重复的情况。

  • 2025/11/11

    A,20 / 20

    大样例都画出来了但显然没什么用,想是想到了奇数度数的点在同侧或异侧这个方向,但是没有很清晰的做法,所以只写了特殊性质 \(A\)

    B,0 / 0

    模数大不会处理。

    C,0 / 0

    这题感觉写了也没分。

    D,0 / 0

    放弃了。


    \(11/11\) \(A\) → 100。

  • 2025/11/12

    \(10/28\) \(D\) → 100。

    \(11/11\) \(B\) 思考中。

  • 2025/11/13

    A,10 / 10

    赛时在往前缀后缀方面想,思考一个正数可以填哪些负数,但是发现当时想的做法不能处理一个正数填了这个负数而不能填另一个的情况。并且没有正确意识到选最近正数的贪心,所以后面没什么思路了。

    改题改了很久,主要问题出在最后答案的合并,一开始没搞清楚不只是简单的相加,而也可以从左往右刷。

    B,55 / ?

    写的 \(bfs\),没加任何优化,不知道能过多少,实际上 \(dfs\) 加剪枝就能过。改题的时候用下标类型是 pairmap 存答案,从而超时。所以说对 \(stl\) 的了解还不够,不能用得很恰当。

    C,40 / 40

    先写了 \(n^3\) 枚举,之后发现可以前缀和优化,把 \(n^3\) 改成了 \(n^2\)。但没转换到求异色角上。

    D,35 / 25

    暴力。


    \(11/13\) \(B\) → 100。

    \(11/13\) \(A\) → 100。

  • 2025/11/14

    \(11/13\) \(C\) → 100。

  • 2025/11/15

    感冒了实在太失败了。

    abc432:

    ABC 写得算顺利,B 一开始有点抽风 WA 了两发。D 好像怎么没想出来就跳了,因为发现 E 是一个板子。

  • 2025/11/17

    \(11/15\) \(A\) → 100:

    模数写错了看了半天没看出来还是问ai问出来的。

    \(11/15\) \(B\) → 100:

    用前缀和的时候 h[max(0, i - j - 1)] 写成 h[max(1, i - j - 1)] 了,倒是挺容易发现写错了。

    一开始对拐弯的转移不太理解,纠结于一个点被经过两次会不会被重复算,因为我当时觉得转移需要加 \(a_i\) 或者什么别的,毕竟感觉拐弯跟不拐弯还是有点区别,可能要算一个新的东西。但拐弯可以变成一个不拐弯的状态。一个食物被吃了一次就会消失,所以相当于可以把拐弯之前吃的那段食物移到拐弯后走的那段上来,就变成一段整的,会在某一次从某个点开始不拐弯走的状态里算到。然后这个转移肯定可以往前推到某个不拐弯的状态,所以拐弯的状态就这么算。当前拐弯状态走的步数 \(j1\) 比转移来的不拐弯状态的步数 \(j2\) 多的部分就是在走被走过的没有食物的位置。

  • 2025/11/18

    A,20 / ?

    除了暴力想不到别的。尝试推导致前后两个数大小互换的 \(x\) 的性质,想得比较混乱就没想了。

    B,0 / 0

    C,52 / 40

    通过第一个瓶子倒,不会超过 \(2n\),估计 40 分。考场上没有想其他方法,其实拼一拼说不定有更多的分。

    D,0 / 0


    \(11/18\) \(C\) → 100:

    把题解做法和赛时代码拼一起。

  • 2025/11/20

    A,20 / 20

    想到换根,但只是想到。其实只会暴力,想了一些别的做法,但复杂度好像跟暴力差不多。思考无果就结束了。

    B,20 / 20

    也是只会写暴力,不知道从哪优化。想了一些别的做法,但复杂度似乎比暴力还高。

    C,0 / 0

    基环树没有很熟,赛时也没有清晰的想法。

    D,0 / 0

    尝试了几种贪心都错了,最后的时间大部分花在这道题上,其实可以去写别的题的特殊性质。

  • 2025/11/21

    \(11/20\) \(A\) → 100:

posted @ 2025-11-04 14:20  tanxll  阅读(12)  评论(0)    收藏  举报
//雪花飘落效果