CodeForces
L-M-Y
健康和自由至上
展开
-
F. Clear the String (区间DP)
题目链接https://codeforces.com/contest/1132/problem/F题目大意有一个字符串,你每次可删除这个字符串中一段连续且每个字符都相同的字符串,问最少删多少次,可以为字符串删空题解这道题我一直觉得是贪心,后来看了大佬的题解,才明白过来,原来是区间DP思路:dp[l[[r]表示在删除字符串l-r这段长度所需的最小次数主要分三种情况来讨论若s[l]==s[r],dp[l][r]=dp[l+1][r-1]+1;若s[l]!=s[r],dp[l][r]=min原创 2021-08-19 14:37:40 · 232 阅读 · 0 评论 -
Codeforces Round #737 (Div. 2) A-C
A. Ezzat and Two Subsequences分类:思维我的思路:将最大数和其他一堆分开即可我的代码://by lmy#include <iostream>#include <algorithm>using namespace std;const int maxn = 2e5 + 10;int a[maxn];int main(){ int t, n, i; double sum = 0.0; cin >> t原创 2021-08-13 10:55:44 · 128 阅读 · 0 评论 -
Codeforces Round #720 (Div. 2) A-B
A Nastia and Nearly Good Numbers#include <iostream>using namespace std;typedef long long ll;int main(){ ll t, A, B; cin >> t; while (t--) { cin >> A >> B; if (B == 1) cout << "N原创 2021-08-09 11:46:29 · 70 阅读 · 0 评论 -
Codeforces Round #727 (Div. 2) C题
题目链接https://codeforces.com/contest/1539/problem/C题解分类:贪心,排序思路:对数组a排序,找出大于x的差值,存入b中,之后按需减掉就好。这道题本身不难,就是那个while循环的控制条件有点狗,搞得wa了好几次。我的代码://by lmy#include <iostream>#include <algorithm>using namespace std;typedef long long ll;const in原创 2021-08-07 16:44:06 · 57 阅读 · 0 评论 -
B. Reverse Binary Strings
题目链接https://codeforces.com/problemset/problem/1437/B题解分类:思维思路:(不禁还是想骂几句,这个思维题真的太太太离谱)每次反转只能改变子字符串两端的数字,所以,结果就是连续的0和连续1个数之间取大我的代码:#include <iostream>#include <algorithm>#include <string>using namespace std;int main(){ stri原创 2021-08-06 15:07:47 · 81 阅读 · 0 评论 -
Codeforce 1490B Balanced Remainders
题目链接https://codeforces.com/contest/1490/status/B题解分类:思维思路:统计个数,加加减减就好了,但是记住写好条件我的代码:#include <iostream>#include <algorithm>using namespace std;const int maxn = 3e4 + 10;int a[maxn];int main(){ int t, n, i, k[3]; cin >>原创 2021-08-06 14:40:15 · 80 阅读 · 0 评论 -
1455 B - Jumps
题目链接https://codeforces.com/contest/1455/problem/B题解分类:思维(cf的这个思维题,真的,阴间啊,呜呜呜)代码:#include <iostream>using namespace std;int main(){ int t, n, i, x,a[2000] = {0},ans; for (i = 1; i <= 1500; i++) a[i] = a[i - 1] + i; cin原创 2021-08-06 13:59:05 · 104 阅读 · 0 评论 -
1487 B. Cat Cycle
题目链接https://codeforces.com/problemset/problem/1487/B题解分类:思维思路:一开始我的思路比较复杂,后来看了大佬的题解才恍然大悟,原来是可以分类的n为奇数时,每走n/2步,都会重复一次n为偶数时,不会重复代码:(参考了大佬的代码,真的,好精炼好精炼)#include <bits/stdc++.h>using namespace std;int t, n, k, ans;int main(){ for (scanf("原创 2021-08-06 13:00:53 · 125 阅读 · 0 评论 -
1496B Max and Mex
题目链接https://codeforces.com/problemset/problem/1496/B题解分类:思维,分类讨论思路:刚看了大佬的代码,感觉我的思路略微复杂了一点点首先对数组进行升序排序,然后找数组不同的元素个数sum分类1:如果第一项不等于0,则若四舍五入(a[n-1]/2)在原数组中存在,则无论k多少,结果都是sum如果a[n-1]/2,则当k不为0时,无论k多大,结果都是sum+1分类2:第一项等于0,且数组中每一个元素都是连续的,则结果为k+sum若第一项等于0原创 2021-08-05 15:50:28 · 128 阅读 · 0 评论 -
Codeforces Round #736 (Div. 2) A-C题解
题外话:这场AB题不怎么难,但是到了C就做不动了,看了大佬的代码才勉强搞懂C题,D是没本事做出来了,直接放弃。A. Gregor and Cryptography分类:简单思维题目大意:输入一个数p(p>5),找到a,b两个数,a,b大于等于2,小于等于p我的思路:这个题,直接分类讨论就可以p为偶数,2和本身,余数都是0p为奇数,2和p-1,余数都是1我的代码://by lmy#include <bits/stdc++.h>using namespace std原创 2021-08-04 14:53:14 · 117 阅读 · 0 评论 -
Codeforces Round #202 (Div. 1) A题
第一次做div1的题,哈哈哈,参考了大佬的代码,学了二分,还是有点点收获的鸭A. Mafia分类:思维,二分题目大意:有n个人玩游戏,每个人想玩的最少局数为a[i],每局游戏中有一个人是裁判(裁判不参与此局游戏),求最少进行多少局游戏,能够满足每个人的需求。思路:这道题读懂之后我才发现,有很多隐含条件,比如每个人都要从第一局玩到最后一局不能退出。这道题的思路若集中在每个人玩了多少局,情况会比较复杂,所以主要看每个人当裁判的个数。设共要玩k局,则每个人当裁判的场数为k-a[i],k-a[0]+原创 2021-08-03 11:41:07 · 135 阅读 · 0 评论 -
B. Reverse String
题目来源https://codeforces.com/problemset/problem/1553/B题外话:最近也打了不少比赛,但是总体进步不高,就觉得是自己的方法有点问题。就打过的比赛,会的题,一般十分内就写出来了,不会的题,只要看着第一时间没有思路,就一定做不出来(哈哈哈哈,我先笑自己一会儿)事后虽然有补题,但是那些稍稍高出自己水平的题,自己还是看了题解之后,才一点点理解的。总而言之,就是自己不会的题,做的太少。所以我决定改变策略,我也是最近才发现,cf上可以搜索相应难度的题目。所以最原创 2021-07-27 16:00:42 · 138 阅读 · 0 评论 -
B. AquaMoon and Stolen String
题目链接https://codeforces.com/problemset/problem/1546/B题外话:哇,这真的是一道让人很无语的思维题。比赛的时候没写出来,后来补题的时候,看了大佬的代码,然后以为自己懂了,好家伙,没想到自己没理解透。今天在学校的练习题中又遇到了,决定好好理解理解这个题~呜呜呜,以后一定好好补题!题目大意有2n-1个长度为m的字符串其中有2n-2个字符串中可能某两个字符串之间,选出的某几个位置,交换了子字符串,让你找出那个没被交换过子字符串的字符串。我的思路:原创 2021-07-27 12:54:10 · 174 阅读 · 0 评论 -
Codeforces Round #674 (Div. 3) A-C题解
这场打的算是目前为止最顺利的一场了,十分钟解决掉a题,半个小时b,最后花了四十分钟想明白了c题(不要嘲笑我,菜鸟第一次正确提交c题,有点激动),其中没有wa,还是挺开心的。写到b题的时候,b题我一开始没看懂什么意思,不知道怎么解决,一直想放弃,但是没想到随便列举了两种情况,初步猜想了一下规律,然后提交了,没想到竟然通过了!所以说,对于任何一场比赛,对于任意一道题,都不要轻易放弃,也许就多坚持那么一点点,就成功了。还有,就是永远要大胆猜想,有的时候,直觉不一定就是错的。lmy加油加油!A. Floo原创 2021-07-23 16:00:38 · 78 阅读 · 0 评论 -
Codeforces Round #690 (Div. 3) A-C题解
题外话:这场打的还算是顺的,十几分a掉A题,B题因为常识问题wa了一次,C题也很快(应该是这场比较简单),到D题的时候还有四十几分钟,但是D题是确实不会。总之,代码熟练度和思维都比前段时间强了不少,但是数据结构和算法的知识依旧很欠缺。A. Favorite Sequence题目大意:懒得讲了其实,一开始题目读错了,以为给出a让我输出b,但其实是给出b让我输出a,是个逆推的过程。分类:水题,纯思维(下标和值分别存储的思想)我的反思:AB两道题,认真读题,尽量压缩时间我的代码://by原创 2021-07-22 15:34:38 · 60 阅读 · 0 评论 -
Codeforces LATOKEN Round 1 (Div. 1 + Div. 2) C. Little Alawn‘s Puzzle
C. Little Alawn‘s Puzzle我的思路:数据结构知识有限,还没搞很懂,暂时明白了本题转换为n个节点,有n条有向边(我暂时觉得是有向边),组成一个图,之后用深搜在图中找到环。最后用快速幂压缩时间复杂度复制了一下大佬的代码,图论的知识再去学一学分类:数学建模,图论,快速幂大佬的代码:#include <iostream>using namespace std;const int maxn = 4e5+10;const int mod = 1e9+7;int vi原创 2021-07-22 15:24:10 · 111 阅读 · 0 评论 -
Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2) AB题解
废话:这场A题解超时了一次,做完A题都已经半个多小时过去了,好家伙,不禁有点慌。B题的那个递推公式也是惊呆了我,C题暂时不会做,呜呜呜,还需继续努力…A. Game of Life题目大意:有一个长度n的数组(这个数组只能由0或1组成),你需要对数组进行m次操作,每次操作你可以将一个0变成1,如果这个0的相邻元素有一个等于1的话。分类:纯思维我的思路:用一个数组来保存a数组每个位置的数是否可以变为1。我的反思:第一次超时了,原因是,本来这个算法的时间复杂度是n*m,有点大的,如果一个数原创 2021-07-22 15:23:53 · 156 阅读 · 0 评论 -
VK Cup 2021 - Elimination (Engine) A-D题解
这场怎么说呢,打的并不顺利,掉分进行时。C题一直没想明白,呜呜呜A. Binary Decimal分类:纯思维我的思路:仔细观察,发现一个数需要加的最大的binary decimal 数的个数就等于这个数每个位上最大的那个数字。我的代码:// by LMY#include <bits/stdc++.h>using namespace std;typedef long long ll;ll weishu(ll a){ int s = 0; while (a原创 2021-07-19 15:37:54 · 208 阅读 · 2 评论 -
Codeforces LATOKEN Round 1 (Div. 1 + Div. 2) AB题解
A. Colour the Flag题目大意:有一个n*m的字符数组,由‘R’,‘W’,或者‘.’组成,‘.’表示空白,‘R’表示红色,‘W’表示原创 2021-07-17 13:03:28 · 110 阅读 · 0 评论 -
Educational Codeforces Round 111 (Rated for Div. 2) AB题解
A. Find The Array题目大意:有一种数组,其中的元素ai可以是1,如果不是1,那么ai-1或者ai-2必须在这个数组之中存在。给出这个数组的元素和,让你找这个数组的最少元素个数。题目分类:纯思维我的理解:通过分析,发现,长度为n的这种数组,最大元素和是1+3+5+…+(2n-1)=nn所以,对给出的这个数组元素和开根号,如果结果为在大于(n-1)(n-1)小于等于nn的话,输出n就好了我的代码://by LMY#include <bits/stdc++.h>原创 2021-07-15 09:44:59 · 117 阅读 · 0 评论 -
Codeforces Round #103 (Div. 2) AB题
A Arrival of the General1题目大意:给出一个长度为n的数组,让你通过元素之间的移动,把最大元素放到数组最左边,最小元素放到最右边。移动的过程中,只能交换相邻的元素,求这个过程中需要的最少步骤。题目分类:纯思维我的解法首先找出这个数组中的最大元素(由于可能有重复的元素,所以找出最左侧的最大元素的下标),通过移动数组中的元素,将最大元素移动到最左侧,记录此时的步数。之后找出数组中的最小元素(找出最右侧最小元素的下标),通过移动元素,使最小元素移动到最右侧,记录步数。我的代原创 2021-07-13 14:13:46 · 99 阅读 · 0 评论 -
Codeforces Round #726 (Div. 2) AB题
A. Arithmetic Array题目大意:给出一个长度为n的数组,让你求,你最少要在这个数组里添加几个非负整数,才能使这个数组的平均值为1我的理解:根据我的分析,无非就是先求出数组的和sum,若sum>n,则n-sum就是答案,(因为要使添加的数的个数尽可能少,所以每次都添加0)而当sum<n的时候,只需要添加一个数就可以了我的代码:#include <iostream>#include <algorithm>using namespace std原创 2021-07-10 11:34:55 · 105 阅读 · 0 评论 -
Codeforces Round #730 (Div. 2) AB题
A.Exciting Bets题目大致意思:输入a,b两个数字,你可对a、b同时加1或同时减1,这个操作可以做无数次。之后让你找到a、b最大的最大公约数,和执行操作的最小次数。我的思路:经过推理分析,可以发现两个数的最大的最大公约数就是两个数差的绝对值。关于操作次数这件事,我中间出了好几次错误,应当在a%最大公约数,和最大公约数-a%最大公约数之间取小。还有,注意a,b的范围、数据类型。我的代码:#include <iostream>#include <algorithm原创 2021-07-09 10:58:55 · 152 阅读 · 0 评论 -
Codeforces Round #728 (Div. 2) AB题解
老生常谈,ab两题一般不涉及算法,纯考思维。A Pretty Permutations这题看起来不是很难,但中间我也理解错了一次。题的大意就是有一个数组,其中的元素是从1到n的n个数,之后交换它们的位置,最少交换多少次才能使每一个元素都不在原来的位置,答案需打印出这个重新排列的数组。我当时第一反应是,所有元素后移一位,最后的元素放到第一位,共需要交换2*n-2次,后来我发现,这并不是最少交换次数。答案应当分为两种情况,当n为偶数时,只需要让相邻的两个元素交换位置就好,这样总交换次数就是n而当n为奇原创 2021-07-08 12:19:14 · 118 阅读 · 0 评论 -
Codeforces Round #101 (Div. 2) A、B题解
A - Amusing Joke(菜鸟思路,勿喷)按道理来说吗,这道题应该是一道水题,就是比较两个字符串数组里的元素是否完全一样。但是我当时就一直很迷,从第一个数组开始遍历,如果在第二个数组中找到相同的元素,就删除,最终两个数组的元素都删除为0时,标明这两个字符串数组元素完全相等。结果两个for,时间复杂度太大,中间也出了很多很多问题,硬是两个小时没写出来。后来,我才发现,字符串数组也是可以用sort函数排序的,输入数据,排个序,再判断相等,直接得出结果,或者用map。我看到这个题的解法,整个人直原创 2021-07-05 22:31:06 · 110 阅读 · 0 评论 -
Codeforces Round #716 (Div. 2)
A Perfectly Imperfect Array题目描述题解:这题算是比较简单的一道题.首先说一下完全平方数,其实就是一个开平方之后是一个整数。所谓找到一个子数组,其中所有元素的乘积不是完全平方数,其实简化来说就是原数组中有任意一个元素不是完全平方数就好了。因为一个完全平方数想要乘以一个数变成非完全平方数,那么乘的这个数必是非完全平方数。所以,简单判断一下是否存在某个元素开方后不是整数就好啦~(判断方法有很多鸭,任选一种都可)代码//LMY#include<bits/std原创 2021-04-20 11:51:51 · 194 阅读 · 0 评论 -
Codeforces Round #712 (Div. 2) B - Flip the Bits
//LMY#include<bits/stdc++.h>using namespace std;int main() { int i,t,flag=0,n; int num1,num2; string a,b; cin>>t; while(t--) { num1=0; num2=0; flag=0; cin>>n; cin>>a>>b; for(i=0; i<a.size(); i++) { if原创 2021-04-19 20:52:21 · 99 阅读 · 0 评论 -
Codeforces Round #715 (Div. 2) AB
A题目描述题解:这题比较水,其实就是让奇数相邻,偶数相邻,保证相邻两个数的和尽量是偶数就好了。代码//LMY#include<bits/stdc++.h>using namespace std;int main() { int a[2200],t,i,n; int k=0; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=0; i<n; i++) { scanf("%d",&原创 2021-04-17 13:01:41 · 55 阅读 · 0 评论