paper 653f task cf
[Codeforces] CF1774B Coloring
CF1774B Coloring 题意 Cirno_9baka 的纸条上有 \(n\) 个格子,他觉得空白的纸条看着有点无趣,于是想在纸条的格子上涂上 \(m\) 种颜色。同时,他认为第 \(i\) 种颜色必须要用 \(a_i\) 次,且每连续 \(k\) 个格子里涂的颜色必须互不相同。 Cirno ......
[Codeforces] CF1760F Quests
CF1760F Quests 题意 有 \(n\) 个任务,你每一天都可以选择其中的一个任务完成或不选。当你完成了第 \(i\) 个任务,你将获得 \(a_i\) 元。但是如果你今天完成了一个任务,那么你之后 \(k\) 天内都不能再完成这个任务。 给出两个数 \(c\),\(d\),要求求出满足在 ......
[Codeforces] CF1744E1 Divisible Numbers (easy version)
CF1744E1 Divisible Numbers (easy version) 题意 给你四个数 \(a,b,c,d\),你需要找出一组 \(x,y\) 使得 \(a<x\leq c,b<y\leq d\) 并且 \(x\cdot y\) 能被 \(a\cdot b\) 整除,如果没有输出 -1 ......
CF1804F Approximate Diameter 题解
题目链接 点击打开链接 题目解法 很有意思的题,但不难 首先一个显然的结论是:算着边的加入,直径长度递减 第一眼看到误差范围是 2 倍,可以想到二分 可以观察到如果取答案为 \(\frac{n}{2}\) 可以覆盖到 \(\frac{n}{4}\)(上下取整不重要),那这样每次可以把值域范围缩小 4 ......
CF327C Magic Five 题解
题目传送门 前置知识 等比数列求和公式 | 乘法逆元 解法 设 \(lena\) 表示 \(a\) 的长度。 首先,若一个数能被 \(5\) 整除,则该数的末尾一定为 \(0\) 或 \(5\)。故考虑枚举 \(a\) 中所有的 \(0\) 和 \(5\) 的下标,设此下标后面有 \(x\) 个数字 ......
CF1859F Fancy Arrays
Fancy Arrays - 洛谷 我们先找这题看起来有点奇怪的部分: \(x\leq 40\) \(|a_i-a_{i-1}|\leq k\) 我们先考虑第二个条件怎么用。我们发现 \(\min a_i \in [0,x+k)\),而原数组相邻两数之差的条件肯定要考虑成差分来处理 可以发现,一个差 ......
「杂题乱刷」CF961B
题目链接 算法一: 直接暴力,时间复杂度 \(O(n^2)\)。 算法二: 使用双指针维护,时间复杂度 \(O(n)\)。 算法三: 是用前缀和维护,时间复杂度 \(O(n)\)。 这里提供算法二的代码: 点击查看代码 #include<bits/stdc++.h> using namespace ......
「杂题乱刷」CF1105C
题目链接 一道 dp 板子题。 只需要设 \(dp_{i,j}\) 为前 \(i\) 位 \(\bmod 3\) 为 \(j\) 的方案数的数量即可。 剩下的就看代码了。 参考代码: 点击查看代码 #include<bits/stdc++.h> using namespace std; #defin ......
题解 CF1887E【Good Colorings】
萌萌交互题。 对网格图进行二分图建模,左部 \(n\) 个点表示每一行,右部 \(n\) 个点表示每一列。若格子 \((i,j)\) 被染成 \(c\) 色,就连接 \((L_i,R_j,c)\) 的边。 由抽屉原理易证,在初始局面中至少有一个各边颜色均不同的偶环。获胜条件相当于存在一个各边颜色均不 ......
[Codeforces] CF1740D Knowledge Cards
CF1740D Knowledge Cards 题意 有一个 \(n \times m\) 的棋盘。现在\((1,1)\)中有一个栈,你可以按照一定的顺序进行出栈操作,每次都可以移动一个卡片到一个相邻的空白位置,但是卡片不能重合。问,能否通过若干次操作,将\((1,1)\)中全部的卡片移动到\((n ......
[Codeforces] CF1722G Even-Odd XOR
CF1722G Even-Odd XOR 题意 给定一个正整数 \(n\),请你找出一个长度为 \(n\) 数组 \(a\),满足数组是由互不相同的非负且小于 \(2^{31}\) 的整数组成,并且该数组中奇数项上元素的异或值与偶数项上元素的异或值要相等。 思路 根据异或的交换律,可以发现:奇偶位异 ......
[Codeforces] CF1690E Price Maximization
CF1690E Price Maximization 题意 我们有 \(n\) 个礼物,而最终我们需要将所有的礼物两两包成 \(\frac{n}{2}\) 个包裹。 每一个礼物 \(i\) 都有其价值 \(a_i\),而含有礼物 \(i\) 与礼物 \(j\) 的包裹的价值是 \(\lfloor \ ......
CF1784C Monsters (hard version) 题解 线段树
题目链接:https://codeforces.com/problemset/problem/1784/C 题目大意: 你面前有 \(n\) 只怪兽,每只怪兽都有一个初始血量,你可以进行两类操作: 操作1:选择任意一个血量大于 \(0\) 的怪兽,并将它的血量降低 \(1\); 操作2:将所有存活的 ......
CF1320D Reachable Strings
110和011互相转化,相当于就是0在连续两个1的情况下,移动两个位置 能够发现,0的位置的奇偶不会改变,且很多个0之间的相对位置不会改变 猜想考虑这个答案只跟0的奇偶性有关,下面小证一下:(注意下面所说的“奇偶”指的是两个字符串的分别第一个字母为奇数时的奇偶,不是总字符串的奇偶) 若0的相对位置奇 ......
C# 加深印象之 Task.Run和new Task的区别
public async Task Test() { var task = AAA(); Log.Info("调用AAA"); await Task.Delay(2000); Log.Info("等待2秒任务尚未执行完毕"); await task; //等待任务完成 Log.Info("等待AAA ......
CF 1303 E
显然O(n)划分之后可以用一个三维dp写 可以用bitset优化 也可以 化简为二维 dp i j 表示第i位 能搞到 a的j位 并且 搞到b位的 最大值 int dp[410][410]; bool check(string &s,string &pre,string &suf) { memset ......
CF 1904 D. Set To Max
Easy Version Hard Version Hard Version的做法可以从Easy Version 用数据结构优化得到。 首先我们想一下,什么情况需要进行操作?显然是\(a_i!=b_i\)的时候,并且当\(a_i>b_i\)的时候将会无解。 那么当\(a_i<b_i\)的时候,应该怎 ......
CF 记录
CF 1903F: 考虑二分答案 \(ans\)。 可以得到这样的限制: 若选择了 \(x\),则不可以选择 \(x+1,x+2,...,x+ans\)。 若未选择 \(u_i\),则必须选择 \(v_i\)。 这是一个 2-sat 的形式。但限制 1 建边太多,可以用线段树优化建图。 ......
「杂题乱刷」CF1620E
一道好题。 题目链接 考虑离线操作。 我们可以设 \(a_i\) 为当前 \(i\) 表示的数字,然后直接倒序操作,运用并查集的思想,可以 \(O(n)\) 通过此题。 参考代码: #include<bits/stdc++.h> using namespace std; long long n,a[ ......
CF1481D
考虑二元环 要是二元环相同 那么显然怎么构造都可以了 否则 我们考虑 没有二元环相同 要是m是奇数 我们随便跑跑就行 要是m是偶数 情况呢 我们需要构造一种情况 我们肯定用的点数越少越好 我们考虑三个点 要是两个二元环都是 a 出 或者 b 出的 就可以构造出来了 void solve(){ int ......
CF1493C
以前写挂了 今天又拿出来写 手玩一下样例发现 我们从高位贪是肯定的 尽可能让该位置和原串一样 然后我们可以枚举该位改成什么字母 然后计算后面的放是否合法 写的很屎 其实就是复制粘贴了一坨 我们先找到 最远的位置可以修改 再修改为最小的即可 void solve(){ int n,k;cin>>n>> ......
CF1379C
想了好久的策略发现都wa了 后面仔细思考了一下 我们肯定只选一种bi 那我们不妨枚举bi 然后比bi大的ai我们都选 我的写法有点问题 要加特判 其实是可以二分找到大于bi的点 更好写一些 明天吧这个题 和 上一个拓扑的题写一下简单写法 void solve(){ int n,m;cin>>m>>n ......
CF1385 E
我们发现好像和拓扑序有关 我们做拓扑序的时候 要是一个点没有 有向边出去 或者进来 我们好像可以随意钦定该点其他无向边 要是有 有向边入 和 有向边出 那么肯定寄 有一种就直接钦定为该点其他有向边的方向就可以了 其实 具体实现的时候我们可以直接有向边拓扑序 之后 无向边钦定 由拓扑序小的指向拓扑序大 ......
[CF980D] Perfect Groups 题解
[CF980D] Perfect Groups 题解 思路 第一个观察就很难观察到: \[ab = x^2, bc = y^2\Longrightarrow \exist z, ac = z^2(a, b, c \ne 0) \] 证明: 两个条件式相乘得到: \[ab^2c = x^2y^2\\ ......
CF1205题解
CF1205 Expected Value Again 首先算 \(\sum f^2(s)\),一个很经典的转化:任选 \(i,j < n\) 满足 \(i,j\) 同时是 border。 摆出几个结论: \(r\) 是 \(s\) 的 border 等价于 \(|s| - r\) 是 \(s\) ......
CF1592F2 Alice and Recoloring 2
题意 给定一个矩阵,有两种颜色 \(W\) 和 \(B\)。 你可以花 \(1\) 的代价反转一个包含 \((1, 1)\) 的矩阵。 你可以花 \(3\) 的代价反转一个包含 \((n, 1)\) 的矩阵。 你可以花 \(4\) 的代价反转一个包含 \((1, m)\) 的矩阵。 你可以花 \(2 ......
CF213E Two Permutation 题解
CF213E Two Permutations 题解 题意: 给出两个排列$a,b $,长度分别为 \(n,m\),你需要计算有多少个 $ x $,使得 \(a_1 + x,a_2 + x,...a_n + x\) 是 \(b\) 的子序列。 \(n \leq m \leq 2 \times 10^ ......
CF571E Geometric Progressions
CF571E Geometric Progressions 洛谷:CF571E Geometric Progressions Codeforces:CF571E Geometric Progressions Problem 给定 \(n\) 以及 \(n\) 个正整数对 \(a_i, b_i\)。 ......
CF301D Yaroslav and Divisors
因为是排列,所以数对总数是调和级数的 \(O(n\log n)\),可以暴力枚举。 容斥,区间左右端点均在 \([l,r]\) 中的数对数量等于左右端点均在 \([1,r]\) 中的数对数量减去左右端点均在 \([1,l-1]\) 中的数对数量,再减去左端点在 \([1,l-1]\) 中且右端点在 ......