一开始读错题了...想当然地认为只能相邻元素交换...(然后换了两种写法WA了4发,5分钟切A的优势荡然无存) 题目链接:https://codeforces.com/contest/1365/problem/B 题意 有 $n$ 个数,每个数的种类为 $0$ 或 $1$,不同种类的元素可以任意交换,问这些数能否排为非递减序. 题解 如果两个种类都有,一定可以排为有序,稍微证明一下: 将种类为 $0$ 的数都交换到最左边,种类为 $1$ 的数都交换到最右边 每个种类的数可以利用另一个种类的一个数…
B. Substrings Sort time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given nn strings. Each string consists of lowercase English letters. Rearrange (reorder) the given strings in such…
D. Bubble Sort Graph time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Iahub recently has learned Bubble Sort, an algorithm that is used to sort a permutation with n elements a1, a2, ..., an …
C. Insertion Sort Petya is a beginner programmer. He has already mastered the basics of the C++ language and moved on to learning algorithms. The first algorithm he encountered was insertion sort. Petya has already written the code that implements th…
链接 : https://codeforces.com/contest/1365/problems problem A 统计可用的行和列的最小值, 模2输出即可 /* * Author: RoccoShi * Time: 2020-06-07 22:35:02 */ #include <bits/stdc++.h> using namespace std; typedef long long ll; int vix[50]; int viy[50]; int cntx=0, cnty=0; i…
题目链接:https://codeforces.com/problemset/problem/1365/E 题意 有 $n$ 个元素,定义大小为 $k$ 的集合值为 $\sum2^i$,其中,若集合内至少有 $max(1, k - 2)$ 个数二进制下第 $i$ 位为 $1$,则第 $i$ 位有效,求一个集合可以得到的最大值. 题解 每个 $k > 3$ 的集合的值一定小于等于 $k = 3$ 的子集合的值,所以枚举大小 $1 \sim 3$ 的集合即可. 证明 如果原集合中某一位有效,则至少在…
这题犯了一个很严重的错误,bfs 应该在入队操作的同时标记访问,而不是每次只标记取出的队首元素. 题目链接:https://codeforces.com/contest/1365/problem/D 题意 有一个 $n \times m$ 的迷宫,迷宫有四种方格: '.' 空方格 '#' 墙 'B' 坏人 'G' 好人 人与人间可以通行,人与墙间不能,可以把任意空方格变为墙,问能否所有好人可以到达 $(n, m)$ 但所有坏人不能. 题解 无解有两种情况: 坏人与好人相邻 在每个坏人相邻的四个方…
题目链接:https://codeforces.com/contest/1365/problem/C 题意 有两个大小为 $n$ 的排列,可以循环左移或右移任意次,问最多有多少对同一值在同一位置. 题解 计算两个排列中同一值相差的距离,取个数最多的那个即可. 代码 #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<int> id[n]; for (int…
题目链接:https://codeforces.com/contest/1365/problem/A 题意 给出一个 $n \times m$ 的网格,两人轮流选择一个所在行列没有 $1$ 的方块置为 $1$,判断最后谁会胜利. 题解 模拟一共能走多少步,奇数先手胜,偶数后手胜. 代码 #include <bits/stdc++.h> using namespace std; void solve() { int n, m; cin >> n >> m; bool ro…
题目链接:F.Swaps Again 题意: 有两个长度为n的数组a和数组b,可以选择k(1<=k<=n/2)交换某一个数组的前缀k和后缀k,可以交换任意次数,看最后是否能使两个数组相等 可以输出yes,否则输出no 题解: ...这道题我真没想到这样写 例如一个序列1,2,3,4,5.你交换一次(怎么交换就不说了,能看出来),5,2,3,4,1,再交换一次4,1,3,5,2. 你会发现一个规律(反正我没发现),对称位置的元素依然是最开始的元素,就比如没交换前1和5相对称,再交换了多次之后1还…