自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 2019 csp-s 解析及代码

2019 csp-s 解析及代码

2022-10-26 20:26:27 504 1

原创 2020 csp-s 解析及代码 T1~3

2020 csp-s 解析及代码 T1~3

2022-10-25 20:12:17 330

原创 [LGR-123] 洛谷10月月赛 Div.2 T1~3 解析及代码

[LGR-123] 洛谷10月月赛 Div.2 T1~3 解析及代码

2022-10-20 19:05:03 204

原创 洛谷 10月 csp-s 模拟赛 T1,T2解析及代码

洛谷 10月 csp-s 模拟赛 T1, T2解析及代码

2022-10-04 12:58:51 281

原创 洛谷9月月赛 Div2 T1~3 解析及代码

涉及双指针、并查集的三道小题

2022-10-01 23:19:39 308

原创 LGR 2022 提高组 初赛模拟试题 错题解析

LGR 2022 提高组 初赛模拟试题 错题解析

2022-09-16 17:19:14 2016

原创 洛谷 P3620 - P3621 数据备份、风铃、动物园(APIO 2007)

洛谷 P3620 - P3622 数据备份、风铃、动物园(2007 APIO)P3620 数据备份题目描述:思路:我们先来将这道题简化一下:将每一对相邻的建筑之间的空地看作一个点,点的权值即为两个建筑物之间的距离。那么题意可以转化为:在这n - 1个点中选出两两不相邻的k个点,使得这k个点的权值之和最小。这样简化完题意之后,我们就可以很轻松地解决这个问题了。首先,我们来看一下一个错误思路。错误思路:直接将所有点存入小根堆中,每一次取出堆顶元素并将堆顶元素左右两边的元素删除,最后求得最

2022-03-24 20:20:55 207

原创 洛谷 P6187 最小环

洛谷 P6187[2020 NOI Online 提高组] 最小环题目描述:思路:首先,我们先随便选一组n和k,来画图理解一下本题的题意。如图,我们以n = 10, k = 4的情况为例,先从1号点开始“跳”,每次向后跳4个数,这样就形成的图中红色五角星的路径。但是此时仍有一些数没有被走到过,因此我们又从2号点开始“跳”,跳完一个五角星后刚好把所有数都走到了一次。根据上面的模拟,我们可以发现:将所有数围成一个环,那么我们只需要以若干个不同的数为起点,每次向后跳k个数地走,便可以走出若干个环,

2022-03-18 22:07:13 131

原创 AcWing T1427 序列

既是一篇题解,也是一篇求助

2022-03-17 20:05:56 431

原创 洛谷 T3275 糖果

题目描述:思路:这道题可以用差分约束来做。既然是用差分约束,那么我们就要先找不等关系。题目很贴心,直接为我们一条条列好了五种情况。我们只需要把它们转化为式子即可。由于我们要求最小值,所以要使用最长路径,即将所有关系用">="号连接。①X = 1时,A == B,所以A >= B且B >= A;②X = 2时,A < B,所以B >= A + 1;③X = 3时,A >= B;④X = 4时,A > B,所以A >= B + 1;⑤X = 5时

2022-03-15 14:04:05 92

原创 洛谷 T6476 涂色游戏

题目描述:思路:10^20个格子,乍一看很多,但是仔细一想就会发现,这些格子中的颜色以p1和p2的最小公倍数为周期循环出现。所以我们只需要关注一个循环中的情况即可。不妨设p1 < p2,那么在[0, p2]这个区间上就会有这样的场景:不难想到,我们可以比较一个大周期中的以p2为一个循环的小周期中的p1个数和k的大小来来判断答案。即判断:(p2 - 1) / p1 __ k但是根据上图,我们又不难看出,将所有的p1向右平移一个单位长度,原本在“0”上的p1就会加入p1的总数中去。也就是说

2022-03-12 16:35:06 4555

原创 2022.3.3图论水题

2022.3.3图论水题1.灾后重建题目描述:思路:题目中有两个非常重要的信息:1.数据保证了输入每一座村庄重新修建的时间时会从小到大输入。2.数据保证了输入每一次询问时询问的时间会从小到大输入。也就是说,假设我们用来存储每一座村庄的重新修建时间的数组为t,那么t天生就时有序的数组。所以,在每一次询问时,假设最后一个重新修建时间小于等于询问的时间的村庄编号为k,那么本次询问中能够走到的村庄就只有前k个。根据floyd算法中第一层循环“只经过编号小于等于k的点”的定义,我们此时只需要对前k

2022-03-03 19:44:08 170

原创 2022.2.26解题报告

2022.2.26解题报告今天的题目比较水。T1.特殊年份题目描述:思路:直接按照题意判断,输出答案即可。代码:#include <iostream>#include <algorithm>#include <cstring>using namespace std;int cnt = 0;int main() { for (int i = 0 ; i < 5 ; i ++ ) { int a; scanf("%d", &

2022-02-27 13:16:49 89

原创 2022.2.25解题报告

