算法竞赛-入门经典---------
文章平均质量分 65
惰性求治
世界那么精彩。
展开
-
uva-442-矩阵链乘
本题的关键在于解析表达式.本题的表达式比较简单,可以用一个栈来完成--->>遇到一个字母时,就入栈;遇到右括号时就出栈进行计算,然后将新矩阵点入栈!如果在这之间,如果A的列数不等于B的行数,则乘法无法进行!!!注意咯!原创 2014-07-29 16:30:57 · 879 阅读 · 0 评论 -
POJ-3069 Saruman's Army
题意如下:直线上有N个点,第i点的位置为Xi。从这N个点中选择若干个,给他们加行标记。对每一个点,其距离为R以内的区域里必须带有标记的点(自己本身带有标记的点,可以认为与其距离为0的地方有一个带有标记的点)。在满足这个条件的情况下,希望能为尽可能少的点添加标记。请问至少需要为多少个点添加上标记?原创 2015-02-09 11:51:06 · 697 阅读 · 0 评论 -
POJ-3253 Fence Repair
AC代码如下:#include#include#include#includeusing namespace std;const int maxn=201314;int main(){ int n,a[maxn]; while(cin>>n) { for(int i=0;i<n;i++) cin>>a[i];原创 2015-02-09 18:32:03 · 665 阅读 · 0 评论 -
宝箱-UVA-12325
题意大概:你有一个体积为N的箱子和两种数量无限的宝物。宝物1的体积为s1,价值为v1,宝物2的体积为s2,价值为v2.输入均为32位带符号整数。你的任务是计算最多能装多大价值的宝物。例如n=100,s1=v1=34,s2=5,v2=3,那么答案就为86,方法是装2个宝物1,装6个宝物2,。每种宝物都必须是拿非负整数个。分析:(我把刘汝佳书上的分析辅助性地修改了下)性价比=价/量。原创 2015-01-25 20:10:07 · 1579 阅读 · 0 评论 -
01背包问题
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-02-13 16:51:40 · 660 阅读 · 0 评论 -
最长上升子序列
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-03-08 14:23:02 · 587 阅读 · 0 评论 -
畅通工程再续hdu-1875(prim算法)
题目地址:[传送门(http://acm.hdu.edu.cn/showproblem.php?pid=1875 “传送门”)本题使用的是prim算法,用于求最小生成树。Problem Description 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现原创 2015-03-27 11:31:05 · 737 阅读 · 0 评论 -
hdu2544-最短路
本题地址:(http://acm.hdu.edu.cn/showproblem.php?pid=2544) 本题使用的是Dijkstra算法,这种算法的时间复杂度为O(V*V),使用这种前提—>是图没有负权值边,不然这种算法就无法解决问题,还得使用Bellman-Ford算法(使用这种算法的前提是图中不存在负圈:从源点可达的总权值为负的回路)AC代码如下:#include<cstdio>#inc原创 2015-03-21 13:06:19 · 618 阅读 · 0 评论 -
POJ-1182食物链(并查集的运用)
Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是”1 X Y”,表示X和Y是同类。 第二种说法是”2 X Y”,表示X吃Y。 此人对N个动物,用上述两原创 2015-03-21 23:43:40 · 1195 阅读 · 0 评论 -
A Bug's Life-HDU-1829
题目地址:hdu-1829 本题是考察并查集的运用。 **题意:有k对编号为1~n的果蝇交配了, 给你数据后让你判断是否有同性恋。**Problem Description Background Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that th原创 2015-03-22 15:29:07 · 839 阅读 · 0 评论 -
POJ1258 Agri-Net(最小生成树)
传送门:题目地址 本题是用的prim算法来求解最小生成树。(prim算法和dijkstra算法很相似) AC代码如下:(题目中有题目翻译以及详细的注释) /*题意如下:农场主john当选为镇长,他曾许诺要为所以的农场连上网络。现在有n个农场(包括他自己的农场),要求任意两个农场之间都能互相连通为了最小化开支,他决定从他的农场向其它农场架设网线,请问最小开销是多少呢?*/#includ原创 2015-03-25 17:33:25 · 635 阅读 · 0 评论 -
Patrol Robot UVa1600巡逻机器人
题意大概:机器人要从一个m*n(m和n的范围都在1到20的闭区间内)的网格的左上角(1,1)走到右下角(m,n)。网格中的一些格子是空地,用0表示,其它格子是障碍,用1表示。机器人每次可以往四个方向走一格,但不能连续地穿越k( [0,20] )个障碍,求最短路长度。起点和终点保证是空地。思路:用bfs搜索即可,由于不能连续地穿越k个障碍,所以在原本的vis2维数组上面再添加1维,变原创 2015-01-20 17:07:44 · 3230 阅读 · 0 评论 -
区间段问题
有n项工作,每项工作分别在Si时间开始,然后在Ti时间结束。对于每项工作,你都可以选择参与或者不参与。如果你选择了参与,那么你必须自始至终都全程参与。此外,参与的时间段不能重叠。(即使是开始的瞬间和结束的瞬间的重叠也是不允许的)时间不限,你的目的是参与尽可能多的工作,那么最多能参与多少项工作呢?思路:贪心算法。->在可选的工作中,每次都选取工作结束时间最早的工作。结束时间越早之后可选的工作原创 2015-02-07 11:58:58 · 1565 阅读 · 0 评论 -
uva-489 刽子手游戏
【刽子手游戏】规则如下:计算机想一个单词让你猜,你每次可以猜一个字母,如果单词里有这个字母,所有该字母都会显示出来;如果没有那个字母,计算机将会在一幅“刽子手”画上面画上一笔,这幅画只需要7笔就能完成,所以你最多只能猜错6次,不然就输定了!注意:猜一个已经猜过的字母也算猜错。这个题是要求我们写一个裁判程序。多组输入,每组输入有三行,第一行是1个数,第二行是计算机给出的单词,第三行是玩家的猜测。原创 2014-11-23 12:41:14 · 1126 阅读 · 0 评论 -
uva-1593 代码对齐
题意如下:输入若干行代码,要求各列单词的左边界对齐且尽量靠左。单词之间至少要空一格。每个单词不超过80个字符,每行不超过180个字符,一共最多1000行。注意输出时每行的最后一列后面没有空格符。原创 2014-11-25 21:14:49 · 5700 阅读 · 1 评论 -
uva-340
实现一个经典“猜数字”游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列中都出现过但是位置不对(B)。输入包含多组,每组输入第一行为序列长度n,第二行是答案序列,接下来是有若干组猜测序列。猜测序列全为0时该组数据结束,n=0时输入结束。代码如下:原创 2014-11-22 14:27:31 · 1208 阅读 · 0 评论 -
丑数 uva-136 丑数
代码如下:/*丑数是指不能被2、3、5以外的其他素数整除的数,把丑数从小到大排列起来,结果如下:1,2,3,4,5,6,8,9,10,12,15...求出第1500个丑数。*/#include#include#include#includeusing namespace std;typedef long long LL;int su[3]={2,3,5};int main原创 2014-11-25 21:26:37 · 1178 阅读 · 0 评论 -
uva-122 树的层次遍历
题意概要:输入二叉树的每一个节点的信息,建树完毕后,按照层次顺序遍历这棵树,然后将每一个节点的权值给输出来!注意:如果从根到某个叶节点的路径上有的节点没有在输入中给出或者给出超过一次,应该输出“not complete”.节点数不超过256个!代码如下:(代码中有详细的注释!)此份代码用时为9ms !#include#include#include#inc原创 2014-12-01 20:57:39 · 858 阅读 · 0 评论 -
八数码问题
解八数码问题。原创 2015-01-14 18:10:45 · 841 阅读 · 0 评论 -
UVA-725除法-Division
分析: 枚举0-9的所有排列?没这个必要,只需要枚举fghij就可以计算出abcde(=fghij * n),然后判断是否所有的数字都不相同即可。不仅程序简单,而且枚举量也从10!=3628800降低至不到1万,而且当abcde的位数不等于5的时候,就可以终止枚举了(记住n是大于等于2的哟!)AC代码如下:用时为1573MS。#include#include#include原创 2014-12-10 16:12:59 · 1433 阅读 · 1 评论 -
看图写树Uva-10562
题意大概:将多叉树转化为括号表达式。每个节点除了“-”、“|”、和空格以外的其它字符表示。每个非叶节点的正下方总会有一个“|”字符,然后下方是一排“-”字符,恰好覆盖所有的子节点的上方。单独的一行“#”为数据结束标记。原创 2015-01-15 19:31:42 · 790 阅读 · 0 评论 -
平衡的括号Uva-673
题意大概:输入一个包括“()”和“[ ]”的括号序列,判断是否合法。具体规则如下:1.空串合法。2.如果A和B都合法,那么AB也合法。3.如果A合法,那么[A]和(A)都合法。思路:初始化一个栈,输入序列,然后进行扫描:1.序列长度肯定是偶数(包括 0);2.如果是“[”或者“(”则将其压进栈里面;3.如果是“)”或者“]”,则根据当前栈顶的元素值进行判断,原创 2015-01-15 21:45:35 · 961 阅读 · 0 评论 -
字典序最小问题
题意:给定长度为N的字符串S,(字符串S全为大写字母组成)要构造一个长度也为N的字符串T。起初,T是一个空串。随后反复进行下面任意操作:1.从S的头部删除一个字符,然后加到T的尾部。2.从S的尾部删除一个字符,然后加到T的尾部。目的是要构成字典序尽可能小的字符串T。思路:从字典序的性质上看,无论T的末尾有多大,只要前面部分的较小就可以了!所以我们可以初步得到下面的这种贪原创 2015-02-07 16:11:30 · 6117 阅读 · 0 评论 -
高精度除法
转载自:http://blog.csdn.net/hitwhylz/article/details/9700935其基本思想是反复做除法,看从被除数里面最多能减去多少个除数,商就是多少。逐个减显然太慢,要判断一次最多能减少多少个整的10的n次方。以7546除23为例。先减去23的100倍,就是2300,可以减3次,余下646。 此时商就是300;然后646减去23的10倍,...转载 2018-03-14 16:53:24 · 1028 阅读 · 1 评论