程序设计思维与实践
QiaoSu001
这个作者很懒,什么都没留下…
展开
-
CSP-M3
T4 咕咕东学英语思路:一开始理解得有偏差,直接计算符合要求的子串,导致复杂度非常高,最后只过了四个点,其余直接T了考虑到直接计算符合要求的子串比较复杂,那么反过来思考不符合要求的子串。因为子串的总数是确定的。考虑到字符合法的条件是存在于一个长度大于等于2的回文子串中,而且只有AB两种字符,所以如果一串字符是连续一致的,那么肯定符合要求。关键就在于字符出现变化的边界点上,比如AAABB,那么出现AB时该子串是不符合条件的,而且包括AAB/AAAB/ABB也都是不符合条件的。因此对于AB/BA这原创 2020-06-12 17:48:26 · 123 阅读 · 0 评论 -
CSP-201809-3元素选择器
CSP-201809-3元素选择器题目链接:http://118.190.20.162/view.page?gpid=T77题意理解:文档的基本组成为元素,元素的关键信息包括:文档当中的位置及缩进、标签、ID属性值;标签大小写不敏感,所以可以同一转换成大写或者小写;ID属性值大小写敏感;除最后一级外,前面的部分都可以尽量匹配层级小的元素。注意整个文档的结构类似于一棵树(由缩进决定之间的父子关系),因此后代选择器实际上对应着一条路径,根据这里的提示,我们应该从路径末尾往“根”走。原创 2020-06-06 23:58:53 · 197 阅读 · 0 评论 -
Week16-CSP-M4
TT数鸭子描述这一天,TT因为疫情在家憋得难受,在云吸猫一小时后,TT决定去附近自家的山头游玩。TT来到一个小湖边,看到了许多在湖边嬉戏的鸭子,TT顿生羡慕。此时他发现每一只鸭子都不一样,或羽毛不同,或性格不同。TT在脑子里开了一个map<鸭子,整数> tong,把鸭子变成了一些数字。现在他好奇,有多少只鸭子映射成的数的数位中不同的数字个数小于k。输入输入第一行包含两个数n,k,表示鸭子的个数和题目要求的k。接下来一行有n个数,a_i,每个数表示鸭子被TT映射之后的值。输出输出一行原创 2020-06-04 19:41:22 · 210 阅读 · 0 评论 -
Week15实验-T1T2训练
A - Q 老师的记录册Q 老师有 N 个学生,每个学生都有各自独立的编号,且编号范围在 1 ~ N 之间。这一天,所有学生都在不同的时间进入教室。Q 老师记录了当编号为 i 的学生进入教室时,教室中共有 Ai 个学生(包括编号为 i 的学生)。现要求根据这些记录,给出学生进入教室的顺序。Constraints1 ≤ N ≤ 1e5;1 ≤ Ai ≤ N,Ai 各不相同;所有数字均为整数Input输入格式如下:NA1 A2 … ANOutput根据学生进入教室的顺序输出学生的编号。原创 2020-06-03 22:42:56 · 229 阅读 · 0 评论 -
Week14模拟题-猫睡觉
A - 猫睡觉问题众所周知,TT家里有一只魔法喵。这只喵十分嗜睡。一睡就没有白天黑夜。喵喵一天可以睡多次!!每次想睡多久就睡多久╭(╯^╰)╮。喵睡觉的时段是连续的,即一旦喵喵开始睡觉了,就不能被打扰,不然喵会咬人哒[○・`Д´・ ○]。可以假设喵喵必须要睡眠连续不少于 A 个小时,即一旦喵喵开始睡觉了,至少连续 A 个小时内(即A*60分钟内)不能被打扰!现在你知道喵喵很嗜睡了,它一天的时长都在吃、喝、拉、撒、睡,换句话说要么睡要么醒着滴!众所周知,这只魔法喵很懒,和TT一样懒,它不能连续活动超过 B原创 2020-06-03 22:41:07 · 143 阅读 · 0 评论 -
Week14作业-必做题
A - Q老师与石头剪刀布每一个大人曾经都是一个小孩,Q老师 也一样。为了回忆童年,Q老师 和 Monika 玩起了石头剪刀布的游戏,游戏一共 n 轮。无所不知的 Q老师 知道每一轮 Monika 的出招,然而作为限制, Q老师 在这 n 轮游戏中必须恰好出 a 次石头,b 次布和 c 次剪刀。如果 Q老师 赢了 Monika n/2(上取整) 次,那么 Q老师就赢得了这场游戏,否则 Q老师 就输啦!Q老师非常想赢,他想知道能否可以赢得这场游戏,如果可以的话,Q老师希望你能告诉他一种可以赢的出招顺序,任原创 2020-06-03 22:40:06 · 141 阅读 · 0 评论 -
Week13作业-必做题
A - TT 的神秘任务1这一天,TT 遇到了一个神秘人。神秘人给了两个数字,分别表示 n 和 k,并要求 TT 给出 k 个奇偶性相同的正整数,使得其和等于 n。例如 n = 10,k = 3,答案可以为 [4 2 4]。TT 觉得这个任务太简单了,不愿意做,你能帮他完成吗?本题是SPJInput第一行一个整数 T,表示数据组数,不超过 1000。之后 T 行,每一行给出两个正整数,分别表示 n(1 ≤ n ≤ 1e9)、k(1 ≤ k ≤ 100)。Output如果存在这样 k 个数字,则原创 2020-06-03 22:38:49 · 134 阅读 · 0 评论 -
Week12作业-选做题-最长合法子序列
D-最长合法子序列We give the following inductive definition of a “regular brackets” sequence:the empty sequence is a regular brackets sequence,if s is a regular brackets sequence, then (s) and [s] are regular brackets sequences, andif a and b are regular bra原创 2020-06-03 22:37:47 · 172 阅读 · 0 评论 -
Week12作业-必做题
A给出n个数,zjm想找出出现至少(n+1)/2次的数, 现在需要你帮忙找出这个数是多少?Input本题包含多组数据:每组数据包含两行。第一行一个数字N(1<=N<=999999) ,保证N为奇数。第二行为N个用空格隔开的整数。数据以EOF结束。Output对于每一组数据,你需要输出你找到的唯一的数。实现:#include<iostream>#include<string>#include<cstring>#include<原创 2020-06-03 22:36:42 · 188 阅读 · 0 评论 -
CSP-201609-3炉石传说
http://118.190.20.162/view.page?gpid=T45思路:首先构建结构体role用来保存英雄/随从,包含生命值和攻击力两个变量,这样两名玩家分别用vector<role>表示。使用变量pl表示当前回合的玩家,每回合结束进行转换:0 <-> 1。输入字符串,判断操作类型,之后进行相应的处理:summon:直接调用vector里面的插入即可;attack:双方血量减少;并且判断攻击方血量是否<=0,如果是那么直接erase;如果被攻击.原创 2020-06-03 22:35:33 · 150 阅读 · 0 评论 -
Week11作业-必做题
A蒜头君从现在开始工作,年薪 NN 万。他希望在蒜厂附近买一套 6060 平米的房子,现在价格是 200200 万。假设房子价格以每年百分之 KK 增长,并且蒜头君未来年薪不变,且不吃不喝,不用交税,每年所得 NN 万全都积攒起来,问第几年能够买下这套房子?(第一年年薪 NN 万,房价 200200 万)输入格式一行,包含两个正整数 N(10≤N≤50)N(10≤N≤50),K(1≤K≤20)K(1≤K≤20),中间用单个空格隔开。输出格式如果在第 2020 年或者之前就能买下这套房子,则输出一原创 2020-06-03 22:34:05 · 317 阅读 · 0 评论 -
Week10作业-LIS/LCS/拿数问题
A - 签到题东东在玩游戏“Game23”。在一开始他有一个数字n,他的目标是把它转换成m,在每一步操作中,他可以将n乘以2或乘以3,他可以进行任意次操作。输出将n转换成m的操作次数,如果转换不了输出-1。Input输入的唯一一行包括两个整数n和m(1<=n<=m<=5*10^8).Output输出从n转换到m的操作次数,否则输出-1.思路:直接递归记录次数即可。实现:#include<iostream>using namespace std;l原创 2020-06-03 22:32:39 · 165 阅读 · 0 评论 -
Week10-限时大模拟
团队聚会思路:每项任务的构成包括起始时间和结束时间以及描述信息,后者对我们来说是无用的。显然我们需要一个结构体能够包含这些信息。那么结构体是表示时间还是表示任务?如何找到符合目标的时间段?首先我们需要确定搜索的空间,显然这里应该是所有的输入时间点(所以这里结构体表示时间更加简便)。 因此必然需要遍历去判断某个时间点是否符合要求,如何判断?这里的判断主要有两部分,一者是人数上的要求,一者是时间上的要求。由于人数上的要求,我们必然是每次都需要判断所有TA的任务,然后计算出可以参会的人数。所以这里要原创 2020-06-03 22:30:45 · 121 阅读 · 0 评论 -
Week9作业--模拟题
Week9作业A - 咕咕东的目录管理器思路:由于整个目录管理器是一个树形结构,我们需要根据各种操作的实现以及时间复杂度设计树节点的结构。首先是目录名称–节点名称,直接string。对于子目录,由于需要直接根据名字进入子目录,而且需要有序,所以可行的方法是使用map<string, int>可以直接log级别复杂度取到子目录。由于需要输出当前目录大小,转换成树的...原创 2020-04-24 15:51:43 · 176 阅读 · 0 评论 -
Week8-CSP-M2
A - HRZ 的序列思路:首先我们需要计算数的“种数”,即有多少种不同的数。如果有三种以上,显然输出NO。如果只有一种或者两种,那么直接输出YES。如果有三种数a<b<c,那么判断是否c - b == b - a即可。实现:#include<iostream>#include<algorithm>using namespace std;co...原创 2020-04-15 10:59:46 · 137 阅读 · 0 评论 -
Week8-图和树的性质与应用下
A - 区间选点 II给定一个数轴上的 n 个区间,要求在数轴上选取最少的点使得第 i 个区间 [ai, bi] 里至少有 ci 个点。输入第一行一个整数 n 表示区间的个数,接下来的 n 行,每一行两个用空格隔开的整数 a,b 表示区间的左右端点。1 <= n <= 50000, 0 <= ai <= bi <= 50000 并且 1 <= ci <...原创 2020-04-15 10:04:12 · 157 阅读 · 0 评论 -
Week7作业-最短路专题
Week7作业-最短路专题TT 的魔法猫众所周知,TT 有一只魔法猫。这一天,TT 正在专心致志地玩《猫和老鼠》游戏,然而比赛还没开始,聪明的魔法猫便告诉了 TT 比赛的最终结果。TT 非常诧异,不仅诧异于他的小猫咪居然会说话,更诧异于这可爱的小不点为何有如此魔力?魔法猫告诉 TT,它其实拥有一张游戏胜负表,上面有 N 个人以及 M 个胜负关系,每个胜负关系为 A B,表示 A 能胜过...原创 2020-04-08 11:29:50 · 155 阅读 · 0 评论 -
CSP-201604-3路径解析
CSP-201604-3路径解析思路:刚开始没怎么看懂题意,主要是/../感觉有点奇怪,后来回想之前用过的cd ..就明白了: 对于绝对路径来说,只是切换到上一层而已,与题目给出的当前目录没有关系. 对于相对路径来说通过添加当前目录直接转换成绝对路径比较方便.算法:判断当前路径形式:绝对路径:/./直接删除.///两个/直接删除一个/../需要区分第一个/是根目录还...原创 2020-04-03 12:11:39 · 158 阅读 · 0 评论 -
Week6作业-图问题
Week6作业-图问题氪金带东实验室里原先有一台电脑(编号为1),最近氪金带师咕咕东又为实验室购置了N-1台电脑,编号为2到N。每台电脑都用网线连接到一台先前安装的电脑上。但是咕咕东担心网速太慢,他希望知道第i台电脑到其他电脑的最大网线长度,但是可怜的咕咕东在不久前刚刚遭受了宇宙射线的降智打击,请你帮帮他。输入文件包含多组测试数据。对于每组测试数据,第一行一个整数N (N<=100...原创 2020-03-31 12:40:35 · 207 阅读 · 0 评论 -
Week6限时模拟-掌握魔法の东东 II
week6限时模拟-掌握魔法の东东 II思路:考虑使用结构体表示牌,使用数组表示左右的牌,之后问题转化为从A*B张牌中选出三张牌,并且三张牌不是初始的两张牌,对于5张牌进行判断类型即可。选出三张牌直接循环枚举即可。注意:主要是牌的类型判断出现过逻辑上的错误。在判断之前先排序便于后序操作。实现:#include<iostream>#include<algorithm...原创 2020-03-27 16:30:08 · 225 阅读 · 0 评论 -
Week5作业—线性数据结构/前缀和与差分/尺取法
Week5作业—线性数据结构最大矩形——单调栈给一个直方图,求直方图中的最大矩形的面积。例如,下面这个图片中直方图的高度从左到右分别是2, 1, 4, 5, 1, 3, 3, 他们的宽都是1,其中最大的矩形是阴影部分。输入包含多组数据。每组数据用一个整数n来表示直方图中小矩形的个数,你可以假定1 <= n <= 100000.然后接下来n个整数h1, …, hn, 满足 0...原创 2020-03-24 14:27:05 · 203 阅读 · 0 评论 -
CSP-201512-3 画图
CSP-201512-3 画图思路:注意在数组中保存的顺序与输出顺序的对应:对于输入的数据,其坐标系为左下角为原点,横向为x轴,纵向为y轴。如果我们使用同样的布局,即假设数组刚好与地图对应,那么x值其实变为数组坐标的y值。而且注意输出时我们必须先输出map[n-1]。画线段的操作应该只需要简单的循环即可。填充操作需要不断遍历四个方向,考虑使用BFS,特判有三个方面:是否超出画布边...原创 2020-03-20 15:41:13 · 225 阅读 · 0 评论 -
Week4-CSP-M1 补题
CSP-M1 补题咕咕东的奇遇咕咕东是个贪玩的孩子,有一天,他从上古遗迹中得到了一个神奇的圆环。这个圆环由字母表组成首尾相接的环,环上有一个指针,最初指向字母a。咕咕东每次可以顺时针或者逆时针旋转一格。例如,a顺时针旋转到z,逆时针旋转到b。咕咕东手里有一个字符串,但是他太笨了,所以他来请求你的帮助,问最少需要转多少次。输入只有一行,是一个字符串。输出最少要转的次数。思路:分析...原创 2020-03-17 23:39:39 · 148 阅读 · 0 评论 -
Week4作业——贪心/二分
Week4作业——贪心/二分贪心—DDL的恐惧ZJM 有 n 个作业,每个作业都有自己的 DDL,如果 ZJM 没有在 DDL 前做完这个作业,那么老师会扣掉这个作业的全部平时分。所以 ZJM 想知道如何安排做作业的顺序,才能尽可能少扣一点分。请你帮帮他吧!输入包含T个测试用例。输入的第一行是单个整数T,为测试用例的数量。每个测试用例以一个正整数N开头(1<=N<=1000)...原创 2020-03-15 00:41:24 · 221 阅读 · 0 评论 -
Week3作业——搜索/贪心
Week3——作业Problem AGiven n positive numbers, ZJM can select exactly K of them that sums to S. Now ZJM wonders how many ways to get it!The first line, an integer T<=100, indicates the number of ...原创 2020-03-11 22:52:08 · 168 阅读 · 0 评论 -
Week2作业——搜索/隐式图问题
Week2-作业练习github同步Problem A东东有一张地图,想通过地图找到妹纸。地图显示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹纸,这两个位置保证为0。既然已经知道了地图,那么东东找到妹纸就不难了,请你编一个程序,写出东东找到妹纸的最短路线。输入是一个5 × 5的二维数组,仅由0、1两数字组成,表示法阵地图。、输出若干行,表示从左上角到右下角的最短路径依次经...原创 2020-03-04 21:08:37 · 204 阅读 · 0 评论 -
Week2实验
Week2-实验Problem A假设如上图,这个烷烃基有6个原子和5个化学键,6个原子分别标号1~6,然后用一对数字 a,b 表示原子a和原子b间有一个化学键。这样通过5行a,b可以描述一个烷烃基。你的任务是甄别烷烃基的类别。输入第一行为数据的组数T(1≤T≤200000)。每组数据有5行,每行是两个整数a, b(1≤a,b≤6,a ≤b) 。数据保证,输入的烷烃基是以上5种之一每组...原创 2020-03-04 21:06:05 · 224 阅读 · 0 评论