自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Help me up!I can still AC!

本博客已弃用,新博客地址:http://www.cnblogs.com/DrCarlluo/

  • 博客(12)
  • 收藏
  • 关注

原创 UVA 1601 POJ 3523 The Morning after Halloween 【双向BFS】【A*】 (好题)

题目链接题意问移动图上三个Ghost同时到达目标点的最短步数。三个Ghost可以同时移动,但不能重叠,不能交换位置。双向BFS做法因为状态比较多,直接BFS会T,因此用双向BFS来优化。然而直接上双向BFS还是会T,在BFS过程中枚举可以走的循环太多了,因此对图进行预处理,取出所有可以走的点进行BFS。16*16不是太多,所以没有必要hash,直接开个六维数组还方便些。其他就是一些双向BFS常规注意

2016-07-29 23:26:16 446

原创 UVA 10570 Meeting with Aliens 【枚举+结论题】

题目链接题意给一串环形序列(首尾相连),可以进行交换任意两个数的操作。问最少进行多少步这样的操作能够使得整个序列的顺序正常(即从序列中的1开始,顺时针或逆时针相邻递增)分析首先这个题有一个简单的结论,如果要通过两两交换使得一种排列变为另一种排列,最少的方式是从最左边开始扫描一遍,若当前这个数跟目标排列不一样,就把它从后面交换过来。 那么这个题就很简单了,枚举这串序列顺序正确的所有情况(比如:123

2016-07-29 23:23:01 309

原创 UVA 1614 Hell on the Markets 【贪心+结论题】

题目链接题意给一串序列,保证序列中每个数满足ai≤ia_i \leq i ,问能否给这些数每个数前面填上正负号,使得其和为0.分析先上结论 数列an{a_n}满足 ∀ai∈an,ai≤i\forall a_i \in {a_n}, a_i \leq i ,则对于任何正整数S≤sum[i] S \leq sum[i] (sum[i]为前i项和),总能从an{a_n}中的前i项中选出某些数,使其

2016-07-29 23:13:03 384

原创 UVA 10603 Fill【BFS】

题意有三个给定容量的没有刻度的杯子,其中一个杯子装满水,问量出给定水的体积需要倒多少水(倒水时水量的和)分析直接BFS,但非常容易写错AC代码//UVA 10603 Fill//AC 2016-07-19 16:11:16//BFS#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#inclu

2016-07-26 19:32:48 359

原创 Codevs 1288 埃及分数 【IDA*】

题目链接题意非常出名而基础的一道题,也是lrj紫书上讲解IDA*的例题。 今天发现了Codevs这个OJ的存在,给人耳目一新的感觉,然后就A了这个题。然而居然做的第一题的测试数据就有问题(有争议)……分析首先看这个搜索的决策,既无法确定搜索深度的下界(可以有无限个分数相加),也无法确定宽度的下界(分数可以无限小),因此考虑使用IDA* 题中最优解首先是长度最短,这就给了IDA*用武之处,不断地求

2016-07-25 22:13:34 365

原创 UVA 11212 Editing a Book 【IDA*】

题目链接题意给一个n个数的全排列,可以进行将任意连续的一段截下来插入到任意位置的操作,问至少需要多少步这样的操作能够是序列变成递增的序列。分析题中n的最大值为9,状态数为9的阶乘,不过1e6左右,看似可以直接BFS。但是每一种状态后的决策数量太多了(任意位置的任意长度再插入到任意位置) 考虑到n个数的全排列,要使之恢复递增的顺序,最多移动n-1次即可。这样层数有上限,尝试用DFS。然而直接DFS回

2016-07-25 21:49:54 657

原创 UVA 11624 Fire! 【特殊BFS】

题目链接题意人被困在迷宫里,有一些火苗在迷宫中会随时间蔓延,问人能否安全走到迷宫边界分析题本身很简单,只是这种题有两种处理方法:火的状态很简单,只需要知道某个时间某个点有没有火,所以单独BFS一张火的图就可以了一种比较巧妙的方法是,把火与人都当做BFS中的元素在一个队列中处理,注意BFS中同一层要先处理火,也就是最开始要先把火给入队AC代码(当时写的比较仓促,代码很丑……)//UVA 1162

2016-07-24 22:36:41 374

原创 UVA 1599 Ideal Path 【两次BFS+贪心】 (好题)

题目链接题意迷宫中有n个房间,m条路,每条路上都涂上了颜色(用整数表示),求按走的路径的颜色排列的字典序最小的最短路分析贪心方法求最短路当然简单,每条路的长度都是1,BFS、SPFA、Dijkstra随便上都行。关键是求字典序最小的路径。根据字典序的特征贪心,从1到n,优先取所有可取最短路中颜色值最小的那条路。 但关键在于如何判断某条路是不是最短路上的路径,想到最短路问题通常打印路径的方法:

2016-07-24 22:20:11 609

原创 POJ 1862 Stripies 【贪心】

题目链接题意有一种生物,他们两两融合过后的质量是原来的几何平均数的二倍,求所有的融合之后能够得到的质量最小值。分析主要是要思考到如何贪心,结论是:不断让所有生物中质量最大的两个进行融合,直到只剩一个位置(即使答案)证明:设nn个生物,他们的质量分别是m1,m2,⋯,mnm_1, m_2, \cdots ,m_n ,则它们融合过后的质量为

2016-07-20 23:19:38 374

原创 POJ 3190 Stall Reservations 【区间贪心】

题目链接题意给你N个闭区间,求最小的分组数,使得每组中的区间互不相交分析最开始想的是用取最多不相交区间的办法,不断地取出当前可以作为最多不相交区间的组,取后标记,再不断取,这样可以保证组数最少。但是这样做复杂度是O(N2)O(N^2),而题中数据量是50000,不可取。 考虑另一种贪心思路:不断取当前可取的左端点最小的区间,如果可以加在当前右端最值最小的组的后面,则加入,否则新开一组放它。 那么

2016-07-20 23:18:24 495

原创 UVA 253 Cube painting 【数学】

题目链接题意给一个正方体各个面图上色,让后再给一个涂过色的正方体,问后者是不是前者旋转而来的。分析对于同一个正方形,如果确定了两个面,就确定了一个它的各个面。那么让通过旋转枚举各个面分别成为正面的情况,再旋转四个侧面确定顶面,就可枚举出所有情况(共6×4=246\times4=24种情况) 为方便枚举,用数组记录置换来模拟旋转(如代码)AC代码//UVA 253 Cube painting//2

2016-07-20 20:22:38 403

原创 POJ 1852 Ants 【水+Trick+贪心】

题目链接题意有一根长度为lcm的杆,上面又n个蚂蚁,它们的运动速度均为1cm/s,相遇的蚂蚁会同时改变运动方向,运动到杆边缘的蚂蚁会掉落下来。现知道它们每一个的起始位置,但不知道运动方向,求它们全部掉落的最短时间,以及最长时间。分析求最短时间很容易,全部同时向离自己最近的那个边缘运动,离得最远的那只掉落的时间就是总的最短时间。 而在求最长时间时,注意蚂蚁相遇时会同时改变运动方向,由于每只蚂蚁运动速

2016-07-20 19:22:04 408 2

空空如也

空空如也

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

TA关注的人

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