CodeForces
Ch_zaqdt
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #642 (Div. 3) D. Constructing the Array(思维、模拟)
题目链接:https://codeforces.com/contest/1353/problem/D 题意是输入一个n,表示有一个长度为n且全为0的数组。现在需要做出n次操作,操作有两种,第一种是先选出一个长度最长的连续的0的区间,如果有多个这样的区间且长度相同,选择最左端的一个区间。第二个操作是,如果该区间的长度为奇数,那么将数组的第(l+r)/2为设为i,如果该区间长度为偶数,将数组的第(l+r-1)/2位设为i。直到n次操作结束,该数组被填满,有且只有唯一的答案,输出该数组。...原创 2020-05-15 01:28:51 · 380 阅读 · 0 评论 -
CodeForces 919B Perfect Number(水题)
原创 2018-02-08 20:58:10 · 390 阅读 · 0 评论 -
CodeForces 919A Supermarket(水题)
英语渣表示不想说话...AC代码:#include <iostream>#include <cstdio>using namespace std;int main(){ int n,m; double price; while(scanf("%d%d",&n,&m)){ double a,b; price = 0...原创 2018-02-08 20:54:02 · 324 阅读 · 0 评论 -
CodeForces 198B Jumping on Walls(bfs || dfs)
这道题纠结了快两天,刚开始因为地图的坐标纠结了好久,题意在下面代码中有,下面就说一下思路,我刚开始用bfs做的,卡在了不知道怎么比较当前位置和水位线的位置,一直不知道怎么记录水平面的位置,然后问了许多dalao,知道了在结构体中加了个step,用于记录走的步数,因为每走一步水位上升一格,所以步数step就相当于水位上升的高度,然后只需要比较step和你当前位置y就行了(只要step&...原创 2018-02-08 15:47:57 · 416 阅读 · 1 评论 -
CodeForces 934A A Compatible Pair
题意 有两个小朋友挑灯笼(亮度),第一个小朋友可能比较抠门,不想挑出来最亮的,所以他会藏一个灯笼,然而第二个小朋友就比较老实了,把最亮的挑出来,然后问他们两个挑出来的灯笼亮度相乘的最大值是多少。思路 暴力大法好,但是当时做完过了以后瞬间被hack,这道题坑点还是挺多的,首先对于英语渣的(比如我),理解题意就是一道坎,还有数据范围很大,所以不开long long就会爆,所以...原创 2018-02-17 22:07:52 · 367 阅读 · 0 评论 -
CodeForces 934B A Prosperous Lot(水题)
题意就是从0-9这10个阿拉伯数字里找圈,比如0,4,6,8,9这五个数都是有圈的,其中8有两个圈,这道题就是输入一个数n,让你输出一个含有n个圈的数,当然这个数是随机的,当时没有理解题意,纠结了半天。还有就是如果没有这个数的话就输出-1,因为题目给了范围,说输出的数要小于10的18次方,所以说当n等于36的时候你最少要输出18个8,所以大于36的数就超过了数据范围,所以判断一下就好了...原创 2018-02-17 22:19:53 · 313 阅读 · 0 评论 -
CodeForces 932A Palindromic Supersequence
题意是让找回文串,输入的如果是回文串,可以直接输出,如果不是回文串,就把它改成回文串,输出的回文串没有特定的要求,所以我们可以想到直接把输入的字符串倒着再输出一遍就好了,比如输入abc,输出abccba。写法可以直接先输出一遍,然后再倒着输出一遍,当然也可以用reverse函数(字符串反转)。AC代码:#include <iostream>#include <al...原创 2018-02-19 15:28:02 · 334 阅读 · 0 评论 -
CodeForces 938A Word Correction
题意是输入长度为n的字符串,如果'a''e''i''o''u''y'这些字母中有两个是相连的,就删除后面的那一个,然后输出最后的结果。我的思路就是开一个标记数组,先把这六个字母标记出来,然后再遍历一遍,把相连的字母的后一个再另外标记一下,然后输出结果。后来看了别人的代码,感觉更简练,值得学习。AC代码:#include <iostream>#include <cst...原创 2018-02-19 18:29:38 · 237 阅读 · 0 评论 -
CodeForces 469A Left-handers, Right-handers and Ambidexters
题意是有l个左撇子,r个右撇子,a个左右都可以的,然后要挑选相同的左撇子和右撇子的人组队,问最多可以选多少个人。AC代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;int main(){ int l,r,a; scanf("...原创 2018-03-09 22:28:16 · 298 阅读 · 0 评论 -
CodeForces 469B Intercepted Message
题意是给两组数,求两组数a[],b[]中分别任意相加两个或者几个数的值相等的有多少个AC代码:#include <bits/stdc++.h>using namespace std;const int MAXN = 1000005;int a[MAXN],b[MAXN];int sum1,sum2;int cnt,n,m;int main(){ sc...原创 2018-03-09 23:10:22 · 414 阅读 · 0 评论 -
CodeForces 940A Points on the line
题意:给两个数n和d,然后输入n个数,问最少要删掉几个数才能让剩下的n个数的任意两个数相差不大于dAC代码:#include <iostream>#include <cstdio>#include <algorithm>#define MAXN 105#define MAX(a,b) a>b?a:busing namespace s...原创 2018-02-25 10:56:27 · 298 阅读 · 0 评论 -
CodeForces 940B Our Tanya is Crying Out Loud
题意:输入四个数n,k,a,b,然后有一个x刚开始等于n,然后有两种情况,如果x-=1的话需要花费a,如果x/=k的话需要花费b,问当x减到1的时候最少需要花费多少。AC代码:#include <iostream>#include <cstdio>#define MIN(a,b) a>b?b:a#define MAX(a,b) a>b?a:b#defin...原创 2018-02-25 11:24:26 · 412 阅读 · 0 评论 -
CodeForces 954A Diagonal Walking
题意是给一个长度为n的字符串,然后要缩短这个字符串,字符串中UR或者RU的长度可以缩为1,求最短长度。AC代码:#include <iostream>#include <cstring>#include <cstdio>using namespace std;int main(){ int n; char str[105]; ...原创 2018-03-22 21:35:49 · 337 阅读 · 0 评论 -
CodeForces 954B String Typing
题意是给一个字符串,可以复制某一段字符,问最少需要多少步能将其输出,比如abcabcd,先输入abc然后再赋值abc再输入d就只需要5步。 这里需要用到substr函数,这是一个字符串截取函数,substr(a,b),相当于在a位置开始截取b个字符。AC代码:#include <iostream>#include <cstring>#include...原创 2018-03-24 19:32:48 · 424 阅读 · 0 评论 -
CodeForces 957A Tritonic Iridescence
题意是给一个长度为n的字符串,如果有两个相邻的字符相等就输出No,把字符串中的?改成CMY,如果有两种及两种以上的改法就输出Yes。AC代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;char str[1005];int n;int...原创 2018-03-25 23:57:02 · 612 阅读 · 0 评论 -
CodeForces 242C King's Path(bfs+map)
题意就是走地图,输入起点终点,然后输入某行的某些点可以走,然后问你最后能不能走到终点,能的话输出最少步数。仔细读一下题会发现地图的范围太大了,用二维数组肯定是存不下的,所以我们需要换种方法去存图,可以用结构体去存,这里我用的是map和pair,具体过程看代码吧。AC代码:#include <iostream>#include <cstdio>#include...原创 2018-02-21 16:39:03 · 238 阅读 · 0 评论 -
CodeForces April Fools Contest 2018
愚人节的题确实挺愚人的...A. Quirky QuantifiersAC代码:#include <iostream>#include <cstdio>#include <cstring>using namespace st...原创 2018-04-02 11:14:14 · 795 阅读 · 0 评论 -
CodeForces 962A Equator
题意就是让你找n个数的总和的一半在第几个位置。AC代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;int pre[200005];int main(){ int n; cin>>n; pre[0] = 0...原创 2018-04-11 11:04:06 · 226 阅读 · 0 评论 -
CodeForces 962B Students in Railway Carriage
题意是输入n,a,b,表示有n个字符,a个A,b个B,字符串中'.'表示空位,A B不能相连,问最多能放多少个A和B。AC代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n,a,b;char str[200005];...原创 2018-04-11 11:06:44 · 753 阅读 · 0 评论 -
CodeForces 962C Make a Square
题意是给你一个数字,然后问最少删掉几个数字能让这个数字变成一个完全平方数。可以枚举1-n的值的平方,然后转成字符串去操作。AC代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n,num1,num2;string str1,st...原创 2018-04-11 11:09:06 · 324 阅读 · 0 评论 -
CodeForces 964A Splits
题意是给你个数字n,然后整数划分,以每个子序列中最大的元素的个数为权值,然后求最多有多少情况。AC代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;int main(){ int n; cin>>n; cout&...原创 2018-04-18 13:13:08 · 244 阅读 · 0 评论 -
CodeForces 907B Tic-Tac-Toe
题目链接:http://codeforces.com/problemset/problem/907/B 题意是给你一个9*9的棋盘,这个大棋盘分成了9个3*3的小棋盘,然后输入这个9*9的棋盘,然后输入x,y,看这个x,y在小棋盘中的位置,然后对大棋盘的对应的位置进行操作。看下图。 如果x,y对应的坐标为A的...原创 2018-04-06 17:36:52 · 217 阅读 · 0 评论 -
CodeForces 967A Mind the Gap(水题)
题意是先输入n和s,然后有n个操作,这n个操作表示每架飞机的降落时间,然后现在需要安排一架飞机起飞,要求是和每架降落的飞机的时间相差最少为s+1,问最早能安排到几点起飞。思路就是找任意两个降落时间相加大于2*s+2就好了。AC代码:#include <iostream>#include <cstdio>#include <cstring>us...原创 2018-05-03 16:05:30 · 224 阅读 · 0 评论 -
CodeForces 967B Watering System
题意就是输入n,A,B,然后有n个数,然后求pre[0] * A / sum的值是否大于等于B,如果小于B的话,需要在pre数组里减去一个数,直到所求的值大于等于B,问最少需要减掉多少个数。思路就是让pre数组里的第一个数不动,然后对后面的数sort一下,因为减掉的数越小,所求的值越大。然后sum一直更新和就好了。AC代码:#include <iostream>#inc...原创 2018-05-03 16:23:09 · 213 阅读 · 0 评论 -
CodeForces 976A Minimum Binary Number(水题)
题意就是给你一个n位的只含有01的数,然后可以交换相邻两个数的位置,如果有两个1连着可以消去一个1,然后问消到最后能得到的最小值为多少。 我们很容易发现,如果这个数不是0的话,最后就只剩下了开头的第一个1,剩下的都会被消掉,所以我们只需要输出一个1,然后后面有几个0就输出几个0就好了。AC代码:#include <iostream>#include <cstdio...原创 2018-05-03 17:13:27 · 166 阅读 · 0 评论 -
CodeForces 976B Lara Croft and the New Game(模拟)
题意就是给你一个n*m的矩阵,然后一个人从左上角往下走到头,然后再往右走到头,然后蛇形往上走,问第k步,这个人的坐标是多少。思路就是我们需要分情况讨论,一是k<n的情况,二是人走到最下边的情况,然后就是蛇形的情况。AC代码:#include<iostream>#include <cstdio>#include <cstring>#def...原创 2018-05-03 17:30:31 · 287 阅读 · 0 评论 -
CodeForces 985A.Chess Placing(水题)
题意是有一个1*n的棋盘,黑白相间的,然后输入n/2个棋子的位置,每个棋子一次只能向左向右移动一格,问最少需要几步才能让所有棋子在同一个颜色的棋盘上。思路很简单,奇数扫一遍,偶数扫一遍就好了。AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <string>...原创 2018-05-22 23:02:35 · 231 阅读 · 0 评论 -
CodeForces 985B.Switches and Lamps(暴力)
题意是给了n个开关,m个灯泡,接下来n行是输入长度为m的01串,第i个为0就说明这个开关不能控制第i个灯,为1就可以控制,问删除一个开关后能不能控制所有的灯。其实就是一个暴力,把每个开关都删一遍试试。我也没看别人的代码,可能我这个写的挺麻烦的。AC代码:#include <iostream>#include <cstdio>#include <cstring>...原创 2018-05-22 23:08:51 · 217 阅读 · 1 评论 -
CodeForces 981A. Antipalindrome(水题)
题意是给你一个字符串,然后从后往前依次删除一个字符,直到这个字符串不是回文串位置,然后求出这个最长的不是回文串的长度。思路就是如果给你的字符串不是一个回文串的话,那就不需要删除,直接输出这个长度就好了,因为这就是最长的不是回文的字符串。如果给你的是一个回文串的话,那么只需要删除一个字符就可以让这个字符串变成不是回文的,所以输出len-1就好了。还有就是像样例3一样的情况,直接输出0。AC代码:#i...原创 2018-05-29 10:46:54 · 302 阅读 · 0 评论 -
CodeForces 981B. Businessmen Problems(map)
题意是有A,B两组数据,然后依次输入A,B两组数据,第一个数据代表编号,第二个数据代表价值,然后问从A,B两组数据中选出编号不同的值,使得最终的价值最大。思路:刚开始想到用数组标记,但是没看到数据范围,然后就Runtime error了,1e9肯定开不下,然后我就想到了用结构体去标记,然后时间应该是n^2,然后果然TLE了,后来想了半天试了下用map标记,然后就过了,还是做题太少。。AC代码:#i...原创 2018-05-29 10:53:47 · 261 阅读 · 0 评论 -
CodeForces 981C Useful Decomposition(思维)
题意是题目给了一个树,让把这个树拆成多条链,任意两条链必须要有交点,如果可以的话就输出链的个数以及每条链的两个端点,否则就输出No。思路就是开两个数组去存度数,如果有一个点的度数>2的话,就说明这个点是一个交点,但是如果存在有两个及以上的点>2的话,那么肯定是不能拆的,直接输出No就好了,否则就是Yes。其实仔细想一想就可以发现,只有样例1和3才能是Yes,也就是要么本身就是一条链,要...原创 2018-05-30 09:01:54 · 193 阅读 · 0 评论 -
CodeForces 999A Mishka and Contest(水题)
题意:给一个n和m,然后输入n个数,依次从最左端或者最右端删除掉小于等于m的数直到删不了为止,输出删除掉数字的个数。 这个就先从左边判断,再从右边判断就好了。AC代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n,m;in...原创 2018-06-22 18:04:33 · 217 阅读 · 0 评论 -
CodeForces 999B Reversing Encryption(字符串反转)
题意:给一个数字n然后输入长度为n的字符串,然后求出n的因子,用因子对字符串进行反转操作,比如因子为1就反转前两个字符。 这道题题意不太好理解,实现的话如果会用reverse函数的话就很好写了。AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <a...原创 2018-06-22 18:08:12 · 244 阅读 · 0 评论 -
CodeForces 999C Alphabetic Removals(思维)
题意:给了n和m,然后输入一个长度为n的字符串,然后有m次操作,从字符串中依次按abcd...的顺序删除字符,最后输出m次操作后的字符串。 感觉写法十分巧妙,用两个for循环,外面的循环用来标记26个英文字母,里面的循环用来遍历字符串,然后就是按照题意那样删除字符了。AC代码:#include <iostream>#include <cstdio>#i...原创 2018-06-22 18:13:43 · 510 阅读 · 0 评论 -
Educational Codeforces Round 47 (Rated for Div. 2) A.Game Shopping(水题)
题目链接:http://codeforces.com/contest/1009/problem/A 题意是有n个物品,然后你的钱包里有m张钱,然后按顺序用你钱包里的钱去按顺序买物品,买不起的话就看下一个物品,问最后能买多少个物品。AC代码:#include <iostream>#include <cstdio>#include <cstring>...原创 2018-07-16 11:56:14 · 233 阅读 · 0 评论 -
Educational Codeforces Round 47 (Rated for Div. 2) B.Minimum Ternary String(思维)
题目链接:http://codeforces.com/contest/1009/problem/B 题意是给了只含有0,1,2的字符串,然后可以给字符换位置,0可以和1换位,1可以和2换位,但是0和2不能换位置,最后让你输出字典序最小的字符串。 思路是因为1能和0换位置,也能和2换位置,所有1可以移到所有2的前面,而在第一个2之前的0都可以移到最左边,所以按照这一点我们可以...原创 2018-07-16 12:04:31 · 137 阅读 · 0 评论 -
Codeforces Round #496 (Div. 3) A.Tanya and Stairways(水题)
题目链接:http://codeforces.com/contest/1005/problem/A 题意是有n个数,这n个数里有好多个从1开始的依次加1的递增的数列,问有多少个这样的递增的数列,并输出每个数列所递增的最大值...思路就是暴力模拟,因为其中1的个数就是里面递增序列的个数,所以我们只需要统计1的个数和标记1的位置,然后遍历将1前面的那个数输出就好了。AC代码:#includ...原创 2018-07-10 10:39:53 · 144 阅读 · 0 评论 -
Codeforces Round #496 (Div. 3) B.Delete from the Left(思维)
题目链接:http://codeforces.com/contest/1005/problem/B 题意是给你两个字符串,对两个字符串进行删除操作,只能从最左端一个一个删,然后问一共需要删多少个能使两个字符串相同。 思路就是因为删除操作是从最左端开始删除的,所以我们倒着比较,如果两个字符串的最右端的字符不相等的话,那么就只能将两个字符串全部都删除才符合操作。如果从最右端开始...原创 2018-07-10 10:47:53 · 219 阅读 · 0 评论 -
Codeforces Round #496 (Div. 3) C. Summarize to the Power of Two(思维+map)
题目链接:http://codeforces.com/contest/1005/problem/C 题意是给你n个数,判断这n个数中是否存在有a[i]+a[j]等于2的任意次方,如果不存在a[j]满足上述条件就删除a[i]这个数,问需要删除多少个数字。 思路:因为数据范围是120000,所以n*n是过不了的,然后我试着优化到了n*logn,还是t了。最后ac的方法的时间复杂...原创 2018-07-10 11:01:00 · 273 阅读 · 0 评论 -
Codeforces Round #496 (Div. 3) D.Polycarp and Div 3(贪心?模拟?)
题目链接:http://codeforces.com/contest/1005/problem/D 题意是给一个数n,然后将这个数分成若干部分,每个部分的数不超过3位(当时就是没看到这句),问最多有多少个部分的数可以%3==0。 思路就是模拟吧,用sum记录每个部分的各个数字的和,num记录每个部分的位数,符合条件就ans++;感觉不是很难....AC代码:#includ...原创 2018-07-10 11:07:27 · 221 阅读 · 0 评论