自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iwi

  • 博客(34)
  • 问答 (1)
  • 收藏
  • 关注

原创 uva 12325 Zombie's Treasure Chest

题目:Zombie's Treasure Chest题意:有一个宝箱和两种物品(无限个),体积分别为s1、s2,重要度为v1、v2。问可以最多在宝箱中装多少重要度的物品。每一个数都为32位整数。思路:最先想到的是完全背包,因为n太大,数组开不下,所以放弃。然后想到把完全背包转化成记忆化搜索,栈溢出加超时。接着想枚举物品1,算出物品2的个数,继续超时。最后还是

2017-08-23 22:40:30 355

原创 uva 11212 Editing a Book

题目:Editing a Book题意:有一本有n段的书,段的编号为1~n,段的顺序是乱的。有“剪切”和“粘贴”的两种操作,问至少要用多少组剪切和粘贴才能把顺序调整正确。思路:IDA*。估价函数为:h>3*(maxd-d)。h代表前后不匹配 (如果a[i]-a[i-1]==1,那么i与i-1匹配) 的段的个数。由于每次操作h最多加大3 (如书上图,假设a的最后一个数

2017-08-19 22:02:29 346

原创 埃及分数 IDA*

题目:埃及分数参考:http://blog.csdn.net/u014800748/article/details/44998693数据:*| test 1 *|1 2020*| test 2 *|36 61217*| test 3 *|2 1512 20*| test 4 *|2 3719 703*| test 5 *|27

2017-08-19 16:13:04 337

原创 uva 1601 The Morning after Halloween code2

题目:The Morning after Halloween题意:有n个用小写字母表示的鬼和一张地图,每个鬼都要移动到对应的大写字母,两个鬼的位置不能在一次移动中交换,问最少步数。思路:双向bfs。此题还可以单向bfs,见code1。1、先将地图用图的方法表示,即在每一个空白(包括大小写字母)和四周的空白连上一条边,用单个整数表示一个空白。

2017-08-18 21:50:33 580

原创 uva 1601 The Morning after Halloween

题目:The Morning after Halloween题意:有n个用小写字母表示的鬼和一张地图,每个鬼都要移动到对应的大写字母,两个鬼的位置不能在一次移动中交换,问最少步数。思路:bfs。1、先将地图用图的方法表示,即在每一个空白(包括大小写字母)和四周的空白连上一条边,用单个整数表示一个空白。2、在图上进行bfs。注意只有一个鬼的情况,此时鬼b和鬼c所在

2017-08-18 20:40:28 562 2

原创 uva 10603 Fill code2

题目:Fill题意:有3个容积为a,b,c的杯子,最初a、b为空,c中装满水。每次可以从一个杯子向另一个杯子倒水,但只有把一个杯子倒空或把另一个杯子倒满时才能停止。如果要使其中一个杯子中有d升水,求最少倒水的的体积。若无法满足 ,则目标水量要比d小且和d尽量接近。思路:同书上思路,用priority_queue代替queue,比用队列快。详见

2017-08-17 20:29:21 327

原创 uva 10603 Fill

题目:Fill题意:有3个容积为a,b,c的杯子,最初a、b为空,c中装满水。每次可以从一个杯子向另一个杯子倒水,但只有把一个杯子倒空或把另一个杯子倒满时才能停止。如果要使其中一个杯子中有d升水,求最少倒水的的体积。若无法满足 ,则目标水量要比d小且和d尽量接近。思路:bfs遍历。由于所说为体积最小,所以要一直将图遍历完才能遭到最优解。代码:#inc

2017-08-17 20:21:17 315 1

原创 uva 1354 Mobile Computing code2

题目:Mobile Computing题意:有s块石头,用一些长为1的木棍挂着,满足杠杆平衡条件。问在房间里最宽能挂下多宽。思路:这种方法不会做,看了书上代码。从上向下枚举二叉树。详见刘汝佳代码的注释。思路2:uva 1354 Mobile Computing代码:我的:

2017-08-17 15:01:27 374

原创 uva 1354 Mobile Computing

题目:Mobile Computing题意:有s块石头,用一些长为1的木棍挂着,满足杠杆平衡条件。问在房间里最宽能挂下多宽。思路:从下向上构造二叉树,每次从已知集合中随机抽取两个杠杆(或石头)组合起来加入集合。计算时用bfs。代码:#include#include#include#include#include#include#includeu

2017-08-17 14:56:37 353 1

原创 uva 140 Bandwidth

题目:Bandwidth题意:输入图,求图中结点全排列的中每个节点到像领节点的最大值的最大值,且输出该排列。思路:dfs。注意字典序。原准备按输入顺序给节点标号,结果无法满足字典序,于是重写。注意数据中有多余空格。代码:#include#include#include#include#include#include#includeusing

2017-08-14 22:13:24 260

原创 uva 129 Krypton Factor

题目:Krypton Factor题意:困难的串只没有量个相同的子串相邻。找出第n个由前L个字母构成的困难的串。思路:dfs。注意输出格式。代码:#include#include#include#includeusing namespace std;int n,m;vector vec;vector a;bool judge() { for

2017-08-14 16:45:45 459

原创 uva 524 Prime Ring Problem

题目:Prime Ring Problem题意:求长度为n的素数环。思路:dfs,枚举每一位上的值。代码:#include#include#include#includeusing namespace std;bool Prime[33]={0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0

2017-08-14 15:30:00 314

原创 uva 10976 Fractions Again?!

题目:Fractions Again?!题意:有正整数n,求x,y使得1/k=1/x+1/y (x>y)。思路:枚举k、y,求x。代码:#include#include#include#includeusing namespace std;struct Pair{ int x,y; Pair(int one,int two){

2017-08-14 15:08:14 252

原创 uva 11059 Maximum Product

题目:Maximum Product题意:有一行整数,求子序列的最大乘积。思路:枚举首位和末位。代码:#include#include#includeusing namespace std;int main() { int T=0; int n; while(scanf("%d",&n)==1) { int a[20]= {0}; f

2017-08-14 15:04:34 285

原创 uva 725 Division

题目:Division题意:已知整数n,输出所有形如abcde/fghij=n的情况且abcdefghij的值各不相同。思路:枚举被除数计算除数。代码:#include#include#includeusing namespace std;int n;int main(){ bool T=false; while(scanf("%d",&n

2017-08-14 15:01:05 303

原创 uva 1572 Self-Assembly

题目:Self-Assembly题意:输入几种正方形的面,每一种正方形的4个边上都有标号,标号为 大写字母+符号(+/-) 或00。有同一字母标号符号不同的的两条边可以靠在一起,00不能和其它边相连。问能否用这几种正方形拼成一个无限的结构。思路:如书上所述,把标号看成点,正方形看成边。如果一个标号在一个正方形中,那么它和正方形其它边上的标号反过来(如A+反过来得A-)连一条

2017-08-12 22:52:46 267

原创 uva 10562 Undraw the Trees

题目:Undraw the Trees题意:给一棵看起来是树的树,要求用括号的表示方法表示。思路:dfs求解。注意:1、uva不能用gets。2、可能会有一颗空数的情况。代码:#include#include#include#include#include#includeusing namespace std;char t

2017-08-11 21:24:50 298

原创 uva 10129 Play on Words

题目:Play on Words题意:有一些单词,问能否将这些单词首位相连的拼成一条,即前一个单词的尾字母和后一个单词的首字母相同。思路:求是否存在欧拉路径。存在欧拉路径要满足:1、图连通;2、只能有0或2个点入度为0。我用dfs判断的图连通。看书上说可以用并查集,到处查资料弄了好久也没弄出来,下次学到连通图哪儿再看看吧。代码:#incl

2017-08-11 20:18:36 299

原创 uva 10305 Ordering Tasks

题目:Ordering Tasks题意:给出n个数的大小关系,输出从小到大排序后的结果。思路:拓扑排序。代码:#include#include#include#include#include#includeusing namespace std;int n,m;int a[105][105];int main() { while(sc

2017-08-11 11:52:00 192

原创 uva 1103 Ancient Messages WA

题目:Ancient MessagesWA,好像是dfs层数太深栈溢出了,不知到怎么解决。代码:#include#include#include#include#includeusing namespace std;int n,m;string a[500];char f[10]= {'W','A','K','J','S','D'};map dic;

2017-08-10 14:42:30 324

原创 uva 572 Oil Deposits

题目:Oil Deposits题意:给出地图,求有多少块连在一起的油田。横着竖着斜着相邻的算一块。思路:dfs找联通块。代码:#include#include#include#includeusing namespace std;int n,m;char a[105][105]= {0};bool use[105][105]= {0};int

2017-08-10 10:36:49 216

原创 uva 297 Quadtrees

题目:Quadtrees题意:用一颗四叉树表示一张图,给出两颗四叉树的dfs遍历,求吧这两张图和在一起后黑色像素的个数。思路:dfs将四叉树转化成原始的图片。代码:#include#include#include#includeusing namespace std;bool a[33][33]= {0};int cnt;void dfs(s

2017-08-10 09:59:02 263

原创 uva 699 The Falling Leaves

题目:The Falling Leaves题意:树中根节点和左右子节点的距离定为1,输出有同一横坐标的节点的权值和。思路:dfs遍历。代码:#include#include#include#include#include#include#include#include#include#include#include#includeus

2017-08-09 19:53:22 282 1

原创 uva 839 Not so Mobile

题目:Not so Mobile题意:有一串吊在一起的杠杆,问是否能平衡。按dfs序输入杠杆。思路:dfs。代码:#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace

2017-08-09 19:03:02 192

原创 uva 548 Tree

题目:Tree题意:输入一颗树的中序遍历和后序遍历,输出这可数从叶子结点到根节点的最短路径。思路:1、根据中序遍历和后序遍历建树。因为后序遍历的最后一个数一定是根节点,所以对于每一颗子树,都可以在中序遍历中根据跟姐点再划分成两颗子树。因此可以递归建树。2、求解最短路径。我的做法是从根节点向下dfs找最优解。可能保存父节点从下至上更快一些吧。注意:

2017-08-09 17:33:30 202

原创 uva 122 Trees on the level

题目:Trees on the level题意:输入一棵树上的节点,形如(n,s),指从根节点经过路径s可以走到节点n。要求按bfs需输出树上的所有节点。思路:1、定义一个结构Node存储树上每个节点的名字和左右子节点。2、每次读入一个字符串,拆分后添加到树中。3、bfs遍历输出。代码:#include#include#include#in

2017-08-09 14:23:41 262

原创 uva 679 Dropping Balls

题目:Dropping Balls题意:有一颗深度为d的二叉树,i个小球从根节点向下落。每个节点上有一个开关,小球落在该节点上时,若开关为开则向右走;反之向左走。小球每经过一次开关,开关的状态改变一次。求第i个小球最终会落到哪个节点上。思路:1、模拟。定义一个数组bool a,用来存储开关情况。小球当前位置为k时,像左走为2*k,像右走为2*k+1。(TLE)2、因

2017-08-09 12:03:18 251

原创 uva 12657 Boxes in a Line

题目:Boxes in a Line题意:有n个盒子,初始按1~n排列。给定4个操作: 1 x y  将x移动到y的左边; 2 x y  将x移动到y的右边; 3 x y  将x和y的位置交换; 4        将序列的位置颠倒。输出变换后在奇数位置的木块编号总和。思路:用链表存储木块的位置。由于操作4比较费时间,所以可以用 bool re

2017-08-08 23:15:24 306

原创 uva 11988 Broken Keyboard (a.k.a. Beiju Text)

题目:Matrix Chain Multiplication题意:略。思路:链表。代码:#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;stru

2017-08-08 20:51:51 280

原创 uva 442 Matrix Chain Multiplication

题目:Matrix Chain Multiplication题意:给定一串矩阵乘法的式子,求需要做几次乘法。注意:括号中最多有2个矩阵。代码:#include#include#include#include#include#include#include#include#include#include#include#includeusi

2017-08-08 20:29:05 269

原创 uva 514 Rails

题目:Rails题意:一串火车可以通过一条中转的铁轨从一条铁轨开到另一条铁轨,中转铁轨满足后进先出的原则。初始时火车的顺序为1~n,给定一串全部完成后的火车顺序,问是否可行。思路:(1)用stack保存中转铁轨中的顺序。(2)顺序遍历给定序列,如果当前a[i]的值等于stack.top(),则当前的i满足条件,stack.pop()。如果不等,则再放一列火车到中转车

2017-08-08 15:26:10 220

原创 uva 210 Concurrency Simulator

题目:Concurrency Simulator代码:#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;int n,q,t[6]= {0};vector vec[1005];deque que

2017-08-08 14:41:14 261

原创 uva 12333 Revenge of Fibonacci code2

题目:Revenge of Fibonacci题意:输入一串斐波拉契数的前缀,求包含这个前缀的最小斐波拉契数的编号。本题基于数组(vector)的做法这是我用指针重新写了一遍的代码,总体要慢那么一点儿,思路没有区别。#include#include#include#include#include#incl

2017-08-01 16:28:43 360

原创 uva 12333 Revenge of Fibonacci

题目:Revenge of Fibonacci题意:输入一串斐波拉契数的前缀,求包含这个前缀的最小斐波拉契数的编号。思路:1、先生成100000个斐波拉契数,用字符串实现高精度的加法。因数据要求前缀长度最大为40,所以可以少存几位,因为精度问题,所以存50位。2、读入前缀,查找最小的。这里顺序查找的复杂度很高,会超时,然后我就懵逼了。网上找题解,学习一种叫字

2017-08-01 15:50:38 472 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除