- 博客(17)
- 收藏
- 关注
原创 Codeforces Round #736 div2
CONTEST LINK A.Gregor and Cryptography 题意: 给你一个质数p,让你找到两个大于等于2且小于p的数a和b,满足p%a==p%b 思路: 1.大于2的质数都是奇数,所以对于任意质数,p%2==1永恒成立 2.还有什么是永真的呢?显然p%(p-1)==1 代码: #include<bits/stdc++.h> using namespace std; void sol(){ int n; cin>>n; cout<<2<&l
2021-08-02 12:03:16
148
原创 第十一届蓝桥杯国赛C++B组
有空再写剩下的题 A.美丽的2 暴力杯的第一道暴力题 #include <bits/stdc++.h> using namespace std; bool sol(int a){ while(a){ int tmp=a%10; if(tmp==2)return true; a/=10; } return false; } int main(){ int res=0; for(int i=1;i<=2020;i++){ if(sol(i))res++; } c.
2021-05-24 17:06:05
135
原创 Codeforces Round 721 Div2
比赛链接 A.And Then There Were K #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> using namespace std; typedef long long ll; int main() { int t; cin >> t; while (t--) { ll a; cin >> a; i
2021-05-21 00:26:45
168
2
原创 Educational Codeforces Round 109
蒟蒻只做出了两道签到题…剩下的题待补。 比赛链接 A.Potion Making #include <iostream> #include <cstring> #include <algorithm> #include <cstdio> using namespace std; typedef long long ll; int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } int mai
2021-05-16 20:44:44
326
2
原创 Codeforces 1512D Corrupted Array
题目链接 思路 先升序排序b,显然有两种情况可以找到序列a。 - 前n项之和等于第n+1项,也就是要扔掉第n+2项 - (前n+1项之和)-(某一项)==第n+2项,也就是要扔掉那某一项 关于第二种情况,用rtmp记录(前n+1项之和-第n+2项)的值 显然要删的那个项的值就是rtmp AC代码 #include <iostream> #include <algorithm> #include <cstring> #include <string>.
2021-05-13 22:03:36
148
原创 Codeforces Round #712 (Div. 2) B. Flip the Bits
题目链接在此 题目大意: 给出a、b两个由0和1组成的字符串 现在你可以选择一段0和1数量相等的前缀,将其所有0换成1,所有1换成0 你可以操作无数次 你只需要判断a能否经过若干次操作变成b 思路 这题我一开始是想直接模拟的,就是从后往前遍历a,遇到a[i]!=b[i]时,若可以反转,就反转一次,否则直接输出NO,写到一半发觉复杂度不对劲… Ctrl+A+Backspace删代码可真爽… 正解: 用数组c记录字符串a各位置0和1的相对数量 (例如c[i]==-1表示:从开头到下标i的这段前缀0比1
2021-05-13 20:40:42
88
原创 Codefores round #719 div3 E.Arranging The Sheep
题目大意 一个由“*”和“.”组成的字符串,求移动多少次“*”才可以使所有“*”连在一起 思路 找出最中间的那只羊,让其他羊向中看齐。 AC代码 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; typedef long long ll; const int N=1e6+7; char a; int w[N];
2021-05-11 21:22:54
149
原创 Codeforces global round 14 B Phoenix and Puzzle
思路 大正方形必然是由平方个小正方形拼成,小正方形要么全是两个三角形拼成、要么全是四个三角形拼成。 所以只需要判断n/2或者n/4是不是平方数即可 #include <iostream> #include <algorithm> #include <cmath> using namespace std; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; if(n==2|.
2021-05-09 16:49:01
225
原创 PTA L1-071前世档案
题目 网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。 现在我们把结论从左到右顺序编号,编号从 1 开始。这里假设回答都是简单的“是”或“否”,又假设回答“是”对应向左的路径,回答“否”对应向右的路径。给定玩家的一系列回答,请你返回其得到的结论的编号。 输入格式: 输入第一行给出两个正整数:N(≤30)为玩家做一次测试要回答的问题数量;M(≤100)为玩家人数。 随后 M 行,每行顺次
2021-04-24 10:04:29
504
原创 codeforces A-B Palindrome
题目链接: (https://codeforces.com/contest/1512/problem/C) 思路: 1.特判字符串长度为1的情况 2.遍历字符串,将可以确定的‘?’给确定了,处理完之后剩下的‘?’必然对称 3.遍历字符串,每当遇到‘?’,可以用的1比较多那就换成1,否则换成0,时刻需要注意是否不符合题意,若不符合题意,直接输出-1 1A代码(可以精简) #include <cstdio> #include <iostream> #include <algori
2021-04-23 15:17:32
272
原创 蓝桥杯c++组 凑算式
这个算式中 A ~ I 代表 1 ~ 9 的数字,不同的字母代表不同的数字。 比如: 6 + 8 / 3 + 952 / 714 就是一种解法, 5 + 3 / 1 + 972 / 486 是另一种解法。 这个算式一共有多少种解法? (网上已经有很多dfs或者next_permutation的解法了,这些解法对于新手来说不太友好,所以我写了一个纯暴力的做法,幼儿园的都能看明白 #include <iostream> using namespace std; int main(){ int.
2021-04-17 17:48:46
171
原创 蓝桥杯c++组 明码
问题描述 汉字的字形存在于字库中,即便在今天,16 点阵的字库也仍然使用广泛。 16 点阵的字库把每个汉字看成是16 x 16个像素信息,并把这些信息记录在字节中。 一个字节可以存储 8 位信息,用 32 个字节就可以存一个汉字的字形了。 把每个字节转为 2 进制表示,1 表示墨迹,0 表示底色。 每行 2 个 字节,一共 16 行,布局是: 第 1 字节,第 2 字节 第 3 字节,第 4 字节 … 第 31 字节, 第 32 字节 这道题目是给你一段多个汉字组成的信息,每个汉字用 32 个字节表示,这里
2021-04-17 15:42:13
79
原创 第11届蓝桥杯c++B组 七段码
显而易见的 深搜+并查集 细节见代码 //E #define _CRT_SECURE_NO_WARNINGS//请忽略 #include<iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <cmath> using namespace std; bool w[10][10];//无向图,代表相邻关系 bool vis[10];//vis[i]=.
2021-04-14 22:41:55
93
原创 计蒜客 幂次方
题目链接 https://nanti.jisuanke.com/t/T2103 深搜题 #include<iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <cmath> using namespace std; void sol(int a){ if(a<=4){ if(a==1)cout<<"2(0)"; else
2021-04-14 14:56:42
76
原创 蓝桥杯 方格分割
标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。 试计算: 包括这3种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一种分割法。 #include <iostream> #include <algorithm> #include <iomanip> #include <cstdio> #include <cstring> #include <cmath> using namesp
2021-04-12 14:00:05
69
原创 蓝桥杯c++组 2018 大学B组 9.全球变暖
我的做法是先dfs求出被水淹没前的岛屿数bf,再遍历模拟淹没过程,再dfs求出淹没后的岛屿数,输出两者之差 个人感觉这种方法并非最简,但是最容易想到。 #include <iostream> #include <algorithm> using namespace std; int n; const int N = 1e3 + 7; char a[N][N]; bool vis[N][N]; int d[4][2] = { 0,1,0,-1,1,0,-1,0 }; int bf, a
2021-04-12 10:16:59
231
原创 PTA 天梯赛L2-025 分而治之
PTA 天梯赛 L2-025分而治之 结构体保存每条边的两个端点,用set保存需要攻打的城市,然后记录需要攻打的城市一共占了多少条边,若等于m,则认为所有点都孤立了 #include <iostream> #include <algorithm> #include <set> using namespace std; struct node { int x; int y; }; const int N = 1e5 + 7; node ma[N]; int main()
2021-04-10 16:20:25
489
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人