
水题合集
S atur
要变成萤火虫~
展开
-
L2-005 集合相似度(set判重)
思路:比较水的一个题,但是想通过所有测试点还需要考虑下最大复杂度的情况。代码实现:#include<bits/stdc++.h>#define int long long#define endl '\n'using namespace std;const int N = 100;int n, m, x, k;set<int> s[N], tmp;signed main(){ cin >> n; for(int i =...原创 2022-04-21 17:27:06 · 246 阅读 · 0 评论 -
L1-071 前世档案 (20 分) (类似二分)
传送门题目描述:思路:照我以前可能就会傻傻的去想怎么实现二叉树…也许是现在思维成熟了点,便能看出其实这就是类似于二分原理的水题。首先能够知道结论的总数,每次"y"和"n"的选择就像二分一样对半砍的操作,所以简单模拟下就行啦!AC代码:#include<bits/stdc++.h>#define int long long#define endl '\n'using namespace std;const int N = 1e5+10;int n, m,...原创 2022-03-23 09:11:29 · 1700 阅读 · 3 评论 -
E.Figure Skating (字符串排序/签到) (2021年度训练联盟热身训练赛第五场 )
传送门题意:给出n个人的历史排名成绩和现在排名成绩,如果有人进步就输出进步最大的人名,否则输出"suspicious"。思路: 1.可以结构体排序写 2.也可直接标记前后排名情况,如果没有一点改变就是可疑,否则必定有进步的人,找出进步最大者即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long.原创 2021-05-07 00:16:13 · 268 阅读 · 0 评论 -
C.Ducky Debugging(简单判断/签到)(2021年度训练联盟热身训练赛第五场 )
传送门题意:这是一个简单的判断交互题,用getline()输入带空格的一整行字符串,如果最后是"?"结尾就输出“Quack!”,如果是"."结尾就输出“*Nod*”。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define l原创 2021-04-30 00:08:13 · 169 阅读 · 0 评论 -
B.Cutting Corners (简单几何/签到)(2021年度训练联盟热身训练赛第五场)
传送门题意:让求直角三角形两直角边的和与斜边的差值,告诉你两条直角边的值。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#define ls(x) x<<1#d原创 2021-04-30 00:00:01 · 245 阅读 · 0 评论 -
J.This Ain‘t Your Grandpa‘s Checkerboard (简单遍历)(2021年度训练联盟热身训练赛第一场)
传送门题目要求:①每一行的黑色方块数量相等 ②每一列的黑色与白色的方块数相等 ③ 每一行或列没有连续3个会以上的相同色块。思路:直接遍历统计一遍即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lo...原创 2021-04-19 14:29:22 · 226 阅读 · 0 评论 -
D. Some Sum (特判) (2021年度训练联盟热身训练赛第一场)
传送门思路:也没什么特别的,就是分情况特判下连续n哥数的奇偶即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#define ls(x) x<<1#defin原创 2021-04-19 13:27:22 · 166 阅读 · 0 评论 -
CCF 202009-2 风险人群筛查 (简单遍历统计)
传送门题意:给你一个矩阵范围和 n 个人的 t 个位置,让你判断有多少人进入过这个矩阵,又有多少人连续 k 个位置一直处于矩阵内。直接遍历统计一下即可,注意逗留的人也算经过。代码实现:import java.util.*;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = i原创 2021-04-10 02:12:09 · 142 阅读 · 0 评论 -
CCF 202009-1 称检测点查询 (简单结构体排序)
传送门题意:目标就是找到 n 个点中离 (X,Y)直线距离最近的情况下编号最小的三个点,直接记录每个点与 (X,Y)的距离再结构体排序一下就好啦。代码实现:import java.util.*;class node implements Comparable<node>{ int id, da; public node(int id, int da){ this.id = id; this.da = da;原创 2021-04-10 01:16:14 · 263 阅读 · 0 评论 -
CCF 202006-2 稀疏向量 (简单遍历)
传送门思路:不外乎就是,直接暴力写就好啦,主要答案会爆int,不然就只有60%通过率了。代码实现:import java.util.*;public class Main { static Map<String, Integer> mpa = new HashMap<String, Integer>(); static Map<String, Integer> mpb = new HashMap<String, I.原创 2021-03-24 16:28:19 · 129 阅读 · 0 评论 -
Codeforces A. Domino on Windowsill (Round 106 Rated for Div.2)(思维)
传送门题意:给你一个n*2的矩阵,第一行的前格是白色,第二行的前格是白色,其余格子都为黑色。现有w颗白棋和b颗黑棋,每颗棋子都是1*2的大小,要求不重叠的放置在相应颜色的空格上,试问能否将两种棋子都放完。思路:简单题,判断一下相应空格数是否比棋子面积小即可。代码实现:import java.util.Scanner;import java.util.*;public class Main { public static void main(String[] ar...原创 2021-03-21 00:51:05 · 252 阅读 · 0 评论 -
A. 九峰与签到题 (通过率)(2021牛客寒假算法基础集训营4 原创)
传送门思路:签到题,到那时要注意题目中的任意时间内通过了大于等于50%。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#define ls(x) x<<1#de原创 2021-03-07 16:23:38 · 150 阅读 · 0 评论 -
Codeforces A. Anti-knapsack (思维) (Round #705 Div.2)
传送门题意:让你在1~n中找到尽量多的数,使得其任意几个数的和不等于k。思路:最开始想得很复杂,以为还什么dp枚举下,后面仔细想想就觉得简单了。既然是任意数的和不等于k,那我们让任意两个数的和都大于k,便不会等于了,且得到的数也最多了。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii p原创 2021-03-07 10:45:22 · 416 阅读 · 0 评论 -
A. 回文括号序列计数 (思维) (2021牛客寒假算法基础集训营6)
传送门思路:刚开始还认认真真去推算,后面才发现括号匹配的序列不可能是回文的,所以就只有空串有一种方案,其他都没有可行的方案。代码实现:#include<bits/stdc++.h> #define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#de原创 2021-03-06 09:51:05 · 165 阅读 · 0 评论 -
D. 划数 (多个数的和取模) (2021牛客寒假算法基础集训营6 )
传送门思路:题目已经告诉另一个数是原始数据(>=11),那么意味着我们需要得到的是剩下n-1个数的和再对11取模。需要注意当n==2时,就不需要取模了,不然就只能通过90%的测试点。代码实现:#include<bits/stdc++.h>// #define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#原创 2021-03-06 09:22:57 · 499 阅读 · 0 评论 -
C. 末三位 (打表找规律) (2021牛客寒假算法基础集训营6)
传送门题目:牛牛最近刚学完指数,他理解了 =4, =27 ......但是,他现在想知道:5^n的末三位是多少?对于100%的数据,0 <= n <= 1e9。数据组数 t <= 10^6。思路:刚开始可能考虑过用快速幂,但是发现数据范围后果断先打表找找规律。#include<bits/stdc++.h>//#define endl '\n'#define null NULL#define ll long long#define i.原创 2021-03-05 21:29:13 · 145 阅读 · 0 评论 -
Codeforces B. New Year‘s Number (#697 Div.3) (思维 / 水题)
传送门题意: 给你一个数 n ,试问 n 是否可以由 2020 和2021 的任一比例组合而成?思路: 先看n最多可以由多少个 2020 组成,剩下的余数加在前面的 2020 上就形成 2021 了。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#def原创 2021-02-02 15:03:15 · 288 阅读 · 0 评论 -
Codeforces A. Add Candies (#683 Div.2 by Meet IT) (思维 / 水题)
传送门题意: 有n包糖果,第i包里有i颗,目标是要让所有糖包里的糖果一样多。可进行m次操作,第j次操作将j颗糖果添加在所选糖包外的糖包里。输出操作次数及每次操作的a[j]。思路: 直接输出1到n即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#def原创 2020-11-18 20:40:07 · 573 阅读 · 0 评论 -
Codeforces B. Numbers Box (#683 Div.2 by Meet IT) (思维)
传送门题意:有一个 n*m的矩阵,其中元素有负有正,每次可选任意相邻的俩元素将它们的符号取反,可进行任意次操作,求出可实现的整个矩阵最大矩阵和。思路:既然可以任意次操作,那么如果负数为偶数个,直接俩俩一起取反,最后整个矩阵都会是正数。若负数为奇数个,将负号留个绝对值最小的数即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int lon原创 2020-11-18 20:24:44 · 305 阅读 · 0 评论 -
CodeforcesA. Array Rearrangment (思维 / 水题)
传送门题意: 给出两个数组a和b,将它们重新排序,如果满足每个a[i]+b[i] <= x则输出Yes,否则输出No。思维: 不难想到这肯定得最大的和最小的相匹配,所以一个数组升序一个数组降序再判断一下即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int&g原创 2020-11-04 22:19:43 · 324 阅读 · 0 评论 -
Codeforces A. Reorder (#678 Div.2) (数学思维 / 水题)
传送门题意: 给出数列长度n与正整数m,试问该数列是否满足正好等于m,且除法过程中不是整除(即 5/2 == 2.5)。思路: 仔细观察不难发现其实该题问的就是是否数列和正好等于m。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define low原创 2020-10-27 01:01:26 · 230 阅读 · 0 评论 -
Codeforces C. Stripe (Round #18 Div.2 Only) (前缀和水题)
传送门题意: 看了半天没看懂那个平方数的意思,理解就是求有几种方法可以一刀将数组切成两半,使得左右两半的和相等。思路: 利用前缀和就很容易求得左右两段分别的和。代码实现:#include<bits/stdc++.h>#define endl '\n'#define ll long long#define int long long#define IOS ios::sync_with_stdio(0); cin.tie(0);cout.tie(0);using namespac原创 2020-10-27 00:50:55 · 243 阅读 · 0 评论 -
Codeforces B. Barrels (Round 96 Rated for Div.2) (思维)
传送门题意: 现有n个无限大的杯子,第i个杯子中有a[i]升水。你有k次操作,每次能将一个杯子里的水倒入另一个杯子,试问k次操作结束后,含水量最大与最小之间的差值max为多少/思路: 水题嘛,意思搞那么复杂,不就是求前k大数的和咩。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<原创 2020-10-24 00:26:23 · 255 阅读 · 0 评论 -
Codeforces E. Two Round Dances (#677 Div.3) (思维 / 暴力)
传送门题意: 求将偶数n (2 <= n <= 20) 个人排成两个圈的方法有多少种。思路: 排列组合问题,先组合数选出n/2个人,剩下的人也就确定了,再考虑两个圈的全排列。代码实现:#include<bits/stdc++.h>//#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define l原创 2020-10-23 16:43:17 · 248 阅读 · 0 评论 -
Codeforces A. Copy-paste (#673 Div.2) (思维)
传送门题意: 给你一个数列a,将a[i]的值加在a[j]上(i != j)且使得a[j] <= k。试问最多能操作多少次?思路: 找到一个最小的数一直作为加数,试其他n-1个数都不超过k即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#def原创 2020-09-29 00:05:13 · 234 阅读 · 0 评论 -
D. Go Latin (模拟 / 简单) ICPC Seoul 2018
思路: 就是那么个意思,就像英语单词的词性转换,模拟判断一下就好。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#define ls(x) x<<1#define rs(x) (x.原创 2020-09-05 20:13:23 · 185 阅读 · 0 评论 -
Codeforces A. Distance and Axis (思维 / 暴力) (Round #665 Div.2)
传送门题意: 在坐标轴OA上找到一个点B,使得| |OA| - |OB| | == k。若无法等于k,就将A向左后右移动一个单位,试问最少经过多少次操作可以找到符合条件的B点。思路:简单粗暴点,可直接先将B点放在原点位置。若 |OA| == k,那么可以直接选择原点(或二倍A点的位置)为B,操作数为0。若 |OA| < k,那么将A加到k即可。若 |OA| > k,就需要在OA间安插B点的操作数比较少,且若 n-k为奇数,还需要将A向右移动一步即可。代码实现:#inclu原创 2020-08-22 17:55:21 · 207 阅读 · 0 评论 -
Codeofrces C. Omkar and Waterslide (模拟 / 暴力) (Global Round 10)
传送门题意: 给出一个序列a,每次可以选择一个非递减序列将每个元素+1,试问将整个元素变成非递减需要多少次操作?思路: 简单的模拟题,直接找到每次出现降低地方非递减序列中的min取操作数即可。代码实现:#include<bits/stdc++.h>//#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#defin原创 2020-08-19 23:46:39 · 384 阅读 · 0 评论 -
Codeforces A. Omkar and Password (思维) (Global Round 10)
传送门题意: 现有一个长度为n的序列a,只要两相邻元素不相等便可将其合并成一个元素。试问a最小可被合并成几个元素。思路: 仔细想想就不难发现,只要序列不是单一元素,就可一直合并知道变成一个。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define l原创 2020-08-17 18:41:12 · 153 阅读 · 0 评论 -
洛谷:P1104 生日 (结构体排序)
传送门思路: 虽然是个水题,但是不认真读题的下次就是一直wa,一定记着在结构体排序时同年同月同日生的人要 id大的在前。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#define ls(x原创 2020-08-12 00:05:14 · 787 阅读 · 0 评论 -
P2241 统计方形 (数据加强版) (暴力枚举)
传送门思路:数据范围还行,就可直接枚举矩形的两条边长度。如果两边相同就是正方形,否则就是长方形;然后考虑每个矩形的做起点个数即可。比如对于 长x宽y 的矩形,左起点便有(n-x+1)*(m-y+1)个可行位置。若实在不懂,那就看这篇特细致题解吧。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii原创 2020-08-11 23:11:29 · 439 阅读 · 0 评论 -
Codeforces C. Boats Competition (枚举 / 思维) (Round #661 Div.3)
传送门题意: 现有很多能力值的成员,要求你选择一个团队能力值w,使得两两匹配得到的团队能力值刚好为w的队伍最多,输出最多队伍数。思路:因为数据范围比较小,可以之间枚举w。再用桶mh[]统计每个能力值成员的数量,挨个组队判断改w下的成队数量。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii p原创 2020-08-10 20:13:27 · 221 阅读 · 0 评论 -
A. 数字 (思维) (智算之道复赛高校组)
传送门思路: 就是简单的模拟一下,不用特殊处理中间的0(我又菜到被卡了,呜呜呜~)。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#define ls(x) x<<1#defi原创 2020-08-09 22:11:24 · 142 阅读 · 0 评论 -
Codeforces A. Captain Flint and Crew Recruitment (思维) (Round #660 Div.2)
传送门题意: 试问是否可以将整数n分解成四个不同的正整数,且其中至少三个数位近似质数(即能用两个不同的质数p*q表示)。思路:既然要找三个不同的近似质数,那么就先取6, 10, 14这三个最小的数。那么至少还得给第四个数留个位置,所有只有 n >30 时才能分解成功。再考虑是否有重复数出现的问题,若有就将14变成15,第四个数便是n-31。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#原创 2020-08-08 23:57:52 · 169 阅读 · 0 评论 -
洛谷:P1914 小书童——密码 (字符偏移)
传送门思路: 利用putchar()直接输出该字符后第n位的字符即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#define ls(x) x<<1#define rs(x)原创 2020-08-04 23:01:40 · 219 阅读 · 0 评论 -
洛谷:P1427 小鱼的数字游戏 (数组翻转)
传送门思路: 没意思嘛,直接倒着输出数组即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#define ls(x) x<<1#define rs(x) (x<<1原创 2020-08-04 00:55:34 · 268 阅读 · 0 评论