2022.2.25解题报告T1.划拳题目描述:思路:直接按照题意模拟一边遍即可。代码:#include <iostream>#include <cstring>#include <algorithm>using namespace std;int n;int ans1, ans2;int main() { scanf("%d", &n); while (n -- ) { int a, b; scanf("%d%d", &a

2022-02-26 10:37:42 175

原创 2022.2.18解题报告

2022.2.18解题报告T1.切蛋糕题目描述:思路:首先,我们先来看一下最少用几刀就可以解决所有情况。对于一个蛋糕,要分成至少三块,那么最少都要2刀,因为0刀或1刀分出的蛋糕数量都小于3。那么,两刀能不能做到呢?我们来看下面这张图:由于一共只有4块蛋糕而且要分给3个人,所以一定是2个人拿到1块,1个人拿到2块。不妨设a和b拿到了1块,且a拿走了上图中A部分,则b只有B和C处两种选择。①如果b拿走了B部分,那么就有a = b的结论,这显然只是一种片面的情况,无法解决所有情况。②如果b

2022-02-18 17:19:39 180

原创 2022.2.11解题报告

2022.2.11解题报告T1.智力测试题题目描述:思路:对于列和行来说,它们均为以n为周期,在1~n中周期性地出现。故时间对n取余再加一(因为是从(1, 1)开始的)就是列数,对n取商再取余再加一就是行数(因为直接取商是经过的行数,有可能大于n,即走过了整张图又回到(1, 1)的情况)。代码:#include <iostream>#include <cstring>#include <algorithm>using namespace std;i

2022-02-11 21:34:06 441

原创 2022.2.10图论一题

题目描述:思路:为了在选择了最多k条边之后使得剩下的边中的最大值最小,我们在每次确定了一条路后,应当每一次都选择路上权值最大的边,将其纳入免费的k条边中。所以,假设路上的边数>k,那么我们一定会选择这条路上的最大的k个数纳入免费的集合中。故剩下的边中最大的就是这条路上所有边中第k + 1大的数。那么这道题就转化为了求每一条1~n的路上第k + 1大的数的最小值。看到这种形式,我们就会想到用二分。而使用二分需要满足以下的性质:对于数列中一个元素x,它可以将整个数列分割成左右两个有着不同性质

2022-02-10 19:21:27 105

原创 2022.2.10解题报告

2022.2.10 解题报告1.异或题目描述:思路:直接打擂台找最大值然后异或一下即可。代码:#include <iostream>using namespace std;const int N = 20;int n, a[N], maxx;int main() { scanf("%d", &n); for (int i = 1 ; i <= n ; i ++ ) { scanf("%d", a + i); maxx = max(maxx, a[

2022-02-10 11:49:19 834

原创 2022.2.9解题报告

2022.2.9解题报告1.字符串比较题目描述:https://www.acwing.com/problem/content/description/4215/思路:由于不论大小写,所以先把所有字符串都转为小写再直接比较即可。代码:#include <iostream>using namespace std;void change_s(string &a) { for (int i = 0 ; i < a.length() ; i ++ ) if (a[i

2022-02-09 12:11:42 264

原创 2022.2.6解题报告

2022.2.6解题报告1.平衡数组题目描述:https://www.acwing.com/problem/content/3781/思路:假设一个长度为n的数组:1,2,3,4,… n - 1, n再假设它最后都变成相等的值为k:k,k,k,k,… k,k那么每一个数变成k所要加的值就分别为:k - 1,k - 2,k - 3,k - 4 … k - n + 1,k - n再假设一共经过m次操作,那么每个数实际加上的数值应为:m*(m + 1) / 2 - 不给该数加值的操作的序号

2022-02-07 12:50:52 450

原创 2022.1.21 解题报告

解题报告1.最短时间题目描述:https://www.acwing.com/problem/content/3663/思路:因为是按照最佳行进方式行进,所以只需要判断四个顶点到(r,c)的距离最大值即可。代码:#include<iostream>using namespace std;int main(){ int T; int ans; scanf("%d",&T); while(T -- ){ int n,m,r,c;

2022-01-21 12:31:06 666

原创 2022.1.20 解题报告

解题报告1.A还是B题目描述:https://www.acwing.com/problem/content/3697/思路:直接暴力枚举即可。代码:#include<iostream>using namespace std;const int N = 1e5 + 10;char str[N];int n;int main(){ int cnt = 0; scanf("%d",&n); cin >> str; for(in

2022-01-20 21:55:39 782

原创 2022.1.20解题报告

2022.1.20解题报告1.三元一次方程题目描述:https://www.acwing.com/problem/content/description/3629/思路:直接两层循环,暴力枚举x和y即可。代码:#include<iostream>using namespace std;int t,n;int main(){ scanf("%d",&t); while(t -- ){ scanf("%d",&n);

2022-01-20 15:26:14 417

原创 2022.1.19 解题报告

解题报告1.特殊数字题目描述:https://www.acwing.com/problem/content/3550/思路:由于数据很小,那么直接从n往后暴力枚举即可。代码:#include<iostream>using namespace std;int n;int main(){ scanf("%d",&n); for(int i = n ; ; i ++ ){ int x = i,num = 0; //num表示x各个位数上的数

2022-01-19 22:19:50 168

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除