
UVa
文章平均质量分 69
Echo_咪
to feel rather than think.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
10720 - Graph Construction
题意:给你一个度数序列,让你判定该序列能否表示一个图思路:Havel_Hakimi定理参考:http://blog.youkuaiyun.com/shuangde800/article/details/7857246代码:#includeusing namespace std;int n;int arr[10000];int cmp(c原创 2016-08-21 15:08:03 · 535 阅读 · 0 评论 -
10131越大越聪明
(原题详见UVa10131)本文主要包含以下内容:1.数学模型的建立2.递推伪代码3.具体实现代码4.总结关键字:动态规划 DAG1.数学模型的建立本题用基于DAG的动态规划的思想很好解决。而且属于起点终点不固定的DAG.(具体可以参考《算法竞赛入门》中动态规划一章,矩形嵌套问题)把每只大象视作一个个点,点i,j连通的条件是w[i]s[原创 2016-08-11 19:53:21 · 706 阅读 · 1 评论 -
116单向TSP
(原题详见UVa116)本文主要包含以下内容:1.数学模型的建立2.递推伪代码的推导3.代码实现4.总结关键字:动态规划1.数学模型的建立这是一道典型的动态规划题目。定义d[i][j]表示在矩阵i,j处是最小和。那么d[i][j]可能由三种状态转移而来d[i-1][j-1] d[i][j-1] d[i+1][j-1]状态转移方程原创 2016-08-11 20:20:27 · 374 阅读 · 0 评论 -
10003木棍切割问题
原题详见UVa10003本文主要包含一下内容:1.数学模型的建立2.递推伪代码的推导3.程序实现4.总结关键字: 动态规划 集合1.数学模型的建立很多人解不出这道题从根本上是没有读懂题意。我们现在来从头分析一下。已知:木棍的长度给定为L,切割点数给定为n,而且每个切割点的位置也是固定的。每次切割的花费等于被切割的木棍的长度。要求:最少原创 2016-08-11 20:51:34 · 3496 阅读 · 1 评论 -
10361 - Automatic Poetry
本文包含以下内容:一.思路二.程序三.总结一.思路本题考查的关键是对字符串的读取和输出的问题。要注意以下几点:1.如果是用scanf读取一个数字n,其后要用一个getchar读取残存在缓冲区的换行符。 如果是用cin读取则不必。因为cin会丢弃使其输入停止的\n,而scanf不会2.接下来是如何读取s1 s2 s3 s4 s5的问题原创 2016-08-13 06:45:26 · 446 阅读 · 0 评论 -
10010where is waldorf
本文包含以下内容:一.思路二.代码三.总结一.思路字符串搜索问题。因为原题中说了“A word matches a straight, uninterrupted line of letters in the grid.”(一个单词匹配网格中的一条直的、不间断的线)因为有这句话,使搜索策略变得非常简单:从上至下,从左至右历遍grid,如果发现一个字符与w原创 2016-08-13 09:50:00 · 252 阅读 · 0 评论 -
537 - Artificial Intelligence?
一.思路二.代码三.总结一.思路本题关键是字符串读入提取的问题,一开始我觉得用getchar一个一个读然后判断的话,如果读到等号等号前面的字符没有办法得到了用gets一次性读入一行字符的话还是要一个一个判断于是想着用scanf,每次读入一个单词判断一下这个单词里有没有等号但是实际上用scanf读反而会是程度读起来更复杂。因为用scanf读入后还是要一原创 2016-08-13 15:24:14 · 348 阅读 · 0 评论 -
409 - Excuses, Excuses!
本文包含以下内容:一、思路二、代码实现三、总结一、思路本题主要考察字符串的输入输出、匹配对于K,E,scanf读取,getchar接收\nkeywords和excuses都需要被存起来,因为keywords要用于查找匹配,excuse最后输出 中要用到,可以考虑char型的二维数组进行存储一个keyword一行,中间无空格无特殊符号,因此可以用scanf或者原创 2016-08-13 20:24:44 · 310 阅读 · 0 评论 -
112 - Tree Summing
BackgroundLISP was one of the earliest high-level programming languages and, with FORTRAN, is one of the oldest languages currently being used. Lists, which are the fundamental data structures in LI原创 2016-08-16 09:27:45 · 358 阅读 · 0 评论 -
10562 - Undraw the Trees
参考博客:http://blog.youkuaiyun.com/goomaple/article/details/7818170自己的代码实现:#includeusing namespace std;char Tree[210][210];void DFS(int r, int c) { cout << Tree[r][c]; //输出前导左括号 cout << "(原创 2016-08-17 08:00:58 · 232 阅读 · 0 评论 -
572 - Oil Deposits
一道基础的图的历遍的题。思路是由一个v[][]标记当前位置是否被visit过,g[][]存储当前是否为pocket每次DFS历遍一块deposit主程序扫描g[][],没发现一块没有被visit过的pocket,就调用DFS以它为起点历遍它代码如下:#includeusing namespace std;char g[110][110];int vis[原创 2016-08-17 11:01:53 · 240 阅读 · 0 评论 -
784 - Maze Exploration
思路:从*所在的位置出发,dfs历遍所有与它联通的点并将其变为#dfs实现关键思路在于两点:1.哪些点是与当前点联通的2.dfs返回条件代码如下:#includeusing namespace std;char maze[35][90];int visit[35][90];int r;//the row of mazevoid DFS(int ro原创 2016-08-17 13:29:36 · 272 阅读 · 0 评论 -
657 - The die is cast
这题就是递归套用递归先递归搜索骰子,如果在骰子里面发现了点,在对该点递归,同时更新点数。代码如下:#include#include using namespace std;char pic[60][200];int visit[60][200];int cnt[100];int col, row;//对骰子上的点递归void dfs_dot(int x, i原创 2016-08-17 14:38:56 · 229 阅读 · 0 评论 -
133 - The Dole Queued
原题大意:编号1-N的N个人由1开始逆时针站成一个环。从第一个人开始逆时针数K个人;再从第N个人开始顺时针数M个人,第K、M出队。如果KM是同一个人,只出队一次。从K逆时针下一个人、N顺时针下一个人开始,重复上述步骤。直到队列为空。思路:关键字:数据结构两种实现方式:双向链表 环形数组原创 2016-08-18 07:00:04 · 251 阅读 · 0 评论 -
101 - The Blocks Problem
题目大意:给你n个数字0~n-1初始,数字i在位置i上有如下四种操作:move a onto b:把a、b上面的所有数字移动回原来的位置,再把a移动到b上move a over b: 把a上的数字移动回数字原来的位置,再把a移动到含有b的堆的上方pile a onto b: 把b上的数字移动回原来的位置,把含有a的堆移动到b上(a原本上面的数字顺序不变)p原创 2016-08-19 06:39:38 · 246 阅读 · 0 评论 -
10066双塔
双塔问题实际上就是在两个字符串中寻找最大公共子字符串。借由双塔问题来具体理解分析一下最大公共子字符串问题。本文包含以下内容1.数学模型的建立2.递推伪代码3.具体程序1.数学模型的建立我们可以想象有两根指针i、j,分别指向数组a,数组b的起始位置。如果当前两根指针指向的字符是相同的,我们可以把两根指针同时向后移动一位,同时公共子字符串的数目增加1.原创 2016-08-11 19:19:04 · 349 阅读 · 0 评论