- 博客(22)
- 收藏
- 关注
原创 近三年noip提高组几个题的思路整理
因为我们已经知道了,可以把当前按照递减排序,其他按照递增排序,所以在读入的时候直接。我们可以发现,先枚举行再枚举列是比较好的。这样写或许有点不太直观,我想,我能不能先通过下式计算tot,再求和。这里会遇到一个错误,就是我的C有可能跨越一个坑,也就是说。一开始想的是矩阵快速幂,但是想了想发现还有更简单的做法。的位置,即下边的左端点,对于每一个满足上述条件的。所依赖的祖先,绝对值不变,符号位取反,即。显然,在保证条件①的前提下,由上边长。其实,如果不好理解,也有更无脑的选择。已知,所以再二元限制的条件下只有。
2025-02-02 10:05:19
795
1
原创 2022 International Collegiate Programming Contest, Jinan(2022济南站 ADEKM)
如果当前数字还未被使用过的话,那么就要添加一个栈,但是如果这个数字添加到栈中的话,就说明这个比这个数字小的数字。枚举每个数字和除2的结果放入set中,枚举每个数字,再用前面的计算方式求操作数求和取min就行。首先,假设这个数字是x,那么让一个数字变成x的最小操作数,就可以用倍增去暴力取min。思路:最大11位,首先把每一位求和,不进位,然后再枚举每一位就和,进位的次数就是。思路:数字一定是以一个顺序从栈中弹出的,所以,首先枚举每一个。“-” 表示提交了x次,封榜后也没有提交,最后也没有ac。
2024-06-29 14:47:21
1015
1
原创 The 2022 ICPC Asia Shenyang Regional Contest(2022 沈阳 CDFHIL)
下面有n种石头的两种价格,先是alice选一个,然后是bob和alice轮流选,每人选两个,直到最后剩一个,谁少给谁。题意:构造一个n行m列的矩阵,纯子矩阵的数量等于混合子矩阵的数量,纯子矩阵就是全1或者全0,混合子矩阵就是01都有。每个人可以取值两次,第一次和第二次取值的次数相邻,但是当前回合的第一次和下一回合的第一次相隔4次,所以需要。的某个前缀首尾拼接而成的字符串是回文串,这个组合有多少个。首先是考虑先选,优先选择的人收益最大,否则亏损最大。的矩形来说,纯色子区间的个数是。题意:设定一个区间,求。
2023-08-13 15:39:09
1265
原创 Codeforces Round 892 (Div. 2) ABCDE
(全场写了两个二分,幸亏这个二分不用手写,哭了,真不会写二分)打表发现,峰值时,是一个递增的排列,后面的几个数字反转的结果。(我不会二分,二分边界调一万年,就范围内暴力check了)乍一看可能觉得没区别,但是转换成这个样子就可以去dp了。当作一个可行区间,sort之后去二分就可以了。这个东西一眼是一个单峰函数,那么就可以二分。然后就可以二分这个后缀的长度。思路:首先可以发现,那么可以分成四种情况。
2023-08-13 13:34:01
389
原创 The 2022 ICPC Asia Xian Regional Contest(2022 西安 ABCDEFGJL)
思路:对于一个合法字符串来说,一个字符也是子串,所以一个合法的字符串肯定是一堆在给定字符串中的字符拼接而成的,假设一个长度大于1的字串合法,那么两个长度大于1的字串拼接而成的字串肯定合法。由此可以推断出,一个字串合法,肯定是由两个小于当前字串的子串拼接而成,也就是说,一个字串合法,那么它第一个字符肯定出现在集合中,最后一个字符也出现在集合中,这样拼接出来的字串合法。题意:n个队伍,每个队伍3个字母表示性别,有两种房间(单人间和双人间),双人间的两人必须来自同一队伍的同一性别,问所有人入住的最小代价。
2023-08-12 13:45:00
2294
原创 The 2022 ICPC Asia Nanjing Regional Contest(2022 南京 ABDEGIM)
接下来模拟洞的移动,我们假定洞在矩形B的正中央,记为(n+1,m+1),然后模拟图形移动,因为每个点只能计数一次,所以。平台的判定,就是可以假设以平台最右边的点为起点,然后枚举所有的点直到不在一个平面上,然后判断是不是向上的一个向量。那么对于每个点u,u是v的祖先节点,如果u到v的距离大于D,对于u就毫无意义了,可以直接删掉。那么就分为,大于x的部分和小于x的部分,当大于x的个数为k个的时候,那么这个数就是第k大。首先①和②都是合法的,而且平台只视为一个点,其余的都是非法的。
2023-08-12 00:31:08
2568
1
原创 codeforces edu 2200-2800 做题记录(持续更新)
枚举每一个点对之间边的颜色是否染色,枚举颜色编号确定边的染色编号。思路:坐标离散化,线段树维护某点能到达的最右点的坐标。题意:给你一个二分图,边染色让相邻边颜色不同。连边建图,分类讨论环的数量。思路:枚举度数然后确定。
2023-07-12 12:49:52
298
原创 Codeforces Round #815 (Div. 2) (A~D1题解)
Codeforces Round #815 (Div. 2) (A~D1题解)
2022-08-19 01:57:32
337
2
原创 2021/11/9 的训练赛B题(Codeforces Round #551 (Div. 2))
对于输入的n,m,k接下来,一行正视图,一行侧视图,另外的是顶视图(n行,m列)正视图:每一列的最大值左视图:每一行的最大值顶视图:只能表示出该点有没有方块思路:遍历顶视图。如果某点有方块,那么输出在正视图和左视图中的最小值。所以就得到如下代码#include<bits/stdc++.h>#define rep(a,b,c) for(int a=b;a<=c;a++)using namespace std;int main(){ int n,m,h; scanf(
2021-11-09 21:20:18
131
原创 2021-11-2训练赛
题干:有栋楼,第一层总共2间屋子,第2层共x间,第三层也是x间,以此类推。输出第n间所在的楼层。思路:1、判断n是否小于等于2,如果是,则在一楼;2、判断n-2是否能整除x,①如果是则输出(n-2)/x+1;②否则输出n-2)/x+1。代码如下:#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int n,x; cin>>n
2021-11-02 22:24:53
105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人