![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
程序设计与算法
文章平均质量分 80
程序设计思想,算法思路,题解
zAlkaid9
这个作者很懒,什么都没留下…
展开
-
C++选强连通分支--班长竞选
题意:大学班级选班长,N 个同学均可以发表意见 若意见为 A B 则表示 A 认为 B 合适,意见具有传递性,即 A 认为 B 合适,B 认为 C 合适,则 A 也认为 C 合适 勤劳的 TT 收集了M条意见,想要知道最高票数,并给出一份候选人名单,即所有得票最多的同学,你能帮帮他吗?Input本题有多组数据。第一行 T 表示数据组数。每组数据开始有两个整数 N 和 M (2 <= n...原创 2020-04-14 00:13:59 · 836 阅读 · 0 评论 -
c++实现--Bridge Hands
题意假设如上图,这个烷烃基有6个原子和5个化学键,6个原子分别标号1~6,然后用一对数字 a,b 表示原子a和原子b间有一个化学键。这样通过5行a,b可以描述一个烷烃基你的任务是甄别烷烃基的类别。原子没有编号方法,比如1 22 33 44 55 6和1 32 32 44 55 6是同一种,本质上就是一条链,编号其实是没有关系的,可以在纸上画画就懂了思路过程代码...原创 2020-03-03 22:33:57 · 294 阅读 · 0 评论 -
Q老师的考验
Q老师 对数列有一种非同一般的热爱,尤其是优美的斐波那契数列。这一天,Q老师 为了增强大家对于斐波那契数列的理解,决定在斐波那契的基础上创建一个新的数列 f(x) 来考一考大家。数列 f(x) 定义如下:当 x < 10 时,f(x) = x;当 x ≥ 10 时,f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + …… + a9 * f(x-10),ai 只能为 0 或 1。Q老师 将给定 a0~a9,以及两个正整数 k m,询问 f(k) %原创 2020-05-21 16:39:14 · 159 阅读 · 0 评论 -
利用广度优先遍历搜索BFS在矩阵迷宫中寻找最短路径
广度优先遍历搜索(BFS)在矩阵迷宫中寻找最短路径标题题意东东有一张地图,想通过地图找到妹纸。地图显示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹纸,这两个位置保证为0。既然已经知道了地图,那么东东找到妹纸就不难了,请你编一个程序,写出东东找到妹纸的最短路线。Input:输入是一个5 × 5的二维数组,仅由0、1两数字组成,表示法阵地图。Output:输出若干行,表示从左上...原创 2020-02-28 21:09:08 · 1145 阅读 · 0 评论 -
咕咕东的奇妙序列 --找规律
题目描述咕咕东 正在上可怕的复变函数,但对于稳拿A Plus的 咕咕东 来说,她早已不再听课,此时她在睡梦中突然想到了一个奇怪的无限序列:112123123412345 …这个序列由连续正整数组成的若干部分构成,其中第一部分包含1至1之间的所有数字,第二部分包含1至2之间的所有数字,第三部分包含1至3之间的所有数字,第i部分总是包含1至i之间的所有数字。所以,这个序列的前56项会是1121...原创 2020-04-11 15:45:31 · 493 阅读 · 0 评论 -
c++生成树模板题——掌握魔法の东东
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstdio>#include <algorithm>using namespace std;//并查集int par[90005];void ini(int n){ for(int i=0; i<=n; i++) {...原创 2020-03-26 18:21:47 · 231 阅读 · 0 评论 -
c++实现———最小转动次数
题意咕咕东是个贪玩的孩子,有一天,他从上古遗迹中得到了一个神奇的圆环。这个圆环由字母表组成首尾相接的环,环上有一个指针,最初指向字母a。咕咕东每次可以顺时针或者逆时针旋转一格。例如,a顺时针旋转到z,逆时针旋转到b。咕咕东手里有一个字符串,但是他太笨了,所以他来请求你的帮助,问最少需要转多少次。Input输入只有一行,是一个字符串。Output输出最少要转的次数。Sample Inp...原创 2020-03-14 22:54:39 · 142 阅读 · 0 评论 -
HRZ的序列
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;long long a[100005];long long b[5];int N,c...原创 2020-04-11 15:45:04 · 125 阅读 · 0 评论 -
区间选点II 差分约束系统
题意:给定一个数轴上的 n 个区间,要求在数轴上选取最少的点使得第 i 个区间 [ai, bi] 里至少有 ci 个点Input输入第一行一个整数 n 表示区间的个数,接下来的 n 行,每一行两个用空格隔开的整数 a,b 表示区间的左右端点。1 <= n <= 50000, 0 <= ai <= bi <= 50000 并且 1 <= ci <= b...原创 2020-04-13 23:06:26 · 97 阅读 · 0 评论 -
利用BFS解决倒水问题
题意倒水问题 “fill A” 表示倒满A杯,"empty A"表示倒空A杯,“pour A B” 表示把A的水倒到B杯并且把B杯倒满或A倒空。Input输入包含多组数据。每组数据输入 A, B, C 数据范围 0 < A <= B 、C <= B <=1000 、A和B互质。Output你的程序的输出将由一系列的指令组成。这些输出行将导致任何一个罐子正好包含C单...原创 2020-03-03 18:22:46 · 658 阅读 · 1 评论 -
c++烷烃基的判断
题意假设如上图,这个烷烃基有6个原子和5个化学键,6个原子分别标号1~6,然后用一对数字 a,b 表示原子a和原子b间有一个化学键。这样通过5行a,b可以描述一个烷烃基你的任务是甄别烷烃基的类别。原子没有编号方法,比如1 22 33 44 55 6和1 32 32 44 55 6是同一种,本质上就是一条链,编号其实是没有关系的,可以在纸上画画就懂了思路过程代码...原创 2020-03-03 21:40:37 · 308 阅读 · 0 评论 -
c++树的最大直径——氪金带东
//DFS#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstdio>#include <queue>using namespace std;struct edge{ int u, v, w, next;};int n, head[10002], tot = 1;...原创 2020-03-27 23:56:20 · 339 阅读 · 1 评论 -
c++__掌握魔法の东东 II
题意:从瑞神家打牌回来后,东东痛定思痛,决定苦练牌技,终成赌神!东东有 A × B 张扑克牌。每张扑克牌有一个大小(整数,记为a,范围区间是 0 到 A - 1)和一个花色(整数,记为b,范围区间是 0 到 B - 1。扑克牌是互异的,也就是独一无二的,也就是说没有两张牌大小和花色都相同。“一手牌”的意思是你手里有5张不同的牌,这 5 张牌没有谁在前谁在后的顺序之分,它们可以形成一个牌型。...原创 2020-03-28 00:12:47 · 153 阅读 · 0 评论 -
数字模拟题-Game23 C++
题意:东东在玩游戏“Game23”。在一开始他有一个数字n,他的目标是把它转换成m,在每一步操作中,他可以将n乘以2或乘以3,他可以进行任意次操作。输出将n转换成m的操作次数,如果转换不了输出-1。Input输入的唯一一行包括两个整数n和m(1<=n<=m<=5*10^8).Output输出从n转换到m的操作次数,否则输出-1.Simple Input 1120 ...原创 2020-04-24 13:25:05 · 284 阅读 · 0 评论 -
c++实现——Ascii画图
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstdio>#include <queue>#include <cstring>using namespace std;int n, m;struct position{ int x; int y;};ch...原创 2020-03-20 08:40:08 · 702 阅读 · 0 评论 -
ZJM 与生日礼物
ZJM 收到了 Q老师 送来的生日礼物,但是被 Q老师 加密了。只有 ZJM 能够回答对 Q老师 的问题,Q老师 才会把密码告诉 ZJM。Q老师 给了 ZJM 一些仅有 01 组成的二进制编码串, 他问 ZJM:是否存在一个串是另一个串的前缀.Input多组数据。每组数据中包含多个仅有01组成的字符串,以一个9作为该组数据结束的标志。Output对于第 k 组数据(从1开始标号),如果不存在一个字符串使另一个的前缀,输出"Set k is immediately decodable",否则输出"S原创 2020-05-27 18:20:17 · 283 阅读 · 0 评论 -
c++实现——咕咕东想吃饭
题目描述咕咕东考试周开始了,考试周一共有n天。他不想考试周这么累,于是打算每天都吃顿好的。他决定每天都吃生煎,咕咕东每天需要买ai个生煎。但是生煎店为了刺激消费,只有两种购买方式:①在某一天一次性买两个生煎。②今天买一个生煎,同时为明天买一个生煎,店家会给一个券,第二天用券来拿。没有其余的购买方式,这两种购买方式可以用无数次,但是咕咕东是个节俭的好孩子,他训练结束就走了,不允许训练结束时手里有券...原创 2020-03-15 00:16:33 · 127 阅读 · 0 评论 -
c++实现——宇宙射线
题目描述众所周知,瑞神已经达到了CS本科生的天花板,但殊不知天外有天,人外有苟。在浩瀚的宇宙中,存在着一种叫做苟狗的生物,这种生物天生就能达到人类研究生的知识水平,并且天生擅长CSP,甚至有全国第一的水平!但最可怕的是,它可以发出宇宙射线!宇宙射线可以摧毁人的智商,进行降智打击!宇宙射线会在无限的二维平面上传播(可以看做一个二维网格图),初始方向默认向上。宇宙射线会在发射出一段距离后分裂,向该方...原创 2020-03-19 14:16:13 · 510 阅读 · 1 评论 -
Benches --c++
题意:SDUQD 旁边的滨海公园有 x 条长凳。第 i 个长凳上坐着 a_i 个人。这时候又有 y 个人将来到公园,他们将选择坐在某些公园中的长凳上,那么当这 y 个人坐下后,记k = 所有椅子上的人数的最大值,那么k可能的最大值mx和最小值mn分别是多少。Input第一行包含一个整数 x (1 <= x <= 100) 表示公园中长椅的数目第二行包含一个整数 y (1 <...原创 2020-04-25 16:34:36 · 230 阅读 · 0 评论 -
TT数鸭子
题目描述这一天,TT因为疫情在家憋得难受,在云吸猫一小时后,TT决定去附近自家的山头游玩。TT来到一个小湖边,看到了许多在湖边嬉戏的鸭子,TT顿生羡慕。此时他发现每一只鸭子都不一样,或羽毛不同,或性格不同。TT在脑子里开了一个map<鸭子,整数> tong,把鸭子变成了一些数字。现在他好奇,有多少只鸭子映射成的数的数位中不同的数字个数小于k。输入描述输入第一行包含两个数n,k,表示鸭子的个数和题目要求的k。接下来一行有n个数,aia_iai,每个数表示鸭子被TT映射之后的值。输原创 2020-06-03 18:45:52 · 228 阅读 · 0 评论 -
ZJM要抵御宇宙射线
题目描述据传,2020年是宇宙射线集中爆发的一年,这和神秘的宇宙狗脱不了干系!但是瑞神和东东忙于正面对决宇宙狗,宇宙射线的抵御工作就落到了ZJM的身上。假设宇宙射线的发射点位于一个平面,ZJM已经通过特殊手段获取了所有宇宙射线的发射点,他们的坐标都是整数。而ZJM要构造一个保护罩,这个保护罩是一个圆形,中心位于一个宇宙射线的发射点上。同时,因为大部分经费都拨给了瑞神,所以ZJM要节省经费,做一个最小面积的保护罩。当ZJM决定好之后,东东来找ZJM一起对抗宇宙狗去了,所以ZJM把问题扔给了你~输原创 2020-06-03 18:40:13 · 173 阅读 · 0 评论 -
csp 201604-3路径解析 c++
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstdio>#include <string>using namespace std;char str[1005];int main(){ freopen("in.txt","r",stdin); int p; scan...原创 2020-03-28 00:28:35 · 160 阅读 · 0 评论 -
HRZ学英语
代码:#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int s[26]={0};bool flag;int main()...原创 2020-04-11 15:44:24 · 186 阅读 · 0 评论 -
SPFA模板题
题意这一晚,TT 做了个美梦!在梦中,TT 的愿望成真了,他成为了喵星的统领!喵星上有 N 个商业城市,编号 1 ~ N,其中 1 号城市是 TT 所在的城市,即首都。喵星上共有 M 条有向道路供商业城市相互往来。但是随着喵星商业的日渐繁荣,有些道路变得非常拥挤。正在 TT 为之苦恼之时,他的魔法小猫咪提出了一个解决方案!TT 欣然接受并针对该方案颁布了一项新的政策。具体政策如下:对每一个...原创 2020-04-02 18:05:32 · 311 阅读 · 0 评论 -
c++拓扑排序 模板
题意:众所周知, TT 是一位重度爱猫人士,他有一只神奇的魔法猫。有一天,TT 在 B 站上观看猫猫的比赛。一共有 N 只猫猫,编号依次为1,2,3,…,N进行比赛。比赛结束后,Up 主会为所有的猫猫从前到后依次排名并发放爱吃的小鱼干。不幸的是,此时 TT 的电子设备遭到了宇宙射线的降智打击,一下子都连不上网了,自然也看不到最后的颁奖典礼。不幸中的万幸,TT 的魔法猫将每场比赛的结果都记录了...原创 2020-04-13 23:10:33 · 364 阅读 · 0 评论 -
csp 炉石传说
#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>const int inf = 0x3f3f3f;using namespace std;int n, x, y, z, acc, bcc, a_alive, b_alive;bool fl...原创 2020-04-18 20:41:22 · 328 阅读 · 0 评论 -
简单差分方法的应用
题意Thanks to everyone’s help last week, TT finally got a cute cat. But what TT didn’t expect is that this is a magic cat.One day, the magic cat decided to investigate TT’s ability by giving a problem...原创 2020-03-19 17:53:39 · 866 阅读 · 0 评论 -
c++单调栈实现最大矩形面积
题意给一个直方图,求直方图中的最大矩形的面积。例如,下面这个图片中直方图的高度从左到右分别是2, 1, 4, 5, 1, 3, 3, 他们的宽都是1,其中最大的矩形是阴影部分。Input输入包含多组数据。每组数据用一个整数n来表示直方图中小矩形的个数,你可以假定1 <= n <= 100000. 然后接下来n个整数h1, …, hn, 满足 0 <= hi <= 1...原创 2020-03-19 17:34:57 · 2179 阅读 · 0 评论 -
单调队列——滑动窗口
题意ZJM 有一个长度为 n 的数列和一个大小为 k 的窗口, 窗口可以在数列上来回移动. 现在 ZJM 想知道在窗口从左往右滑的时候,每次窗口内数的最大值和最小值分别是多少. 例如:数列是 [1 3 -1 -3 5 3 6 7], 其中 k 等于 3.Input输入有两行。第一行两个整数n和k分别表示数列的长度和滑动窗口的大小,1<=k<=n<=1000000。第二行...原创 2020-03-20 09:48:01 · 862 阅读 · 1 评论 -
csp 201812-4 数据中心
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstdio>#include <algorithm>using namespace std;//并查集int par[50002];void ini(int n){ for(int i=1; i<=n; i++) {...原创 2020-03-26 18:03:27 · 168 阅读 · 0 评论 -
Floyd模板题
题意众所周知,TT 有一只魔法猫。这一天,TT 正在专心致志地玩《猫和老鼠》游戏,然而比赛还没开始,聪明的魔法猫便告诉了 TT 比赛的最终结果。TT 非常诧异,不仅诧异于他的小猫咪居然会说话,更诧异于这可爱的小不点为何有如此魔力?魔法猫告诉 TT,它其实拥有一张游戏胜负表,上面有 N 个人以及 M 个胜负关系,每个胜负关系为 A B,表示 A 能胜过 B,且胜负关系具有传递性。即 A 胜过 ...原创 2020-04-02 17:27:14 · 439 阅读 · 0 评论 -
c++并查集模板题——戴好口罩
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstdio>using namespace std;//并查集int par[30005],sum[30005];void ini(int n){ for(int i=0;i<=n;i++) { par[i]=i; sum...原创 2020-03-26 18:10:24 · 428 阅读 · 0 评论 -
Dijkstra算法 模板题
题意众所周知,TT 有一只魔法猫。今天他在 B 站上开启了一次旅行直播,记录他与魔法猫在喵星旅游时的奇遇。 TT 从家里出发,准备乘坐猫猫快线前往喵星机场。猫猫快线分为经济线和商业线两种,它们的速度与价钱都不同。当然啦,商业线要比经济线贵,TT 平常只能坐经济线,但是今天 TT 的魔法猫变出了一张商业线车票,可以坐一站商业线。假设 TT 换乘的时间忽略不计,请你帮 TT 找到一条去喵星机场最快...原创 2020-04-02 17:48:39 · 557 阅读 · 0 评论 -
STring C++
Problem Statement东东有一个字符串X,该串包含偶数个字符,一半是 S 字符,一半是 T 字符东东可以对该字符串执行 1010000 次操作:如果存在 ST 是该串的子串,则删除掉最左边的 ST。即 TSTTSS⇒TTSS、SSSTTT⇒SSTT⇒ST⇒空Input(2 ≦ |X| ≦ 200,000)Output输出最终串的长度Sample Input 1TSTT...原创 2020-04-24 18:10:04 · 90 阅读 · 0 评论 -
c++实现——区间选点问题
题意数轴上有 n 个闭区间 [a_i, b_i]。取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)Input第一行1个整数N(N<=100)第2~N+1行,每行两个整数a,b(a,b<=100)Output一个整数,代表选点的数目Sample Input-121 54 6Sample Output-11Sample Input-2...原创 2020-03-14 21:54:21 · 1188 阅读 · 0 评论 -
东东学打牌
题面最近,东东沉迷于打牌。所以他找到 HRZ、ZJM 等人和他一起打牌。由于人数众多,东东稍微修改了亿下游戏规则:所有扑克牌只按数字来算大小,忽略花色。每张扑克牌的大小由一个值表示。A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K 分别指代 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13。每个玩家抽得 5 张扑克牌,组成一手牌...原创 2020-04-14 00:24:21 · 423 阅读 · 0 评论 -
c++实现--递归选数问题
题意给定一个数组,里面有n位正整数,要从这个数组里面选取K个数,使得它们的和为S,问有多少种可能的取法;Input第一行,一个整数T(T<=100),指示测试用例的数量。对于每个情况,有两行。第一行,三个整数表示n,K和S.其中K<=n<=16.第二行n个整数表示n个元素的数组。数据保证所有数字都可以以 32 位整数存储。Output对于每种情况,输出一个整数,...原创 2020-03-14 21:25:49 · 1083 阅读 · 0 评论 -
二阶魔方恢复——c++
题意:东东有一个二阶魔方,即2×2×2的一个立方体组。立方体由八个角组成。魔方的每一块都用三维坐标(h, k, l)标记,其中h, k, l∈{0,1}。六个面的每一个都有四个小面,每个小面都有一个正整数。对于每一步,东东可以选择一个特定的面,并把此面顺时针或逆时针转90度。请你判断,是否东东可以在一个步骤还原这个魔方(每个面没有异色)。Input输入的第一行包含一个整数N(N≤30)...原创 2020-04-25 16:50:00 · 1429 阅读 · 0 评论 -
c++——DDl的恐惧
题意ZJM 有 n 个作业,每个作业都有自己的 DDL,如果 ZJM 没有在 DDL 前做完这个作业,那么老师会扣掉这个作业的全部平时分所以 ZJM 想知道如何安排做作业的顺序,才能尽可能少扣一点分。请你帮帮他吧!Input输入包含T个测试用例。输入的第一行是单个整数T,为测试用例的数量。每个测试用例以一个正整数N开头(1<=N<=1000),表示作业的数量。然后两行。第...原创 2020-03-14 23:51:03 · 257 阅读 · 0 评论 -
c++实现——TT的神秘礼物
题意TT 是一位重度爱猫人士,每日沉溺于 B 站上的猫咪频道。有一天,TT 的好友 ZJM 决定交给 TT 一个难题,如果 TT 能够解决这个难题,ZJM 就会买一只可爱猫咪送给 TT。任务内容是,给定一个 N 个数的数组 cat[i],并用这个数组生成一个新数组 ans[i]。新数组定义为对于任意的 i, j 且 i != j,均有 ans[] = abs(cat[i] - cat[j])...原创 2020-03-15 13:09:34 · 348 阅读 · 0 评论