摘要:
思路 显然,暴力是可行的。对于第 $i$ 个字符,它应该移动到 $(i + k)\bmod m$ 代码 #include<iostream> using namespace std; int main() { string a; cin>>a; string b; b = a; int m; cin 阅读全文
摘要:
dfs 思路 这道题肯定要用DFS。如果直接暴力枚举,只有40pts。 那么,该如何优化呢? 考虑使用贪心。我们发现,当第一行确定下来时,后面几行就会受限,有唯一解!! 所以,我们只需要枚举第一行。$2^{18}$ 还是可以接受的。 还有一个小细节需要注意。 总时间复杂度 $O(2^n \cdot 阅读全文
摘要:
简单思维题 思路 既然他说每次可以去无数个数加1,那我们只需要从最小的数开始加,每次把与最小的数相等的数一起加1,直到全相等。所以答案就是数列中最小的数加最大的数。 如下表所示: 代码 #include<bits/stdc++.h> using namespace std; #define int 阅读全文
摘要:
简单题 思路 把一个字符串拆分成两个完全一样的字符串,则拆分出来的字符串长度相等。所以如果字符串长度 $n$ 为奇数,则肯定不行。 如果 $n$ 为奇数,则判断 $1$ ~ $n/2$ 和 $n/2+1$ ~ $n$ 这两段字符串是否相等即可。 代码 #include<bits/stdc++.h> 阅读全文
摘要:
https://www.luogu.com.cn/training/5011#problems P1049: 把剩余量转换成最大装多少,然后化为01背包 CF414B: 清新。先设$f[i][j]$表示在$i$位置填$j$的最大方案数。 for(int i = 2; i <= k; i++){ fo 阅读全文
摘要:
本题的思路:纯模拟。 设置数组记录每个唱片的状态,一个变量in代表正在播放的唱片编号。 运用for循环模拟每一天唱片的变化。 这是题目给出的模拟图 说句闲话,题目居然有65个测试点! 话不多说,我们来看代码 #include<iostream> #include<cmath> using names 阅读全文
摘要:
题意 题面说: 给你两个字符串,对于其中一个字符串的一个子序列,如果该子序列不是另一个字符串的子序列,定义该子序列为“Uncommon Subsequence”。 输入两行为两个字符串,输出一个数字为最长的“Uncommon Subsequence”的长度。如果不存在“Uncommon Subseq 阅读全文
摘要:
对于这道cf水题,我采取的方法是用数学上的最不利原则,尽可能的把最多的一种拿完后,再拿其他的。 根据容斥原理,只含棒子的蛋的数量=棒子数-两个物品都含的蛋的数量,只含玩具的也是同理。两个物品都含的蛋的数量=棒子数+玩具数-蛋数。 得到代码 int cnt = s + t - n;//cnt=两个物品 阅读全文