上一页 1 2 3 4 5 6 ··· 8 下一页
该文被密码保护。 阅读全文
posted @ 2025-02-23 18:00 _Kenma 阅读(20) 评论(0) 推荐(1) 编辑
摘要: A 考虑从大到小考虑每一个取值的数,如果能换就换,如果换了没用就不换。 实现上使用 vector 存下标,复杂度 \(O(n)\)。 #include<bits/stdc++.h> using namespace std; int t,n,m,a[1000005],flag,tim; vector< 阅读全文
posted @ 2025-02-22 19:07 _Kenma 阅读(86) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2025-02-21 15:06 _Kenma 阅读(3) 评论(0) 推荐(0) 编辑
摘要: here. C 考虑最终合法的字符串,形如: \[1,2,2,2,\cdots,2,2,2,3 \]然后考虑对于每对 \(1,3\) 对答案的贡献是,它们中间 \(2\) 的个数,记为 \(cnt\),\(2^{cnt}-1\)。 然后考虑从左往右扫,每次遇到 \(1\) 往 ds 里加入一个 \( 阅读全文
posted @ 2025-02-20 09:07 _Kenma 阅读(15) 评论(0) 推荐(0) 编辑
摘要: here. E 考虑对 F 先删边再加边。 删边时,用并查集维护出 G 的联通性,如果 F 中的边 \((x,y)\) 在 G 中不联通,就把它删去。 加边时,用并查集维护出 F 的联通性,如果 G 中的边 \((x,y)\) 在 F 中不连通,就在 F 中加边 \((x,y)\)。 不难发现这样贪 阅读全文
posted @ 2025-02-18 23:00 _Kenma 阅读(7) 评论(0) 推荐(0) 编辑
摘要: here. 感觉出的都很不错,做起来很舒服。 C 考虑直接 DP。 设 \(f_i,0/1\) 表示考虑前 \(i\) 个人,第 \(i\) 个人是否说谎的方案数。 枚举第 \(i\) 个人是否说谎,得到转移: \[f_{i,0}=f_{i-1,1} \]\[f_{i,1}=f_{i-1,0}[a_ 阅读全文
posted @ 2025-02-18 17:06 _Kenma 阅读(9) 评论(0) 推荐(1) 编辑
摘要: here. C 考虑这样一种构造: \[1,2,3,\cdots,n-1,n,1,2,3,\cdots,n-1,n \]或者是: \[1,2,3,\cdots,n-2,n-1,n,1,2,3,\cdots,n-2,n-1 \]这里的 \(n\) 不是题面中的 \(n\)。 但是经检查,这种构造会在 阅读全文
posted @ 2025-02-17 21:28 _Kenma 阅读(6) 评论(0) 推荐(0) 编辑
摘要: here. 困难场。 C 考虑贪心,我们在一个前缀只取正数,后缀只取负数,这样取一定可以取到最大值。 扫一遍记录前缀正数和和后缀负数和,枚举分割点即可。 复杂度 \(O(n)\)。 #include<bits/stdc++.h> #define int long long using namespa 阅读全文
posted @ 2025-02-17 16:31 _Kenma 阅读(20) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2025-02-16 16:06 _Kenma 阅读(10) 评论(0) 推荐(0) 编辑
摘要: md 太对了驳不了一点。 阅读全文
posted @ 2025-02-16 12:45 _Kenma 阅读(72) 评论(2) 推荐(5) 编辑
上一页 1 2 3 4 5 6 ··· 8 下一页