![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OJ —— UVA
文章平均质量分 72
smwqd_yehua_cx
梦想,可以天花乱坠,理想,是我们一步一个脚印踩出来的坎坷道路。
展开
-
Appearance Analysis UVALive(模拟)
题目链接:https://vjudge.net/problem/UVALive-7747题意:给定r*w的图,包含若干窗户,每个窗户由“.”或“+”组成,每个窗户大小相等(矩形非正方形),相邻窗户间有“#”间隔开,大矩形的外围也是一圈“#”,求一共有多少种不同的窗户。若一个窗户经过旋转0 90 180 270或360度能与另一个窗户完全重合,则认为这两个窗户是同一种窗户。思路:我是直接模拟原创 2017-08-31 10:45:24 · 320 阅读 · 0 评论 -
Guess UVA - 1423(拓扑排序)
题目链接:https://vjudge.net/contest/180830#problem/F题意:给定一个长度为(n + 1) / 2的串一次表示sum(i,j)的正负,1 思路:对区间和sum进行拓扑排序。设sum[x]为1~x的和,若sum(i,j) > 0则表示sum[j] - sum[i - 1] > 0即sum[j] > sum[i -1];若sum(i,j) 代码如下:原创 2017-08-21 20:16:55 · 246 阅读 · 0 评论 -
Guardian of Decency UVA - 12083 (二分匹配)
题目链接:https://vjudge.net/contest/180830#problem/C题意:n个学生,老师想带一部分学生出去但是又怕还有人发展为情侣,满足下列条件之一不会成为情侣:(1)二人身高差大于40cm;(2)二人同性;(3)二人喜欢不同的音乐;(4)二人喜欢相同的运动。求老师最多可以带多少人出去。思路:在男女可能发展为情侣的人之间建边,求出该二分图的最大匹配数,用总人数减原创 2017-08-21 20:07:19 · 170 阅读 · 0 评论 -
HDU4165 (卡特兰数列) Pills(简单期望DP)
碰到递归题目还是很蒙,感觉无从下手,其实找出递归关系就很简单了。递归题目的代码量往往很小。看了这位大牛的解析才弄懂得,超详细又简单易懂。http://www.myext.cn/other/a_21926.html题意:瓶子里共有N片药片,第一次拿出一片吃掉一半后将另一半放回瓶中。之后每次拿出一个药片,如果这个药片是一半的话就直接吃掉,否则就吃掉一半将另一半放回瓶中。每次拿出的如果是半片药片原创 2016-05-11 18:48:28 · 499 阅读 · 0 评论 -
UVa 1103 - Ancient Messages [进制转换+DFS]
题目链接:点击打开链接DFS求连通块的题目,看了好几遍题解才真正弄懂,其实算法并不难,对我而言难的是从题目中读懂题意找到思路,很感谢网上详细明了的题解。提意简述:给定象形符号的十六制表示方法,找到对应的象形符号,并按字典序递增的顺序输出所有的象形符号。思路:先将给定的十六进制H*W矩阵先转化成二进制H*(4*W)矩阵,此时0代表空白,1代表黑点(象形符号由1组成)。由于每个象形符号内部原创 2016-05-17 19:34:07 · 385 阅读 · 0 评论 -
uva 272 TEX Quotes(水题)
点击打开链接这是我接触ACM刷的第一道题,给定一篇文章,将前后引号改变一下,其他不变。很水的一道题,一个字符一个字符读入就好,碰到前后引号输出给定字符,其他的原样输出就好。#include#include#include#include#include#includeusing namespace std;int main(){ int a,q =原创 2016-07-01 17:14:00 · 213 阅读 · 0 评论 -
UVA 10082 WERTYU(水题)
点击打开链接将整个键盘按顺序储存在一个字符数组里,输出前一位即可,注意特别处理第一个字符。#include//#include//#include//#includechar s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";int main(){ int a,i,j; while((a = g原创 2016-07-01 17:29:03 · 298 阅读 · 0 评论 -
uva401 Palindromes(回文串判断 水题)
点击打开链接给定很多行字符串,判断每行字符串是否是对称的或者是回文,根据判断结果输出相应内容。将每个字符的回文储存在一个字符数组中便与判断,没啥难度,再写一遍错在输入的字符数组的名字写错了,mdzz...#include#include#include#include#include#includeusing namespace std;char s[] = "A原创 2016-07-01 18:03:53 · 275 阅读 · 0 评论 -
uva 340 Master-Mind Hints(水题)
点击打开链接直接在输入时统计A的数目即可,对于B,先统计1~9分别在目标串与比较串中出现的次数aa,bb,而且取小就是该数字对B的贡献,加起来最终减去A即可。几个月前写时估计我是不理解求B的部分的,只是盲目的为了刷题而刷题,其实还是太急功近利。最近几个月心态很不好,一度停滞不前甚至都没碰电脑,现在想想其实曾经带给我们的伤痛的事过去那段时间以后那都不是事,他们只是在教会我们成长而已。原创 2016-07-01 23:50:43 · 299 阅读 · 0 评论 -
uva 1583 Digit Generator(水题 打表)
点击打开链接输入一个数,输出其最小生成元。刚开始看时一脸懵逼,想要对于给定的每一个数倒着找,但是那样没法写。字数上用的打表,最终查表直接输出即可,一定要学会这种方法,有时能够很有效的避免TLE并且很简洁。#include#include#include#include#define maxn 100001int main(){ int a[maxn],k,t;原创 2016-07-02 00:04:14 · 201 阅读 · 0 评论 -
Web Colors UVALive - 7013(水题带公式)
题目链接:https://vjudge.net/problem/UVALive-7013#include using namespace std;string s[20] = {"White", "Silver","Gray", "Black", "Red", "Maroon", "Yellow", "Olive", "Lime", "Green", "Aqua", "Teal", "Bl原创 2017-08-24 20:04:29 · 188 阅读 · 0 评论 -
Working Hours UVALive - 7017(简单模拟)
题目链接:点击打开链接思路:将所有时间化成分钟进行加减计算,输出时再转化成h:mm的形式即可。代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing na原创 2017-08-24 20:07:00 · 212 阅读 · 0 评论 -
Error Curves UVA - 1476 (三分)
题目链接:https://vjudge.net/problem/UVA-1476题意:S(x) = a * x ^ 2 + b * x + c,给定n个a b c的值从而确定n个S(x)方程式,F(x) = max(Si(X)),求F(x)最小值。思路:看到S(x)定义发现其是一个先减后增(凹函数)的函数(0 代码如下:#include#include#include#inc原创 2017-08-29 09:29:27 · 245 阅读 · 0 评论 -
Argus UVA - 1203(排序 优先队列)
题目链接:https://vjudge.net/problem/UVA-1203题意:给定若干行信息,每行包含字符串s,整数ID-number,整数period,代表s在ID-number时刻产生,自此每隔period产生一个s。求前n个信息分别是什么。思路:求出每个s产生的n个信息分别对应哪个时刻,将所有的信息按时刻从早到晚排序,输出前n个#include#include#inclu原创 2017-08-29 09:15:51 · 310 阅读 · 0 评论 -
Watering Grass UVA - 10382 (几何图形 贪心)
题意:给定一个L*W的矩形和若干圆,求最少用多少圆能够将矩形区域全部覆盖。若无解输出-1,否则输出最小的数目。思路:贪心思路,每次设定当前已覆盖的区域最右侧边界x,每次找l=x中r的最大值,计数加一,x更新为r。写的时候一直出错是一直当圆形看,其实最简单的方法就是求出每个圆占据的L*W大矩形区域的小矩形面积l*W,将n个圆转化成n个矩形。(若圆的直径小于等于W,怎该圆无法占据矩形区域,忽略此圆原创 2017-08-23 16:52:43 · 211 阅读 · 0 评论 -
The Closest Pair Problem UVA - 10245(暴力)
题目链接:https://vjudge.net/problem/UVA-10245题意:n个点,求距离最近的两点之间的距离,若没有距离小于10000,则输出INFINITY。思路:直接暴力代码如下:#include#include#include#include#include#include#include#include#include#include#in原创 2017-08-23 17:16:31 · 203 阅读 · 0 评论 -
Circum Triangle UVA - 11186(n^3暴力或n^2容斥推理)
题目链接:https://vjudge.net/problem/UVA-11186题意:给定一个圆的半径,圆心为(0,0)。给定圆上n个点,圆上任意三个点比不共线,任意三点均可以组成三角形,求能组成的所有三角形的面积之和。思路:直接n^3枚举所有的三角形,对面积求和即可;n^2容斥推理也可以,参考的是这个博客http://blog.csdn.net/shimmer_/article/det原创 2017-08-23 17:10:31 · 312 阅读 · 0 评论 -
Robot Race UVALive - 7020(几何数学 判断钝角)
题目链接:https://vjudge.net/problem/UVALive-7020题意:按顺序给定n个点的坐标,问有没有一个点到第三个点的距离小于第二个点到那第三个点的距离,切第二个点在第一个点之后,有存在输出Unfair,反之输出Fair。思路:判断相邻点与他们后面其他点之间会不会组成钝角,若会则Unfair,反之Fair。代码如下:#include#include#i原创 2017-08-24 20:45:14 · 307 阅读 · 0 评论 -
Dragons UVALive - 7018(二分 + 并查集)
题目链接:https://vjudge.net/problem/UVALive-7018题意:n个城市之间有m条路。共有K条龙,第Ki条龙住在Ci城市,初始有Si个头,只要他活着(头的数目不为0)每分钟会长出Ni个头。现要雇佣x名猎人去杀龙,每分钟每个猎人有两种选择:(1)在当前城市砍去龙的一个头;(2)沿着路去往相邻城市。求x的最小值。思路:二分判断mid是否是最小的可行解。由于城市间共原创 2017-08-24 20:40:03 · 239 阅读 · 0 评论 -
Elevators UVALive - 7015 (水最短路)
题目链接:https://vjudge.net/problem/UVALive-7014题意:对于一个S条提交记录的榜,判断其最早成为符合要求的榜的时间,即最早从符合要求的榜变成不符合要求的榜的时刻,若没有,输出“--:--:--”。符合要求的榜要求如下:(1)所有队伍都出题了;(2)没有队伍AK;(3)所有题目都有队伍做出来了;(4)没有题目被所有队伍做出来。思路:首先将S条提交记录按时原创 2017-08-24 20:24:38 · 466 阅读 · 0 评论 -
Elevators UVALive - 7015 (水最短路)
题目链接:https://vjudge.net/problem/UVALive-7015题意:n个电梯,每个电梯只能在特定的楼层停,若不换乘电梯,则从楼层x到楼层y所花费时间为abs(x-y),在某一楼层换乘电梯不消耗时间。求从当前所在楼层到目的楼层所需最小时间。思路:输入中给的同一电梯相邻楼层建边,floyd求一次最短路,然后直接输出即可。代码:#include#include原创 2017-08-24 20:19:23 · 269 阅读 · 0 评论 -
uva 1584 Circular Sequence(环状串的最小字典序表示法)
点击打开链接没什么难点,直接遍历下标比较就行。用变量ans表示当前字典序最小表示方法在该串中的起始位置,然后移动下标比较字典序,不断更新ans即可。#include#include#include#include#include#includeusing namespace std;const int maxn = 110;int less_(const char原创 2016-07-02 00:20:45 · 416 阅读 · 0 评论 -
uva 1585 Score(水题)
点击打开链接水题,紫书描述很清楚,直接写就行。#include#include#include#include#define maxn 85int main(){ int t; char s[maxn]; scanf("%d",&t); while(t--) { int flag = 0,score = 0;原创 2016-07-02 00:29:30 · 261 阅读 · 0 评论 -
ENimEN UVA - 11892 (简单博弈推理)
题目描述:在NIM博弈的基础上加一个限制条件,若先手取石块的那堆石块没有被取完,那么后手必须在这堆石块上取石头。思路:推了一个小时才做出来,怎么说呢,结论不难推场上很多很多16级同学都退出来了,但我作为15级学姐却花费了那么长的时间才做出这道题。其实题目并不难,但是可能因为之前很少做出博弈题,所以对它有一定的畏惧吧,自己心里先怕了又怎么可能很快的做出来呢。扯远了,还是说一下结论吧,新加的这个限原创 2017-07-27 09:38:39 · 256 阅读 · 0 评论 -
UVA - 11181 (概率)
题目描述:对于n个人给定每个人买东西的概率,现已知n个人中只有r个人买了东西,求每个人买东西的概率。思路:用ans数组储存结果,dfs求出r个人买东西的概率之和,vis数组标记这r个人分别是谁,如果再求这r个人中有第i个人,则ans[i]加上此次所求概率。最后对于每个ans[i]再除以总概率即可。代码如下:#include#include#include#include#inc原创 2017-07-27 10:14:22 · 184 阅读 · 0 评论 -
Cheerleaders UVA - 11806 (容斥原理)
题述:对于一个n*m的广场,共有n*m个格子,要放k个东西,每个格子上只能放一个东西且第一行、最后一行、第一列和最后一列上都必须至少放一个东西。在四个顶点的格子相当于同时占了一行和一列。思路:训练赛的时候第一反应是也许可以枚举所有的情况,但稍微一想发现那是不现实的,就转去做其他题目了,结果一个dfs因为姿势不对tle到无奈,所以最后没时间写这道题。赛后仔细想了想,又结合网上的文字叙述自己推了一原创 2017-07-27 13:49:20 · 212 阅读 · 0 评论 -
Power of Matrix UVA - 11149 (矩阵快速幂 矩阵前k次方之和)
题目描述:输入一个矩阵,输出其前k项次方之和。思路:矩阵的n次方用矩阵快速幂写,当k为偶数时,A + A^2 + A^3 + ... + A^k = A + A^2 + ... + A^(k/2) + A^(k/2) * ( A + A^2 + ... + A^(k/2) ) = (E + A^(k/2) ) * ( A + A^2 + ... + A^(k/2) ),当k为奇数时,A + A原创 2017-07-27 15:50:08 · 328 阅读 · 0 评论 -
GCD - Extreme (II) UVA - 11426 (欧拉函数)
题目描述:输出G =∑GCD(i, j) 其中 1 思路:这道题的思路特别巧妙,我看蓝书看了好久才能自己推明白,然后又去看了欧拉函数才能自己写出来。设F(n) = gcd(1,n) + gcd(2,n) + ... + gcd(n - 1, n)。则题中所求可以转化为S(n) =∑F(i) 其中1 < i <= n。右递推式可知S(n) = S(n - 1) + F(n),那么问题的关键变成了原创 2017-07-27 17:10:38 · 205 阅读 · 0 评论 -
Brackets sequence UVA - 1626(区间DP)
题目链接:https://vjudge.net/problem/UVA-1626题目描述:首先规定了合法的串瞒着:(1)空字符串是合法的串;(2)若串S是合法的串,则串(S)和 [ S ] 都是合法的串;(3)若串A和串B是合法的串,则串AB是合法的串。给定一个字符串,只可能由()[ ] 四个符号组成,求最少添加多少符号,可以使这个串变成合法的串。思路:打训练赛时判断错题型了,以为用栈原创 2017-08-14 21:56:10 · 181 阅读 · 0 评论 -
Party at Hali-Bula UVA - 1220 (简单树形dp)
题目链接:https://vjudge.net/problem/UVA-1220题目描述:某人举办宴会请客,对于直属上下级关系的人不会同时请,除了大Boss外其他人都仅有一个直属上司,问最多能请多少人,所请的人是否唯一。思路:训练赛时看了一眼这道题感觉dfs应该能过,但是跑去做另一道眼熟的题目去了,结果那道题也没做出来,这道题最后也没时间做了。赛后补题果然发现这道题更好做,第好几次判题失误原创 2017-08-15 09:32:14 · 221 阅读 · 0 评论 -
Game of Sum UVA - 10891(区间dp)
题目链接:https://vjudge.net/problem/UVA-10891题目描述:对于一组数据,两个人轮流取,每次只能从最左端或最右端连续取1个或者多个数据,每个人都希望自己能取的最大数据和的数据,故均采取最优策略的取法。求在双方均才取最优策略的情况下先手所取数据和与后手所取数据和之差。思路:因为不擅长博弈题,所以一看到这种题目描述就自然而然的以为是博弈,然后就跑去做其他题目了,原创 2017-08-15 10:10:46 · 240 阅读 · 0 评论 -
Corporative Network UVA - 1329(并查集的修改与查询)
题目链接:https://vjudge.net/problem/UVA-1329题目描述:给定n个点,一开始其父节点都是其自身。两个直接相连的结点uv间的距离是abs(u - v) % 1000。进行两种操作,E i 代表查询i到其父节点的距离,I i j表示将i的前驱结点设为j(i j直接相连)。其实也就是修改了一些父节点的值,求某个结点到根节点的距离。在贴场上写的AC代码前突然想到一组样例原创 2017-08-18 17:01:36 · 310 阅读 · 1 评论 -
Bandwidth UVA - 140(全排列 暴力)
题目描述:给定一个字符串说明各字母之间相连的情况,每个字母的距离为到与它相连的字母中的最大距离,对这些字母求一个序列,使得最大距离最小。思路:全排列么枚举,求出每种情况的最大距离取最小值即可。比赛时脑残读错题意了,以为排列顺序只能按边走结果dfs了半天都推不出样例中的3。改了一个小时反应过来,又删了用全排列写,结果全排列忘记排序并且全排列格式错了,一直不出结果,无奈又改回dfs模拟全排列,匆忙原创 2017-07-25 16:41:16 · 242 阅读 · 0 评论 -
Help is needed for Dexter UVA - 11384(分治 找规律)
题目描述:给定一串数字1~n,每次可以选取任意个数字对他们减去任意一个数字x,求将这n个数全部减为0所需的最小处理次数。思路:我做时算是在边推边找规律吧,推到n为12才突然反应过来:F(n) = F(n / 2) + 1。如1 2 3 4 5 6 7首先将4 5 6 7分别减去4得到1 2 3 0 1 2 3此时相当于将原来的串1 2 3 4 5 6 7 变成了1 2 3,然后将所有的2 3减原创 2017-07-25 16:10:21 · 221 阅读 · 0 评论 -
uva 1586 Molar mass(水题)
点击打开链接水题,直接分离出字母数字然后计算即可。注意判断分子量是一位数还是两位数。#include#include#include#include#define maxn 101int main(){ int t; char s[maxn]; scanf("%d",&t); while(t--) { scanf("%原创 2016-07-02 00:34:22 · 192 阅读 · 0 评论 -
uva 1225 Digit Counting(水题)
点击打开链接水题,每次直接对分别对1~n这n个数统计1~9出现的次数即可。1~9出现的次数储存在一个int型数组a[10]中。#include#include#include#include#define maxn 100000000int a[10] = {0};int main(){ int t; //char s[maxn]; scanf("原创 2016-07-02 00:40:55 · 213 阅读 · 0 评论 -
uva 455 Periodic Strings(暴力 判断周期串)
点击打开链接判断一个字符串是否为周期串,如果是的话输出去最小周期,否则输出串长。方法:从s[1]开始判断是否为周期串,如果是的话得到的下标 i 就是最小周期直接输出即可。判断的方法自然是看从j = i 开始判断s[j-i]与s[j]是否一直相同。#include#include#include#include#define maxn 82int a[10] = {0}原创 2016-07-02 00:50:19 · 277 阅读 · 0 评论 -
UVALive 7261(二分)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5273题意:在一个大矩形区域内有n块土地,现在汉武帝要将整个矩形区域赐给卫青和霍去病,西边给卫青,东边给霍去病,要求满足两个要求:1,赐给卫青的区域内小矩形的面积要大于等于赐原创 2016-08-08 20:24:00 · 670 阅读 · 0 评论 -
UVALive 7267(数学暴力)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5279题意:求能否从四个矩形中选取三个拼成一个没有缝隙完整的新矩形。分析:由于是在比赛,所以我和队友毫不犹豫的选择了出题最快最不用动脑子的写法,因为给的数据范围特别小,所原创 2016-08-08 20:33:08 · 639 阅读 · 0 评论 -
UVA - 10305 Ordering Tasks(拓扑排序模板题)
题目链接:http://vjudge.net/problem/UVA-10305题意:设有n个变量标号1到n,共有m个二元组(u,v)表示变量u 分析:典型的拓扑排序。百度上拓扑排序的定义为:对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出原创 2016-09-23 20:10:57 · 359 阅读 · 0 评论