![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
紫书
冷瞳丶Nemsis
一只肥宅
展开
-
Boxes in a Line UVA——12657
也可以查看这里 题目链接 题目大意:一共有n个盒子,编号1-n,共有m个操作,操作分为四种: 1、 1 b c操作:此操作会将b放在c的左边,使bc挨着,如果b已经在c的左边的话忽略。 2、 2 b c操作:此操作会将b放在c的右边,使bc挨着,如果b已经在c的右边的话忽略。 3、 3 b c操作:此操作会将b、c所在的位置翻转。 4、 4操作:此操作会将整个序列翻转 求在m个操作完成之后,所有奇...原创 2020-04-10 16:39:46 · 105 阅读 · 0 评论 -
Matrix Chain Multiplication UVA——442
也可以看这里 题目链接 题目大意:给出若干个矩阵及其维度,再给出若干个表达式,计算每个表达式中矩阵相乘的次数,如果两个矩阵不能相乘则输出error,表达式中有括号,但是每个括号中只有两个矩阵。 思路:栈的应用 这个题特殊在了每个括号中只有两个矩阵这个条件上,所以我们可以不用储存左括号,一旦遇到右括号,直接弹出两个判断即可。 代码: #include <cstring> #include...原创 2020-04-06 08:46:07 · 114 阅读 · 0 评论 -
Rails UVA——514
也可以查看这里 题目链接 题目大意:1-n这n个数按照升序序列进栈,问是否能以给出的序列出站 思路:栈 本来一开始以为只能用DFS的方法做,后来看了看dalao的文章才知道其实不用。期望序列我们储存在tar数组中,我们用一个变量idx,记录下一次要与tar匹配的值的下标,即需要满足 栈顶元素==tar[idx],这样只要栈顶满足这样的关系,就一直循环判断,知道栈空或者栈顶不满足这样的关系。 代码:...原创 2020-04-05 11:29:33 · 100 阅读 · 0 评论 -
Updating a Dictionary——UVA - 12504
也可以查看这里 题目链接 题目大意:给出一个旧词典和新词典,词典是以键值对的方式存储的,输出二者的变化: 1、如果至少包含一个新增键,那么先输出一个+,后面输出所有新增的键,用,分隔,按字典序上升输出 2、如果至少包含一个删除键,那么先输出一个-,后面输出所有删除的键,用,分隔,按字典序上升输出 3、如果至少包含一个修改键,那么先输出一个*,后面输出所有修改的键,用,分隔,按字典序上升输出 其实这...原创 2020-03-30 14:23:32 · 88 阅读 · 0 评论 -
Searching the Web——UVA - 1597
也可以查看这里 题目链接 题意:给出n篇文章,每篇文章有若干行,文章与文章之间用**********分开,再给出m个查询,查询分为四种: 1、A:查询所有包含A的那一行字符串 2、A AND B:查询一篇文章中同时包含A和B,A或B所在的那一行 3、A OR B:查询包含A或B所在的那一行 4、NOT A:查询不包含A的文章 在输出结果的时候,不同文章之间的行用----------分开,注意这里是...原创 2020-03-29 21:00:54 · 102 阅读 · 0 评论 -
Borrowers——UVA - 230
也可以查看这里 题目链接 题目大意: 给出若干本书及其作者,输入保证书名和作者长度不超过80个字符,而且书名中不会出现双引号,以END结束。接下来有若干个操作,分为三种: 1、BORROW操作:后面跟一个书名,表示借走这本书 2、RETURN操作:后面跟一个书名,表示归还这本书,但是这本书不会立即归还到书架上 3、SHELVE操作:后面不会跟任何东西,表示把所有归还的数放到书架上,书架上按照作者字...原创 2020-03-26 21:08:38 · 142 阅读 · 0 评论 -
Printer Queue
也可以查看这里 题目链接 题目大意:给出长度为n的一个队列,你所在的位置是m,0 <= m < n,每个任务有一个优先级,如果队列中没有优先级比当前队头的任务的优先级高,那么就直接打印这个任务,否则,就将这个任务添加到队列末尾 思路:直接用queue模拟即可 坑点:如果一个任务不打印的话是不消耗时间的 代码: #include <queue> #include <cs...原创 2020-03-26 15:27:54 · 130 阅读 · 0 评论 -
Symmetry
也可以查看我的个人博客,秋梨膏,(☆ω☆) 题目链接 题意:一共T组数据,每组输入N个点,N<=1000,问这些点是否关于某个竖线对称 思路: 1、假设这些所有点中x最小为a,最大为b,那么如果这些点关于某条竖线对称,那么一定是(a+b)/2,因为最左端的点一定是和最右端的点对称的。 2、假设竖线的横坐标是x,那么可以知道x = (a + b) / 2 ,a和b的含义同1中的a和b,那么对于...原创 2020-03-24 13:07:13 · 313 阅读 · 0 评论 -
Compound Words
也可以查看我的个人博客,秋梨膏,(☆ω☆) 题目链接 题意:给出若干字符串,如果某个字符串可以由其他两个字符串拼接而成,则输出这个字符串,输出结果按字典序输出 思路:一开始以为O(n^2)可以过的,后来才发现输入数据有最多可能有120000个,(╯‵□′)╯︵┴─┴,我们可以用set存储所有字符串,遍历每一个字符串,接着再将这个字符串拆成两个字符串,可以利用substr函数,如果这两个字符串在se...原创 2020-03-24 08:05:15 · 229 阅读 · 0 评论 -
Ducci Sequence
也可以查看我的个人博客,秋梨膏,(☆ω☆) 题目链接 题意:一共有T组测试,每组给出n个数,这n个数组成一个n元组,这一个元组重复一个操作,每个数在操作之后变为他与后一个值的差值的绝对值,如果是最后一个数则是和第一个数的差值的绝对值,问这个元组最后每个数会变成0还是会一直循环 思路:暴力模拟即可,但这个题要注意怎么表示这个n元组,我是用vector表示的,再用map存每一个状态,一开始用结构体里面...原创 2020-03-23 05:45:58 · 137 阅读 · 0 评论 -
Alignment of Code
也可以查看我的个人博客,秋梨膏,(☆ω☆) 题目链接 题意:给出不超过1000行的字符,每行字符不超过180个字母,每一行中的␣代表一个空格,现在需要将每一列左对齐,请输出对其后的每一行。 思路:每次读取一行,再将每一个单词"取出来",之后存在对应一行的vector中,并且取出来之后更新该单词所在列的最大宽度,之后输出的时候,如果是第一列,直接输出即可,如果不是,那么要先输出len[j - 1] ...原创 2020-03-23 04:22:32 · 78 阅读 · 0 评论 -
Database
也可以查看我的个人博客 题目链接 题目大意:给出一个n行m列的表,每一行中,相邻两列的值以逗号分隔,请你判断,这个表是否存在两行,r1 , r2,使得某两列c1,c2,满足关系**(r1,c1) = (r2,c1) , (r1,c2) = (r2,c2)** ,英语不好一开始没翻译出来这个等式( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃,以为就是找两个重复存在的值,找到他们的行和列就行了(╯‵□′)╯︵┴─┴ ...原创 2020-03-20 21:03:10 · 94 阅读 · 0 评论 -
Unix ls
也可以查看我的个人博客 题目链接 题目大意:给出若干字符串对这些字符串排序之后,以列的优先级输出一个矩阵,对于每一列,如果是最后一列,那么必须输出maxLen个字符,如果不是最后一列,那么输出maxLen+2个字符。不够的用空格补齐。其中,maxLen是这若干个字符串中最长的那个字符串的长度。但是,每一行的字符数量不能超过60个。 思路:由题可知 maxLen + (column - 1) * (...原创 2020-03-19 23:15:45 · 115 阅读 · 0 评论 -
The SetStack Computer
也可以查看我的个人博客 题目链接 题意:现有一个栈,有五种操作: 1、PUSH操作: 添加一个空的集合{}到这个栈中 2、DUP操作: 将栈顶复制一份再添加到这个栈中 3、UNION操作: 从栈中弹出两个集合,再将这两个集合的并集加入到栈中 4、INTERSECT操作: 从栈中弹出两个集合,再将这两个集合的交集加入到栈中 5、ADD操作: 从栈中弹出两个集合,并把先弹出的集合添加到后弹出的集合中,...原创 2020-03-03 23:33:53 · 162 阅读 · 0 评论 -
Team Queue
也可以查看我的个人博客 题目链接 题意:给出t组人的编号,每组有n个人,还有一个团队队列,现在要对其进行两种操作: 1、ENQUEUE x操作: 将x添加到这个队列中,如果与x同组的人也在这个队列中,那么x会直接插入到同组人的后面,如果没有,则直接插入到队尾 2、DEQUEUE 操作: 将这个团队队列的第一个人弹出并输出他的编号 思路: 用一个队列去存储每一个队伍的编号,再用t个队列存储每一组的人...原创 2020-03-03 23:20:32 · 116 阅读 · 0 评论 -
Andy's First Dictionary
也可以查看我的个人博客 题目链接 题目大意:给出不超过5000行的英文,按照字典序打印所有单词,若一个单词多次出现,那么只打印一次,并且所有单词都要转成小写单词。 思路:set的使用,每次读取一个字符串,将每一个字符串变成小写字符,如果出现标点,则将其变为空格,最后再用stingstream输入一次即可 代码: #include <set> #include <sstream&g...原创 2020-03-02 17:02:25 · 97 阅读 · 0 评论 -
Where is the Marble?
也可以查看我的个人博客 题目链接 题目大意:给出n和m,接下来给出n个数,先对这n个数从小到大排序,接着会有m个询问,每次输入一个数, 查找这个数是否存在。 思路:用c++的lower_bound或者暴力求解都是可以的 代码: #include <cstring> #include <iostream> #include <algorithm> using n...原创 2020-03-01 04:29:33 · 154 阅读 · 0 评论 -
Morse Mismatches
也可以查看我的个人博客 题目链接 题目大意: 给出若干摩斯密码,再给出若干个单词,最后给出一些暗文,问这些暗文最可能是哪个单词? 如果暗文能够跟多个单词精确匹配,那么输出第一个并在后面加上一个!。 如果只能够跟一个精确匹配,那么就直接输出。 如果不能够精确匹配,那么就寻找与当前暗文最相似的一个单词,并在后面加上一个?,如果有多个就输出任意一个即可。 这里最相似的单词就是这个暗文添加或者删除一些摩斯...原创 2020-02-29 18:17:55 · 123 阅读 · 0 评论 -
IP Networks
也可以看这里个人博客 题目链接 题目大意:一共有若干组输入,每组给出一个数m和m个IP地址,求这些IP地址的网络段号和子网掩码。 其实看到这个题之后不是很明白怎么求解,去网上百度了一番之后发现可以先用IP地址求子网掩码,求出子网掩码之后再用子网掩码与任意一个IP地址按位与就能得出网络段号。 假设有两个IP地址,我们先从左往右,查看这四位当中的哪一位不相同,找到之后,这位之前的都变成255,这位之后...原创 2020-02-29 10:08:37 · 237 阅读 · 0 评论 -
Cube painting
题解也可以看这里个人博客 题目链接,懒得弄图片了hhh 题目大意:给出两个色子,每一个色子是用一个长度为6的字符串描述的,描述的顺序在链接里面。让你判断给出的两个色子是不是同一个色子 这种题一开始上来就感觉好麻烦啊。。。想了好久,后来才想到可以固定一个面,然后在旋转四次对其进行判定。 例如: 如果给出的一个色子是abcdef,下标从0-5,那么我们可以首先把每一面都变成色子的顶面,假设把第2号面变...原创 2020-02-28 20:13:04 · 200 阅读 · 0 评论 -
Othello
Othello is a game played by two people on an 8 x 8 board, using disks that are white on one side and black on the other. One player places disks with the white side up and the other player places disk...原创 2020-02-24 21:00:19 · 161 阅读 · 0 评论