
题解集
放一些平时训练赛题目的题解。
提莫队长丶
这个作者很懒,什么都没留下…
展开
-
Educational Codeforces Round 114 (Rated for Div. 2)
C. Slay the Dragon题目地址:https://codeforces.com/contest/1574/problem/C题意:有n个英雄每个英雄的战力为ai,面对防御力为x攻击力为y的恶龙,要求派一英雄去击杀恶龙(战力大于等于x即可击杀),剩下的英雄抵御恶龙攻击(剩下所有人的战力大于等于y才能防御成功),你可以随意增加每个英雄的战力,问最少要增加多少战力才能击杀并抵御恶龙。思路:...原创 2021-09-22 20:51:32 · 143 阅读 · 0 评论 -
Codeforces Round #734 (Div. 3)
Codeforces Round #734 (Div. 3)题目地址题目大意:对一串数字长度为n的数字用k种颜色进行染色,需要满足以下条件1.相等的数字不能有相同颜色。2.每种颜色要使用相同次数,有的数字可以不染色2.使用颜色尽可能的多。思路:对每个数字出现的次数进行计数,如果数字出现的次数小于k就记录该数字的下标最后取k的整数倍个数字进行染色,其他元素不染色,在计数前先进行排序这样出现次数大于等于k的数字就可以保证染成不同颜色。代码:#include<bits/stdc++.h>原创 2021-07-24 19:50:33 · 122 阅读 · 0 评论 -
2021-05-29
Codeforces Round #723 (Div. 2)B. I Hate 1111题目地址:https://codeforces.com/contest/1526/problem/B题目大意:给你一个数x,问这个x能不能由11,111,1111 … 111111111…中任意个数组成?如144=111+11+11+11。思路:首先我们可以发现1111=1110+11,11111=11100+11,111111=1111100+11,所以题目转变成x能否由若干个11和111组成,由此可以列出原创 2021-05-29 17:59:54 · 170 阅读 · 0 评论 -
2021-05-29
牛客小白月赛34A-dd爱科学1.0题目大意:给一个全部为大写字母的字符串,可以将字符串中的任一个字符改为A~Z中任一个字符,问最少需要修改多少次可以将字符串变成非递减的列。思路:其实就是一个求最大上升子序列的题,只要将字符串的最大非递减子序列求出用字符串的长度减去最大非递减子序列的长度即可,比赛时怎么就没想到呢?。代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cma原创 2021-05-29 12:49:35 · 214 阅读 · 0 评论 -
2021-05-11
中国象棋中的跳马问题题目地址:http://acm.ticknet.hnust.cn/problem.php?cid=2286&pid=4题目大意:在一个有障碍物(限制马的行动)的棋盘中,给出马的起始位置和最终位置现要求出马是否能到达最终位置,若能到达最终位置就输出最少的步数。思路:使用bfs即可。贴出两个错误代码一个正确代码。错误1:#include <iostream>#include<queue>#include<cstdio>#includ原创 2021-05-11 16:05:47 · 485 阅读 · 0 评论 -
2021-05-09
Codeforces Round #720 (Div. 2)比赛地址:https://codeforces.com/contest/1521A. Nastia and Nearly Good Numbers题目大意:给出两个整数a和b,要求找出三个数x,y,z其中x和y只能被a整除z可以被a*b整除,并且x+y等于z思路:题目较简单直接构造,令x=a*(b-1),y=a*(b+1),z=2ab稳过特判一下b等于1时不行。代码:#include <iostream>using na.原创 2021-05-09 09:01:48 · 142 阅读 · 0 评论 -
2021-05-07
Codeforces Round #719 (Div. 3)比赛地址:https://codeforces.com/contest/1520A. Do Not Be Distracted!题目大意:给你一个字符串相同字符是不是紧挨在一起,如果是就输出YES否则输出NO思路:用一个vit数组来记录某个字符是不是第一次出现如果第一次出现显然没有问题,如果不是第一次出现就看它和前面的字符是否相等,如果相等那也没问题,否则就输出NO代码:#include <iostream>#inclu.原创 2021-05-07 13:20:50 · 135 阅读 · 0 评论 -
2021-05-04
第一届河北工业大学程序设计竞赛校赛比赛地址:https://ac.nowcoder.com/acm/contest/15703?from=acm_calendarB-POOLING题目大意:再一个nm的矩阵中用一个kk的矩阵窗口依次从左到右从上到下移动窗口,每次移动窗口记录这个窗口中最大值,构建出一个新的矩阵。思路:数据不大暴力解决,可以用四重循环也可也写个函数,个人觉得写个函数更美。代码:#include <iostream>#include<cstdio>#inc原创 2021-05-04 16:49:33 · 109 阅读 · 0 评论 -
2021-05-04
Codeforces Global Round 14C. Phoenix and Towers比赛地址:https://codeforces.com/contest/1515/problem/C题目大意:给你n个高度不大于x的方块,先要求你用这些方块来建m栋楼,问能不能使这m栋楼任意两栋的高度相差不超过x,如果可以就输出YES和你的方案,否则输出NO思路:这题很容易想到贪心,每次将木块放到最低的楼一定可以,因为放在最低的楼上任意两栋楼高度差一定不会超过x,所以本题一定有解。代码:#include原创 2021-05-04 10:54:26 · 105 阅读 · 0 评论 -
2021-05-03
Codeforces Global Round 1#4A. Phoenix and Gold比赛地址:https://codeforces.com/contest/1515/problem/A题目大意:给你一组数你可以随意打乱它们的顺序,如果可以使所有前缀和都不等于指定的数k就输出yes和打乱顺序后的数,否则打印no思路:题目保证了没有相同的数省了很多事,所以只有这些数的和为k时不满足,其他情况我们从头依次累加如果发现和等于k,就将最后进行累加的数与它后面一个交换就行了。代码:#include原创 2021-05-03 10:11:12 · 114 阅读 · 0 评论 -
2021-04-30
Educational Codeforces Round 108 (Rated for Div. 2)C. Berland Regional题目大意:首先给出一组数表示学校的编号,再给出一组数为对应学校选手的能力,然后给出整数k,一个学校每组成组成k人队伍,就派出这支队伍,能组成多支就派出多支队伍,当不足k人时就不派出队伍,然后各个学校所派出队伍的能力之和就表示该地区的能力,现要我们求出k为1~n时该地区该地区的最大能力各是多少?思路:显然每个学校派出的队伍中的选手都时该学校中最强的,最先想到的可能就原创 2021-04-30 22:02:42 · 139 阅读 · 1 评论 -
2021-04-27
Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2)C. Fillomino 2题目大意:有一个n*n的方阵,给你n个大小为1~n的数问能不能构建一个下三角矩阵时期大小相同的数是联通的,且每种数的个数等于这个数的大小,如果可以就输出构建的下三角矩阵,不能就输出-1(通过证明一定可以,所以这种情况实际不存在)思路:贪心策略,只要能向左就向左,不能就向下,进行模拟之后就一定能构造出来。代码:#include <iostream>原创 2021-04-27 16:41:27 · 113 阅读 · 0 评论 -
2021-04-27
Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2)B. Morning Jogging题目大意:有一个n*m的矩阵,矩阵中同行的元素可以任意互换位置,经过变换后求矩阵每列中最小的元素之和最小的矩阵,可能有多种情况。思路:根据题意我们需要找到最小的m个元素,然后将其放在不同列中,所以可以把矩阵中元素放到一维数组中进行排序,而在一维数组中最小的m个都恰好有自己的位置0~n-1,刚好可以把这些元素放到对应的列中就好了,所以我们依次取出一维数组中最原创 2021-04-27 15:57:33 · 96 阅读 · 0 评论 -
2021-04-26
AtCoder Beginner Contest 199C - IPFL比赛地址:https://atcoder.jp/contests/abc199/tasks/abc199_c题目大意:给一个长度为2*n的字符串,然后对字符串进行q次操作,每次操作无非两种,操作1是将字符串的前n个字符整体移到后n个字符后面,操作2是交换指定位置的字符,最后输出操作后的字符串。思路:如果按照平常思路进行模拟,进行操作2还没什么,但进行操作1的时候时间复杂度达到了O(n)在题目所给数据下肯定会超时,我们不难发现操作原创 2021-04-26 22:13:52 · 231 阅读 · 0 评论 -
2021-04-24
Codeforces Round #716 (Div. 2)比赛地址:https://codeforces.com/contest/1514/problem/B题目大意:求n个k位二进制数构成的序列有多少个,这种序列需要满足1:这n个二进制数按位与都是0,2:这n个k位二进制的和尽可能的大。思路:对于n 个数的每一个位,显然都需要至少有一个为0 ,这样按位与之后才等于0;因为要求序列和尽可能大,因此每一位上应恰好只有一个0 时是最大的,所以对于k 个位,任选一位为0有n种选择然后一共有k个位,所以答案原创 2021-04-24 17:59:09 · 72 阅读 · 0 评论 -
2021-04-24
Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2)A. Sum of 2050比赛地址:https://codeforces.com/contest/1517/problem/A题目大意;定义一种数"2050数"这种数等于2050*10^k,k可以取任何大于等于0的数,现给一个数问这个数能不能由若干个"2050数"组成,如果可以就输出所需最少的"2050数",否则输出-1思路:如果一个数可以由"2050数"组成那么一定是2050的整数倍,原创 2021-04-24 16:40:45 · 150 阅读 · 0 评论 -
2021-04-23
数据结构(树)题目地址:http://acm.ticknet.hnust.cn/status.php?user_id=2005060214&cid=2276题目大意:给出两个序列,一个为树的前序遍历,一个为树的中序遍历,要求跟据前序遍历和中序遍历构建一棵树,然后通过后序遍历输出这颗树。思路:前序遍历:先访问根节点,然后前序遍历左子树,再前序遍历右子树。中序遍历:中序遍历根节点的左子树,然后是访问根节点,最后中序遍历右子树。因为二叉树的前序遍历序列一定是该树的根节点,而中序遍历序列中根节点前原创 2021-04-23 21:42:04 · 164 阅读 · 0 评论 -
2021-04-18
牛客小白月赛33比赛地址:https://ac.nowcoder.com/acm/contest/11210?from=acm_calendarA-字符统计题目大意:给一个一段字符统计这段字符有多少行 多少单词 和多少字符思路:输入采用一行一行输入,这样多少行就统计出来了,统计单词可以设一个标志位以空格或换行符为准统计个数,字符可以直接用函数计算代码:#include<bits/stdc++.h>using namespace std;int main(){ int t原创 2021-04-18 22:42:06 · 155 阅读 · 0 评论 -
2021-04-17
Codeforces Round #715 (Div. 2)B. TMT Document比赛地址:https://codeforces.com/contest/1509/problem/B题目大意:给你一串由T和M构成的序列,问可不可以将这些序列三个分成三个一组的字串,这些字串都是TMT,并且一个字符只能属于一个子串,如果刻意就输出YES否则输出NO。思路:题目已经保证了字符串的长度整除3,我们从M入手如果M要形成TMT,那么M前面就一定有T,不然就没有T与M形成TMT字串,所以我们遍历字符串,统原创 2021-04-17 10:19:21 · 156 阅读 · 0 评论 -
2021-04-16
Codeforces Round #713 (Div. 3)D. Corrupted Array比赛地址:https://codeforces.com/contest/1512/problem/D题目大意:给你一组数这组数数的个数为n+2,问这组数可不可以由另一组数通过添加两个数的到,添加的两个数分别为a,b。a为零一组数的和,b为一个随机数,如果可以由另一组数得到就输出那一组数,如果无法由另一组数得到就输出-1.思路:思路比较简单,很明显将给你的这组数求和,它一定使2*a+b,然后分析b,它有两种原创 2021-04-16 20:01:08 · 70 阅读 · 0 评论 -
2021-04-14
#codeforce A. Spy Detected!比赛赛地址:https://codeforces.com/contest/1512/problem/A题目大意:给你一组数其中有一个与其他的数不同,要求输出这个不同的数的位置思路:方法有很多第一种:先看前三个数,找出出现次数最多的那个数x,然后遍历数组只要发现与x不同就输出它的地址第二种方法:多开一个数组用于统计某个数出现的次数,输出只出现一次的那个数的地址第三种方法:就是利用a[0]这个位置为空的,将a[0]和a[n+1]分别赋值为a[n原创 2021-04-14 12:43:50 · 111 阅读 · 0 评论 -
2021-04-13
#pat天梯赛 L1-046 整除光棍题目地址:https://pintia.cn/problem-sets/994805046380707840/problems/994805084284633088题目大意:一个全部由1组成的数叫做光棍数,可以证明任何一个末尾不是5的奇数都可以被光棍数整除,现在给你一个数x要你求出可以整除x的最小的一个光棍数,并输出商和光棍数的位数思路:由于x范围较大,可能会使光棍数非常大,甚至超出了long long 的范围,所以如果按照朴素的思路不断构造由1构成的数,并记录位原创 2021-04-13 23:35:30 · 85 阅读 · 0 评论 -
2021-04-10
牛客练习赛80比赛地址:https://ac.nowcoder.com/acm/contest/11170/A题目大意:给一个有01构成的串,你可以对该串进行一次操作——对任意一个位置的字符进行反转,也就是把1变成0把0变成1,最后输出该串最少有多少连在一起的全部由1组成的字串思路;要求由连续的1组成的字串的数量很简单,扫描一遍就可以了,这里有个小技巧,就是在字符串的最前面加一个0这样只要有arr[i]==0&&arr[i+1]==1就加一,然后考虑到有可能反转一个字符后会造成数量减一原创 2021-04-10 10:54:10 · 212 阅读 · 0 评论 -
2021-04-10
牛客练习赛80比赛地址:https://ac.nowcoder.com/acm/contest/11170/B题目大意:给出数列a和b按照公式求出c序列即可,说一下mex,比如s是一个集合,那么mexs的值就等于集合s中未出现的最小自然数。思路:当mex{j,k}=i中的i等于0的时候显然j和k可以取任意的大于0的自然数,那么c0=(a1+a2+…+an-1)(b1+b2+…+bn-1)当mex{j,k}=i中i等于1的时候,则aj或bk中必须有一个的下标为0,简单分析一下可以得出c1=a0(b原创 2021-04-10 10:21:53 · 76 阅读 · 0 评论 -
2021-04-06
洛谷P1118 [USACO06FEB]Backward Digit Sums G/S习题地址:https://www.luogu.com.cn/problem/P1118题目大意:给你一个n和一个sum,要求出1~n的字典序最小的一个全排列,使其如图进行相加求和到只剩一个数,如果最后这个数等于sum则输出这个全排列,否则什么也不输出,思路:我们举例相加,显然发现最后剩下的一个数前面的系数有点眼熟,不就是杨辉三角形的某一行吗,也就是杨辉三角形第n-1行的系数,所以我们可以写个dfs将1~n的全排列从原创 2021-04-06 12:52:35 · 141 阅读 · 0 评论 -
2021-04-05
题目链接:https://codeforces.com/contest/1504/problem/B题目大意:给两个长度相等由01构成的字符串a和b问能不能将a的前缀通过有限次特定变化把a变成b,(特定的变化为0变成1,1变成0).思路:如果没有限制条件前缀的0和1的数量必须相等,那一定可以通过不断的变化将a变成b,但要求0和1的数量必须相等,所以只需要找出由哪些地方一定要的前缀一定要发生变化,并判断该处前缀的0和1的数量是否相等即可,因为整体前缀变化就意味着相邻的两个字符的相对关系是一直保持不变的,原原创 2021-04-05 22:30:00 · 78 阅读 · 0 评论 -
2021-04-05
2021-03-10 20:05比赛链接 https://codeforces.com/contest/1496A. Split it!题目大意:问能否将长度为n的字符串s,划分成为2k+1个小字符串,要求前k个字符串与倒数k个字串对称,小字符串的长度可以为任意大小,如样例1:5 1 qwqwq可以是qw q wq也可以是q wqw q。思路:依次比较首尾字符,一直比到第k+1个字符,看是否全部相同,如果有一个不相等则输入NO,如果全部相等就输出YES,需要注意字符串为偶数的情况,如样例7原创 2021-04-05 16:54:45 · 83 阅读 · 0 评论 -
2021-04-05
比赛链接:https://codeforces.com/contest/1504/problem/A题目:A. Déjà Vu题目大意:给一个由小写字母构成的字符串问能否在字符串的某个位置添加一个a使其不构成回文串?如果不可以就输出NO,否则输出YES和添加a之后的字符串,添加的方法可能有多种,要求输出一种即可思路:给你一个字符串无非有两种情况,1就是给你的字符串是一个回文串,如果这个回文串全部由a构成,那么显然输出NO。否则在第一个位置添加一个a一定可以使其不构成回文串,简单证明一下:看字符串长度为原创 2021-04-05 17:18:20 · 88 阅读 · 0 评论