放弃这无果努力不再浪费时间 让心忘记所有感觉 直到永远

test46

特定版本的 typora 不能 ctrl ac 是何意味啊。


整数

float x; cin >> x; x=x-floor(x); cout << x; 这种东西输入 ?.40 为什么会输出 0.3999.... 啊 /fad

不需要瞎几把转换,你直接 \(a_i\gets 10^9a_i\) 之后考虑 \(a_ia_j\) 末尾至少有 \(18\)\(0\) 即可。

考虑开桶记录 \(cnt_{i,j}\) 表示 \(a=2^{i}5^{j}u\) 的最大 \(i,j\),二元组只有 \(\log^2 V\) 个, 枚举两种情况 \((l_1,r_1),(l_2,r_2)\),限制就是 \(\min(l_1+l_2,r_1+r_2)\geq 18\)。因为浮点数很神秘会掉精度你可以直接用 str 读入。

彷徨

这不是 Round1 的 t2 吗,只考虑树的那一部分深度和就足够小了,而最短路比这个还要小。你拿 \(\sum dis_u\) 作为势能,每次删点暴力更新就好了,更严谨的可能应该保证边的遍历是单调的(?

手环

考虑 \(A[0,.\dots,n-1]\) 最终变成 \(B[u,\dots]\),并且是右移,左移直接 reverse 再跑一遍就好了(

发现对于每一个 \(s[i]\neq t[(i+u)\mod n]\)\(i\) 只关心二元组 \((r_i,l_i)\) 表示右移 \(r_i\) 可以天然满足,左移 \(l_i\) 可以满足。对于不天然满足的即 \(r_i>u\) 的部分我们需要额外右移至少 \(r_i-u\) 或者干脆额外左移至少 \(l_i\),这俩玩意系数都是 \(\times 2\)。现在你要考虑 \(L+R\) 最小的左右移次数二元组 \((L,R)\),经典贪心,\(l_u\uparrow\) 之后枚举 \(\max\{l_u\}\) 然后只能取后缀 \(\max_{v>pos}\{r_v\}\),计算出之后加上纠正方案数和一开始的偏移移动次数即可。

小球

把 bot 看作点,ball 看作边进行一个连的接。此时的性质 \(2n\) 个点 \(2n\) 条边还有一个不太重要的二分图,你现在看到前俩限制去想想基环树,又不能有 \(0\) 度点否则无解,所以这确实是一个基环树。

你现在要给点和边做完美匹配,顺便计一下顺序。首先非环匹配方案固定,环上匹配方案只有顺时针和逆时针,我们考虑顺时针怎么做,现在已经不好在基环树上看了我们扔回题面上,你的 ball 已经钦定给了 bot,你的限制现在只有 某操作 在 另一操作 前操作,这个首先是向右上角的 DAG,类似于我和英语听说是一对苦命鸳鸯,这个何尝不是某种形态的 \(i\to rand()\mod{i-1}+1\),核心在于单个出边向后会形成一棵树。问题变成了拓扑排序方案数,按照经典姿势 \(n!\prod\frac{1}{siz_u}\) 计算即可。

你这个评测姬怎么还会随机给分的(

posted @ 2025-11-24 15:44  Hypoxia571  阅读(1)  评论(0)    收藏  举报