- 博客(41)
- 收藏
- 关注
原创 【2022年第十三届蓝桥杯C/C++ C组国赛】 个人题解
数据范围a小于1e6,打表发现最少31项就超过了1e6,也就是说只需要枚举前30项就行了,后面的必须改。把a中不是g的倍数标记为1,否则为0,则问题转化为求区间和小于等于1的区间个数。其二:找规律,打表发现有循环,数一下是60,每60个里有8个满足题目的数。如果一个区间内都是g的倍数,那么随便改一个为g,近似GCD为g。如果有一个不为g的倍数,那么把这个数改成g,近似GCD为g。100分(别忘了开long long)其一:枚举左右端点+前缀和优化。其二:枚举左端点,二分找右端点。其一:暴力枚举(太慢了)
2023-05-30 22:56:33
824
原创 【Codeforces】 Codeforces Round 873 (Div. 2) (ABC)(+63!!!)
离正确位置的距离,题目让我们求使用最大的移动步数移动全部到正确的位置,那么这个最大移动距离的既是所有。的个数,那么从从第一个数开始我们有。我们定义数组c为a数组中严格大于。很明显第二个式子满足题目条件。个数可以选,接下来是选。
2023-05-15 08:53:28
238
原创 【Codeforces】Educational Codeforces Round 148 (Rated for Div. 2) (ABC)(+13!)
将数组排序后,发现两种操作分别是删去左右两端的数(操作顺序不影响),于是我们可以枚举其中一种操作的次数,并使用前缀和优化,不断更新答案即可。找规律,对于递增或者递减的一段序列,其对比度(the contrast of the array)即为最两端的元素的对比度,我们只要求给定数组种这样的序列有多少个即可,另外对于对比度为0的序列需要特判。有两种时,当其中一种只有一个的时候(比如aabaa),不能,反之则可以。很明显如果回文串由大于2种字符构成,一定能重组成不同的回文串;当只有1种组成,很明显不能;
2023-05-14 16:13:43
259
原创 【Codeforces】Codeforces Round 872 (Div. 2) (ABC) (-38!)
第一点可以确定左上角要么是最大,要么是最小,为了使差值最大,那么次小或者次大就应该放在左上角的相邻格,两个相邻格中还得判断n和m的大小。暴力打表找规律,发现当字符串中只由1种构成就为-1,其他为字符串长度-1。的情况存起来,用前后缀数组表示左和右的空位,再判断即可。当然也可以不用求前后缀,但是得排序。对于第三种情况,用哈希把。
2023-05-09 10:56:02
323
原创 【Codeforces】Codeforces Round 834 (Div. 3) (ABCDE)(补赛)
考虑贪心,首先肯定从小的开始,那么先把a排序,但是不知道怎么喝药才最优,因为数据量比较小,可以dfs搜索出最优解。10的因子有5和2,记录n因子2和5的个数,那么当cnt2和cnt5相等时,尽可能使0最大。先找出最大的数,把没出现的数减去,再延长排列,最后看s是否符合条件。
2023-05-08 16:56:37
78
原创 【Codeforces】Codeforces Round 835 (Div. 4) (ABCDEF)(补赛)
发现有单调性,直接二分(注意check函数的写法)考虑前后缀,对于每个位置的变化,记录最大值。贪心,直接排序,第一个特判。不断更新出现最大的字母。
2023-05-08 16:46:45
75
原创 【Codeforces】Codeforces Round 839 (Div. 3) (ABCD) (补赛)
求差分数组,使数字种类最多,我们先尽可能使差分数字最多,那么直接构造差分1,2,3,4,...分类讨论求x的范围区间。
2023-05-07 14:17:10
83
原创 【Codeforces】Codeforces Round 847 (Div. 3) (ABCDE) (补赛)
贪心:首先可以确定第一个和最后一个数,接着找不存在最后一个的数的数列,那么直接确定中间的数。使用哈希表,统计数字出现的次数,每一轮从前往后将连续的自然数计数-1,答案就是轮数。贪心:s-r就是最大的点数,安置在最后一个,前面的骰子只要一点点累加到r即可。暴力模拟发现,x为奇数一定为-1,如果有解的话,一定存在一组解。, 所以如果x为偶数,就假设答案为a,b再验证即可。
2023-05-07 12:46:46
67
原创 【Codeforces】Codeforces Round 855 (Div. 3) (ABCDE) (补赛)
找规律,发现只有特定的位置可以互换,对于不能互换的位置,如果不相等,那么就是NO了。贪心:统计每一种字母的大小写的数量,如果两者差值大于1,说明还可以消耗次数。个种最大的,可以用优先队列实现。贪心:每次遇到0,就取前。
2023-05-05 18:47:00
89
原创 【Codeforces】Codeforces Round 856 (Div. 2) (ABC)(补赛)
第一个数肯定是1,对于题目给的式子,有一个方法可以构造,因为题目给的是递增的序列,可以往前找第一个贡献小于1的数的下标,可以用二分(标答),我莫名其妙过了。如果字符串是回文,那么相同长度的前后缀应该是反转后向等的。即可(除了1以外,所以得提前把1预处理一下)
2023-05-05 16:18:48
66
原创 【2023年第十四届蓝桥杯C/C++ A组省赛】个人题解
既是2的倍数但又不是4的倍数的数,那么不满足的个数为区间内2的倍数减去4的倍数,思路2:因为是偶数,可以折半枚举,快多了,但是不能在1s内跑出来。解题思路1:暴力枚举每个平方的差值,然后从左到右扫(40分),那么直接扫一遍,把不满足的数筛走即可,但是不能过极限数据(解题思路3:因为有规律,其实只用找出两端不满足的数的下标。思路1:枚举1到100000000,跑的比较慢。思路1:暴力搜索,比较慢,得跑几秒才能有答案。解题思路2:暴力模拟发现,不满足的数符合。的数的个数,已经可以在1s内跑出来了。
2023-05-01 00:33:33
2777
原创 【Codeforces】Codeforces Round 860 (Div. 2) (ABC)(补赛)
每次记录最晚出现的天数,那么就入栈,如果最后栈的大小小于m,则说明无解。看能不能换,如果都不能换,则NO。
2023-04-28 19:28:51
75
原创 Codeforces】Codeforces Round 861 (Div. 2) (补赛)
如果r-l>100,那么肯定存在一个数含有90,找出即可;如果r-l<100,就直接暴力枚举。先对每一列排序,再求每一行的前缀和。
2023-04-28 13:25:09
87
原创 【Codeforces】Codeforces Round 868 (Div. 2) (ABC)(+104!)
题目要求强复合数,其实可以把a数组的乘积用唯一分解,优先选单个数的平方,其次选3个不同的数。将n分成两段,从每一段选两个的方法数(组合数)和为k,枚举每段即可。观察每一个数离正确位置的距离,如果距离为k的倍数那么可以换过去。
2023-04-28 12:46:47
291
原创 【Codeforces】CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!) (补赛)
【代码】【Codeforces】CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!) (补赛)
2023-04-27 15:11:35
152
原创 【Codeforces】Codeforces Round 867 (Div. 3) (+155!)
狠狠的贪,每次能看电视就都看,找出能看的最大娱乐值。排序,找到最大的两个数或者最小的两个数。
2023-04-26 16:14:12
82
原创 【Codeforces】 Educational Codeforces Round 147 (Rated for Div. 2) (+316!)
解题思路:思路可以先找到 a 中最左侧与最右侧不同于 a' 的位置 l 和 r,然后在 [l,r] 中找到 $a[l,r]$ 的最大值和最小值 max 和 min。题目大意:这道题的意思是给定一个长度为 n 的数组 a 和一个经过排序后的数组 a',求出 a 中一个子区间 [l,r],满足将 $[l,r]$排序后得到的数组等于 a',且[l,r]的长度最长。题目大意:给定一个由小写字母组成的字符串,每次可以选择一些不相邻的位置,删除这些位置上的字母,并将剩下的部分连接起来。解题思路:贪心,如果是首位是?
2023-04-21 14:49:22
254
原创 【团体程序设计天梯赛】L2-11~L2-15 个人题解(C++)
L2-11解题思路:二叉树的构建和遍历参考代码:L2-12解题思路:参考代码:L2-13解题思路:参考代码:解题思路:求把数列分成最少的递减子序列,既是求最长子序列长度,使用二分贪心即可在复杂度求出参考代码:L2-15 互评成绩解题思路:简单排序参考代码:
2023-04-21 14:39:22
65
原创 【团体程序设计天梯赛】L2-1~L2-5 个人题解(C++)
解题思路:先用SPFA求最短路,再用DFS求路径数并更新最大值和路径。解题思路:贪心,每次卖单价最高的,排序即可。解题思路:哈希去重,再用哈希计数统计即可。
2023-04-20 21:06:54
105
原创 【2019第四届团体程序设计天梯赛】个人题解(C++)
解题思路:用图把各个数字的关系存起来,入度为的0的即为特立独行的幸福数。解题思路:找到入口,从入口开始BFS找最长路即可。解题思路:使用栈模拟。
2023-04-19 22:16:56
97
原创 【2021第六届团体程序设计天梯赛】个人题解(C++)
解题思路:字符串的简单操作。解题思路:直接输出即可。解题思路:计数统计即可。L1-8 乘法口诀数列。
2023-04-17 12:57:40
153
原创 【Codeforces】 Codeforces Round 862 (Div. 2) (补赛)
A题目大意:解题思路:参考代码:B题目大意:解题思路:参考代码:C题目大意:解题思路:参考代码:D题目大意:解题思路:参考代码:E题目大意:解题思路:参考代码:F1题目大意:解题思路:参考代码:F2题目大意:解题思路:
2023-04-16 17:13:48
180
原创 【Codeforces】 Codeforces Round 864 (Div. 2) (补赛)
解题思路:先找到原图像与旋转后不同的点的个数cnt,如果k小于cnt则NO,接下来继续判断,因为必须操作k次操作,所以操作完后,如果n为偶数,则剩下的k-cnt也必须为偶数,如果n为奇数,则剩下无论多少都可以,因为可以在最中心点操作;题目大意:给定n*n的矩阵,你可以操作k次,每次操作可以把一格从0换成1或者从1换成0,问是否能通过次操作转化成原矩阵旋转180度的图形。解题思路:直接把起点或者终点围住即可,如果在角落,则只要2个,如果在边上需要3个,如果在其他地方则需要4个,分类讨论即可。
2023-04-16 14:03:05
508
原创 【Codeforces】 Codeforces Round 866 (Div. 2) (+439!)
题目大意:给定01串,通过特定规则变化为01矩阵,求由1构成的最大矩形面积。题目大意:变换字符串直到符合题目要求,求最小的变化次数。解题思路:贪心,每次遇到不满足的就变化。解题思路:找规律,分类讨论。
2023-04-16 08:55:30
501
原创 【Codeforces】 Codeforces Round 865 (Div. 2) (补赛)
参考代码:很容易发现斜率k与经过的整点个数有关,当对于(a,b),如果gcd(a,b)=1,则表示只要起点和(a,b)两个整点,如果不满足gcd(a,b)=1,则需要一个中转点(x,y),满足。但是终点(4,4),我一步到终点,会经过整点(1,1)(2,2)(3,3),经过的整点超过一个,不满足;起点为(0,0),给定一对终点点(a,b),你可以至多走两步直线到达终点,路径中最多经过一个整数点;比如终点(2,2),我一步到终点,会经过整点(1,1),满足;
2023-04-12 16:06:31
690
原创 【第29次CSS CSP】202303 (C++)
解题思路.改:先按时间从大到小排序,这样每次操作一个区间,并用前缀和优化,勉强AC。解题思路:题目说任意两块的交集面积均为 0,所以不需要去重,直接暴力模拟就行了。解题思路.新:发现答案是有连续性的,直接二分答案,快了不少。解题思路:一开始想着用堆一次一个操作,果然超时了。
2023-04-11 15:45:56
495
原创 【第二次CSS CSP】 201409 (C++)
解题思路:把分店的位置都放到队列里,BFS求最短路就行了。解题思路:直接暴力,连差分都用不上。解题思路:暴力匹配甚至不需要KMP。解题思路:数据量小,直接暴力枚举。
2023-04-11 11:05:37
109
1
原创 【第一次CSS CSP】 201403 (C++)
解题思路:数据量比较小,直接模拟,每次从上往下找满足的窗口,用两个栈实现窗口的转移。解题思路:数据量较小,直接暴力枚举。
2023-04-10 22:38:53
86
原创 【CSS CSP】 201312 (C++)
的高度最小值,可以使用线段树来实现,枚举每一个区间,不断更新最大值,时间复杂度为。解题思路:使用数组cnt统计数字出现的次数,再倒序找到出现最多的数。解题思路:直接模拟,注意余数为10的时候得特判‘X’最大的矩形为区间长度乘区间内最低的矩形高度,既。解题思路:找规律,发现对于区间。,所以我们需要求区间。
2023-04-10 18:13:55
134
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人