杂题
嗯,,是的,字面意思,乱七八糟,啥题都有
陌陌623
BBZZUU
展开
-
子串分值-超详细版——最后的编程挑战
H.子串分值 困难- 细心可以做出一半 不细心可以做出一点点看了一些博客,终于是搞懂了这道题;很多博客都说了“贡献”我认为“贡献”是一个数x对于结果ans是有用的,并且我们可以求出有用的程度。我们把所有对ans有用的x求出来之后,ans自然也知道了。题解:假如有一个字符串:ooa1ooooa2oooa3oo注:o是任意字符, a1,a2,a3是一种字符a1能够提供贡献的字符串最长是:ooa1oooo 即:(ooa1oooo)a2oooa3oo如果字符串中同时有a1,a2,那么a对于字符串的原创 2021-04-13 19:45:59 · 372 阅读 · 3 评论 -
To 3 --- 最后的编程挑战
算是比较典型的dfs每以为两种情况 这个不难边界条件比较不容易判断,做的时候,调试了不少次才可sum是全部位上的和,只有sum%3==0就可删除:sum剪掉这一位上的数字不删除:记得i要移动,意义是判断第i位至于用string存储,感觉这个还是很容易想出的。dfs中我感觉写的并不是太好,大佬看见的话,可以评论发下代码哦~。#include <iostream>using namespace std;using ll = long long;string N;ll dfs(原创 2021-04-05 11:01:32 · 80 阅读 · 0 评论 -
Wandering --- 最后的编程挑战
要走N次:样例:32 -1 -2————————————————第一次走2第二次 先走2 再走-1第三次 先走2 再走-1 再走 -1————————————————从上面的三次行动中找出最远可以到的距离:就变成了这样:2 ———— 2 选22 -1 ———— 3 选2为4,走到第三步仍需要选择 -1 — 32 -1 -1 ———— 5 选2为5可以发现,想走到第三步,必须将第2步全部走完。而我们要的是这些步中最远的那个。如果是普通算法,可以直接O(N2)O(N^2)原创 2021-04-05 09:16:16 · 77 阅读 · 0 评论 -
小凡做蛋糕
小凡做蛋糕范围:(i, j) = (i, i + n - 2(i-1) - 1)得:j = i + n - 2(i-1) - 1 = n -i +1; 再得:i = j - n-1;一层蛋糕的四个角:i jj j而i就是层数,最终的结果是i*k虽然点会出现在四个边的任意一个地方但是,x,y中一定有一个是i或j再观察,边所有的横纵坐标中,i是最小的,所以min就行如果给的点是j 那么待到公式里就行如果是比j小的数k,代到公式里面,结果肯定比i大 因为算的.原创 2021-03-20 20:11:58 · 115 阅读 · 0 评论 -
人物相关性分析 C++代码 分析 二分
题目总结:二分求[x-n,x+n]区间 和 求字串两个考点:如何求某子串在字符串中的位置集合如何高效判断两个集合中的所有数的,绝对值之差小于某一个数求子串的位置:由于我们要求Alice和Bob的位置,而字符串中两个合法的单词是:在两个标点符号之间的串所以求出所有的合法单词,再判断是不是Alice或者Bob string temp = ""; for (int i = 0; i < n; i++) { // 如果s[i]是符号 那么s[i-1]原创 2021-03-12 18:01:56 · 479 阅读 · 0 评论 -
AtCoder Beginner Contest 189
A. Slot没啥说的,B. Alcoholic很好奇这样简单的题为啥没有ac原因是用了double,double会产生误差,所以不对如果用让数字大一点 把小数位*1000变成整数 就不会有误差了 学到了#include <iostream>#include <cmath>using namespace std;int main(){ int N, M; int sum = 0; cin >> N >> M;原创 2021-01-26 09:14:59 · 79 阅读 · 0 评论 -
1426:Find The Multiple BFS
题目连接没读透题,,以为是答案最长200位,所以用string写的,,写了会没写出来,看了题解才知道,也是一个简单题。#include <iostream>#include <queue>using namespace std;int main(){ int N; while (cin >> N) { if (!N) break; queue<long long>原创 2021-01-24 09:18:53 · 71 阅读 · 0 评论 -
ACboy needs your help again! 航电1702 map
Shopping*Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8470 Accepted Submission(s): 3020*Problem DescriptionEvery girl likes shopping,so does dandelion.Now she finds the shop is increasing the原创 2021-01-22 09:20:45 · 141 阅读 · 0 评论 -
产生冠军 航电2094 set应用
题解冠军只能有一个,记录总人数及失败的人数,因为冠军是从未失败过的,所以如果有冠军,则 总人数-失败人数=1#include <iostream>#include <vector>#include <set>using namespace std;int main(){ int N; while (scanf("%d", &N) && N != 0) { set<string> re原创 2021-01-22 07:53:02 · 111 阅读 · 0 评论 -
士兵队列训练问题 航电1276
士兵队列训练问题*Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24054 Accepted Submission(s): 10131*Problem Description某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报原创 2021-01-22 07:43:02 · 98 阅读 · 0 评论 -
看病要排队 航电1873
Problem Description看病要排队这个是地球人都知道的常识。不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。级别为10的优先权最高,级别为1的优先权最低。医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治。如果遇到两个优先权一样的病人的话,则选择最早来排队的病人。现在就请你帮助医院模拟这个看病过程。Input原创 2021-01-22 07:04:36 · 96 阅读 · 0 评论 -
L1-6 吃火锅 (15分)
想法这个题都15分 是不是有点简单了 连边界条件都不用判断:如果n ichi1 huo3 guo1? 前面是和其他相连,这样需要判断一下两边的情况。比赛的时候我还判断了一下,这次直接写个find就过了。姥姥太仁慈了。#include <iostream>using namespace std;int main(){ string s; int cnt = 0, index = 1; int first = 0; while (1) {原创 2020-12-01 19:32:56 · 704 阅读 · 0 评论 -
L1-5 胎压监测 (15分)
想法这个题也是超简单的一个,和前面两个题一样,题目知道啥意思了,什么都好说。真没做对,肯定是题没读懂。这个题还真卡了我一下,比赛的时候嘛,就是想赶紧做,就没认真读题,第一次写完,样例没对。然后又了看,才知道是啥意思#include <iostream>#include <algorithm>#include <cmath>using namespace std;int main(){ int a[10] = {0}; int maxt;原创 2020-12-01 19:25:05 · 735 阅读 · 0 评论 -
L1-4 调和平均 (10分)
想法比赛的时候,看这个“倒数的算数平均的倒数”,真的想了一下,其实不能理解哈。顺着读一遍应该就差不多了。#include <iostream>#include <cmath>using namespace std;int main(){ int N; cin >> N; int a[N + 10]; double sum; double x; for (int i = 0; i < N; i++)原创 2020-12-01 19:22:32 · 493 阅读 · 0 评论 -
L1-3 洛希极限 (10分)
想法比赛的时候,刚看这个题还真没看懂,比对了数据与题目,大概是知道了什么意思。代码比较简单,只是题目太长,看了冷烦哈哈。我觉得我做这样的题,虽然不算最快,但应该也能排到中上吧。害,简单题,但是多想了一些。#include <iostream>using namespace std;int main(){ double a, b, c; cin >> a >> b >> c; double t; if (b) {原创 2020-12-01 19:12:32 · 1123 阅读 · 0 评论 -
蓝桥-递增三元组-蓝桥
题解手动求解一下会发现,B数组是关键若固定b = B[i]a中的可能的取值是:a0 ----- at小于等于b的元素下标(小于b的个数)c中的可能取值是:大于c的元素下标ct ---- cn固定b后可以很容易的判断出a,c中的元素个数这是一个分步策略,最后可能的路径就是 at * (cn - ct)#include <iostream>#include <algorithm>#include <vector>using namespace std.原创 2020-10-13 21:20:51 · 164 阅读 · 0 评论 -
蓝桥-外卖店优先级-蓝桥
文章目录题目输入格式:输出格式:输入样例:输出样例:题解代码题目饱了么”外卖系统中维护着N家外卖店,编号1到N。每家外卖店都有一个优先级,初始时 (0时刻) 优先级都为0。每经过1个时间单位,如果外卖店没有订单,则优先级会减少1,最低减到0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加2。如果某家外卖店某时刻优先级大于5,则会被系统加入优先缓存中;如果优先级小于等于3,则会被清除出优先缓存。给定T时刻以内的M条订单信息,请你计算T时刻时有多少外卖店在优先缓存中。输入格式:第一行包含3原创 2020-10-13 13:44:49 · 226 阅读 · 0 评论 -
迷宫-蓝桥-迷宫-BFS-DFS
很久没有认真的写一道DFS和BFS的题了今天早上这个题花了1个多小时,竟然还没对。答案一直出错,我都快崩溃了,那么简单的题。。。我TM晚上又重写了一遍,答案对了。但是还是不知道为什么早上的错了。也没留备份。。算是一个标准的BFS模板题#include <iostream>#include <vector>#include <queue>using namespace std;const int dx[4] = {1, 0, 0, -1};const.原创 2020-10-05 21:10:57 · 1358 阅读 · 4 评论 -
L1-016 查验身份证
题解我觉得主要问题就是理解题目了吧我是没有看懂加权求和是什么意思 看了别的博客劝是用来乘的,每一位的数*这个位置对应的权值因为中间有可能有字符,所以用字符串来存储#include <iostream>#include <vector>using namespace std;int main(){ // 权重 int arr[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, ...原创 2020-07-11 14:51:51 · 135 阅读 · 0 评论 -
L1-039 古风排版
题解把一个字符串先变成一个二维数组再进行 行列 变换稍微麻烦的是最后一行的列可能不是正好的1. 可以用char数组,一开始就把它全赋值位空格,就不用担心最后出问题2. 我用的是string,在变成二维数组的时候就检查。当到达最后一个字符的时候,看是不是应该换行了,如果没有,说明是缺少的。#include <iostream>using namespace std;int main(){ int n; cin >> ...原创 2020-07-09 10:59:02 · 169 阅读 · 0 评论 -
L1-043 阅览室
题解1. 记录时间有个好方法,因为我们求的是中间的那段时间,那么把开始和结束的时间都转为分钟,再相减 。 小时*60+分钟2. 一个id要对应一个时间,那么就用map进行映射,键为id,值为时间3. 判断是否是错误:如果光有S,不用管,反正没有对应的E,他也算不到结果中去。 如果光有E,判断mp里是否有id,没有一定不是。3.2 有的话也不一定,有可能是id今天已经借走而且还上了。#include <iostream>#include <map>...原创 2020-07-09 10:12:36 · 275 阅读 · 0 评论 -
L1-044 稳赢
题解输赢比较好控制主要是平局定义一个计数器t 从0开始t == n 那么就到了平局的时候,t 重新为 0#include <iostream>using namespace std;// 稳赢函数string f(string s){ if (s == "ChuiZi") return "Bu"; else if (s == "JianDao") return "ChuiZi"; else...原创 2020-07-09 08:59:08 · 125 阅读 · 0 评论 -
L1-046 整除光棍
题解第一次做的时候,以为是大数除法,吓的我就没做其实在纸上上写一下就可以知道1. 先找出一个比x大的 全由1组成的数2. 例如例子,111/31 得到一个结果,这个结果就可以直接输出,他是最终结果第一位3. 然后应该用什么作为除数呢? 用111/31 的余数后面再加个14. 如果余数是0 说明可以整除了,就结束#include <iostream>using namespace std;int main(){ int x; ...原创 2020-07-09 08:44:36 · 112 阅读 · 0 评论 -
L1-059 敲笨钟
题解分别找到 , . 的位置查看位置的前3为是不是“ong”这个题有点坑的是,题目说后面保证有3个单词,但是前面有可能是空的所以要判断一下#include <iostream>using namespace std;int main(){ int N; cin >> N; cin.get(); while (N--) { string s; getline(cin...原创 2020-07-08 17:43:09 · 156 阅读 · 0 评论 -
L1-049 天梯赛座位分配
题解一开始我直接全部算出一个学校的座号,可是有个很大的问题,在转到下个队伍的时候经常加多,最终也是没有解决,搬来了以前老师的代码对全部的学校一起分配,外面套一个while(1)可是这样怎么退出呢1. 先看什么条件才给这个学校分配,已经分配的数量 < 应分配的数量2. 如果当前这个学校上一次最后分配的座位号 + 1 == 现在要分配的那么就再加1 说明现在只剩下了一个队伍#include <iostream>#include <v...原创 2020-07-08 17:15:55 · 147 阅读 · 0 评论 -
L1-050 倒数第N个字符串
题解整体看成进制转换问题10进制 —— 26进制给了倒数的数字,先转换成正数的,即要知道总数字总数字为26的L次方:每个都有26种变换,而L个因为是L个字符,所以while中要以L–#include <iostream>#include <algorithm>#include <cmath>using namespace std;int main(){ int l, n; cin >> ...原创 2020-07-08 16:12:40 · 92 阅读 · 0 评论 -
BFS - Meteor Shower - 流星雨
题解这个是我前三个月扔下的题,原来一直没有读懂是什么意思ps:这次也是看了别人的博客才知道大意:给你M个坐标,坐标后面是这个点爆炸的时间,注意点爆炸以后就不能再去了,不是只是一瞬间。 从源点开始,找一个永远都不会爆炸的点 所需要的时间(步数)题解:说了x,y的范围是小于300,所以这个矩阵就是一个300行列的矩阵。注意:输入的不是矩阵!!!(我一直以为是,所以才没看懂)矩阵初始值为inf(极大的数),哦对,这个矩阵不是真的,是一个存放每个点的爆炸时间在输...原创 2020-07-01 12:22:28 · 192 阅读 · 0 评论 -
PAT乙级-危险品装箱
集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里。比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸。本题给定一张不相容物品的清单,需要你检查每一张集装箱货品清单,判断它们是否能装在同一只箱子里。输入格式:输入第一行给出两个正整数:N (≤104 ) 是成对的不相容物品的对数;M (≤100) 是集装箱货品清单的单数。随后数据分两大块给出。第一块有 N 行,每行给出一对不相容的物品。第二块有 M 行,每行给出一箱货物的清单,格式如下:K G[1] G[2] … G[原创 2020-07-01 09:35:29 · 168 阅读 · 0 评论 -
7-4 古风A+B (15分)
注意一下超范围即可用STL函数#include <iostream>#include <string>using namespace std;int main(){ long long a, b, c; cin >> a >> b; string s = to_string(a + b); for (auto e : s) { cout << e << endl;原创 2020-05-20 21:08:34 · 173 阅读 · 0 评论 -
树8 File Transfer 详细 + 简洁 + 并查集
题目We have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to send a file from any computer on the network to any other?Input Specification:Eac原创 2020-05-15 12:40:32 · 129 阅读 · 0 评论 -
04-树4 是否同一棵二叉搜索树
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要检查的...原创 2020-04-17 15:51:28 · 147 阅读 · 0 评论 -
04-树5 Root of AVL Tree
An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more than one, rebalancing is...原创 2020-04-17 15:50:15 · 85 阅读 · 0 评论 -
堆中的路径
将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在一行中输出从H[i]到根结点的路径上...原创 2020-04-12 15:08:32 · 188 阅读 · 0 评论 -
还原二叉树 简洁
题目给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5题解用先序和中序组成一个二叉树...原创 2020-04-07 17:03:56 · 269 阅读 · 0 评论 -
L2-013 红色警报 (25分)
无向图问题题解就是找他们有几个区域如果删除之前和删除之后的区域数没变那么就不用拉警报以前自己写过 虽然对了 但写的很烂这是老师写的 思路很清晰#include <iostream>#include <algorithm>#include <vector>using namespace std;...原创 2020-04-01 19:21:52 · 310 阅读 · 0 评论 -
L2-030 冰岛人 (25分)
特别麻烦的一道题注释比较详细#include <iostream>#include <vector>#include <map>#include <cmath>#include <string>using namespace std;const int MAX_N = 100005;int N;//姓 和 下标map...原创 2020-04-01 17:37:40 · 235 阅读 · 0 评论 -
02-线性结构4 Pop Sequence (25分)
感觉不难 但写了挺久题解把1 - N作为输入数据把给的N个数作为输出的结果用i代表1 成功匹配就i++不成功就加到stack i也加不成功 还要看stack里有没有一直看 直到不满足输出为之#include <iostream>#include <stack>#include <vector>#inc...原创 2020-03-31 17:00:32 · 161 阅读 · 0 评论 -
统计二叉树度为2的结点个数 (10分)
利用一个int型变量来标记个数int NodeCount(BiTree T){ int s = 0; if (!T) return 0; if (T->lchild) s += NodeCount(T->lchild); if (T->rchild) s += NodeCount(T...原创 2020-03-25 17:21:55 · 2260 阅读 · 0 评论 -
PTA先序输出叶结点 (10分)
函数接口定义:void PreorderPrintLeaves( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Righ...原创 2020-03-25 17:15:23 · 1492 阅读 · 0 评论 -
PTA 二叉树的遍历 (15分)
前面的三个递归比较好做最后一个层次遍历 用数组模拟一下设两头,i是结尾,j是开头j++就是取出元素i++就是放进去元素如果i==j那么就是放完了void InorderTraversal(BinTree BT){ if (!BT) return; InorderTraversal(BT->Left); printf(" %c", B...原创 2020-03-25 17:07:48 · 1343 阅读 · 0 评论