
例题整理
Minion_w
这个作者很懒,什么都没留下…
展开
-
UVA 101 The blocks problem 例题整理
题目大意:编写程序按照四种不同的情况对木块进行转移 所学知识点:vector容器的运用,对于题目要求的简化抽象,四种情况,找重复进行抽象归纳。#include<cstdio>#include<string>#include<vector>#include<iostream>//如何结束!!!!!using namespace std;const int maxn = 30;int n原创 2017-02-28 09:05:48 · 483 阅读 · 0 评论 -
UVA 572 POJ 2386 连通块问题
题目链接: UVA 572 Oil Deposits POJ 2386 Lake Counting题目简介: 这两道题所运用到的知识点完全一样,都是用dfs来寻找连通块(所谓连通块,就是连在一起的一片区域,横竖或者对角线连在一起就称其为一个DFS运用: 这一次运用DFS是先找到那个W所在位置,然后运用递归,对它进行DFS深度搜索,搜索他周围和他连通的区域,这里题目中一个(-1 -> 1)的循原创 2017-06-24 14:30:05 · 322 阅读 · 0 评论 -
UVA 1374 ——Power Calculus(IDA*搜索)
题目链接:点击打开链接题目大意:求出x^1最少经过多少次相乘或者相除的运算才能到达x^n解题思路:枚举可能的次数,将其作为深度,然后对每一个深度进行DFS,看看在这个最大深度内能不能达到所要求的目的 其中还要遇到剪枝问题,很典型的IDA*搜索乐观估价函数 :( 当前的最大值 )* 2 ^(最大深度 - 当前深度)代码:#include原创 2017-08-09 23:54:48 · 282 阅读 · 0 评论 -
UVA 11181(C) ——Probability|Given (条件概率, dfs求组合)
题目连接:点击打开链接题目大意:有n个人去买东西,其中有r人买了东西,剩下的人只是逛了逛而已,现在给了你每个人买东西的概率,让你来求算每个人真正买到买东西的概率;简而言之,就是求在r个人买到东西的前提之下,A买了东西的概率解题思路:P(A|B) = P(AB)/P(B); P(AB)为买东西的人中有A的概率,P(B)为所有的情况的总概率,也就是全概率全概率的求算方法:找原创 2017-07-27 11:02:06 · 337 阅读 · 0 评论 -
UVA 11149(B)——Power of Matrix (矩阵快速幂,倍增法)
题目链接:点击打开链接题目大意;输入n, k求出来n行n列的矩阵的1次幂 + 2次幂 + ... + k次幂的和解题思路:为了控制时间,首先想到的是用快速幂,但是还有n项,所以求和所需要很多时间,可以用倍增来解决这个问题代码://UVA 11149矩阵快速幂,倍增#include#include#includeusing namespace std;class Ma原创 2017-07-27 18:21:22 · 492 阅读 · 0 评论 -
UVA 11806(B)——Cheerleaders 容斥原理 离散数学列举所有情况
题目链接:点击打开链接题目大意:输入m,n,k,在m行n列的矩阵中放k名啦啦队员,要求四条边框每一个至少都要有一名啦啦队员,问有多少中放法解题思路:直接放的话会很麻烦,所以可以从它的反方向去考虑问题,求算出四条边上没有放满啦啦队员的情况,用sum减去就可以了运用到了容斥原理(包含排斥原理)对于4条边没有啦啦队员的情况,一共有15种情况可以用离散数学的极大项,极小项那样的思路来处理,用位原创 2017-07-28 00:14:06 · 591 阅读 · 0 评论 -
UVA 508 莫尔斯电码,map的妙用,函数的组合
题目链接 题目大意: 先输入字符,和其对应的密码,知道“”结束,你可知判断结束的标志是string类型的”“,而不是char类型的‘*’,心都碎了,然后输入许多单词,这相当于一个字典库,然后再输入许多密码串,然后在字典库中找相应的单词。 解题思路:答题的思路不难理解:先把单词和密码意义对应起来,给每一个单词都加密一下,存起来,map的用处,在匹配的过程中,不完全匹配的要注意一下,需要加或者减“末原创 2017-05-07 18:12:08 · 710 阅读 · 0 评论 -
UAV -10285 Longest Run on a Snowboard (记忆化搜索)
题目链接题目大意: 从矩阵中任意一个点出发,只要它上下左右的任意一个比它的数小,它就能向那个小的数字走一步,问在这个图中走的最大的步数题目分析: 如果用暴力搜索的话可能会很麻烦,很费事,所以很典型的记忆化搜索Code:#include#include#include/*DP记忆化搜索*/using namespace std;const int原创 2018-01-31 14:12:40 · 279 阅读 · 0 评论 -
UVA 10118-Free Candies
题目链接题目大意: 有4堆糖果,每一堆有n个糖果,有一个篮子,这个篮子的最大容量为5块糖,每一次从这四堆中选择一堆,然后将最上面的糖果拿下来,放到篮子里面去,如果有相同两块糖的就把这;两块糖拿出来,如果达到了5块糖,并且这5块糖是两两不相同的就结束游戏,问你,最多能拿出多少对对对对糖变形的记忆化搜索!!!Code:#include#include#include原创 2018-01-31 20:12:31 · 606 阅读 · 0 评论 -
UVA 12108 特别困的学生
题目链接 题目大意: 一群学生上课想睡觉, 每个人都收一个“醒 - 睡”周期, 给你一个初始状态(它位于周期中的哪一个时刻)然后,我们就要开始判断,在哪一个时间点,全班同学都是醒着的,输出第一个全班都醒的时间,如果没有,就输出-1(来个结束条件,这一节课比较长,最少得1000分钟左右,不困才怪呐),其中有一个注意条件,就是如果要睡觉的时候发现全班现在正在睡觉的人数少于一半,那就再坚持一原创 2017-05-07 10:02:49 · 498 阅读 · 0 评论 -
UVA 540 and UVA 136 队列及优先队列
题目连接:UVA 136 UVA 540UVA 540 团体队列: 题目不难理解;但是在操作的过程中需要注意一些问题, 如: 1.关于如何按照team插入元素,怎么找到他原来的队伍,然后插进去,还有一个更棘手的问题就是,queue没法随便插入,他是一个顺序结构的东西,所以我觉得刘老师的做法真的太赞了,我在总队里给team排队,然后你们小队再自己玩去吧,注意::总队里排的是原创 2017-05-13 12:55:34 · 304 阅读 · 0 评论 -
UVA 10815 安迪字典
题目大意:题目不难理解,对一段输入,把其中的单词拆出来,然后排序 学到的知识点:set集合,弄得还不是很透彻,主要是迭代器的用法还要深入了解;string类型的应用,变成“流”了很好玩,对其的应用也更加多了,方便了#include<iostream>#include<string> //定义ss类型#include<set> // 定义set集合#include<sstre原创 2017-02-28 17:35:49 · 583 阅读 · 0 评论 -
UVa 133 算法竞赛入门经典4-3例题(约瑟夫环类型)
UVa 133 算法竞赛入门经典4-3例题(约瑟夫环类型)题目类型:约瑟夫环模原创 2017-01-20 12:31:34 · 1053 阅读 · 0 评论 -
UVA 156 筛选不重复单词, map
题目大意:在输入的一段小短文中,排查单词,选出经过重排也排不成文中另外单词的单词。最后输出的时候用字典序排序输出 所学知识点:map,它能自动统计文中这段单词出现的次数,(很厉害) sort函数能自动用字典序对一系列单词排序(可直接用) 本题还将vector和map连起来一起用了。#include<iostream>#include<string>#include<cctype>#inc原创 2017-03-01 17:12:49 · 350 阅读 · 0 评论 -
UVA 540 队列与映射的综合应用
/* 题目大意:对于N长队进行排队(排成一个大长队) 长队排队的规则是:指定命令号入队,点到的命令号,如果他有队友(以前小队中的成员)在长队中, 他就插到以前队友的后面;如果没有,那他就站在队列的最后。 命令:E…点到名字去排队 D…长队中的第一个出列; 现在要解决的问题:他以前队里有谁能记得住吗? 还有就是第一个出来了之后那他就从队列里原创 2017-03-04 12:29:09 · 454 阅读 · 0 评论 -
UVA 10736 ,400
10736 :配对做法,调换过来还是原来的对,所以用数组的值与数组的下标来对应,省了二维空间的量和时间,还方便 具体思路:原数组是下标和值相等,现在输入一对一对的数,然后进行交换,如果能交流的话,那就是换了2,4,6。。。几次,最终都能换回来,如果不行,那就换不回来了,也就没法成功。#include<iostream>using namespace std;int line[500010];原创 2017-03-14 17:49:52 · 322 阅读 · 0 评论 -
UVA 230
关于map, string, vector的综合运用 其中关于compare函数的写法和知识点要好好学学!!#include<iostream>#include<map>#include<vector>#include<string>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;clas原创 2017-04-13 18:26:04 · 354 阅读 · 0 评论 -
UVA 814 MTA 模拟
#include<iostream>#include<vector>#include<map>#include<set>#include<string>//#define LOCAL#include<cstdio>using namespace std;void getInformation(string& ss, string user, string & mat){ in原创 2017-04-18 17:30:56 · 417 阅读 · 0 评论 -
UVA 122 BFS宽度遍历
#include<iostream>#include<string>#include<cstring>#include<cstdio>#include<vector>#include<queue>using namespace std;const int maxn = 1000;char s[maxn];vector<int> q;bool failed;struct Node{原创 2017-04-22 10:51:35 · 287 阅读 · 0 评论 -
UVA - 1347 Tour
题目链接题目大意:给你n个不相同的点,按照x坐标的不同从左向右排列,希望你能给出一个方案,从左边的点走到最右边 的点,然后从最右边的点再回来,中间出了开头和结尾的点经过了两次,其他的点都只经过一次,输出最短的这个路程距离题目分析:披着几何外皮的记忆化搜索问题,只是这个递推方程我们很难想,我看了解析也想了半天这个递推方程 解释:dp(i, j)表示(1~max(i, j))全部原创 2018-02-01 22:51:35 · 249 阅读 · 0 评论