用(x,s)表示一个状态,x表示机器人的位置,s表示其他位置有没有物体。用个fa数组和act数组记录和打印路径,转移的时候判断一下是不是机器人在动。#includeusing namespace std;const int maxn = 16;const int maxe = 32;const in...
分类:
其他好文 时间:
2015-07-31 12:52:36
阅读次数:
122
这道题花了我一晚上去了看了一种解法,结果最后悲剧了,只在poj上过了,在hdu上TLE,原因是因为hdu上是多组数
据,而poj上是一组数据。。。悲剧啊,学的方法有点低效。。。
不过那个打印路径方法倒是可以借鉴一下,从终点往起点递归,打印路径。。。
贴代码:
#include
#include
#include
#include
using namespace std;
#define N...
分类:
其他好文 时间:
2015-07-31 01:26:07
阅读次数:
90
DP题意很简单, 直接DP就可以了, 打印路径的时候我是从后向前遍历,每次dp[i][j-1] 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #inc...
分类:
其他好文 时间:
2015-07-25 15:05:17
阅读次数:
82
// 集训终于开始了,来到水题先
#include
#include
#include
#include
using namespace std;
int a[23];
int d[23][100000];
int flag[23];
int W,n;
void init(){
cin >> n;
for (int i=1;i...
分类:
其他好文 时间:
2015-07-22 13:06:05
阅读次数:
135
#include
using namespace std; //BFS+优先队列(打印路径)
#define N 500005
int c[N];
int dp[N]; //dp[i]保存的是长度为i的最长不降子序列的最小尾元素
int BS(int n,int x) //二分查找下标,当x比所有元素小时下标为1,比所有元素大时下标为n+1.
{
int low,high,mid;
...
分类:
其他好文 时间:
2015-06-06 13:35:52
阅读次数:
150
分析:在BFS中使用优先队列即可获取最小值。
#include
#include
using namespace std; //BFS+优先队列(打印路径)
#define N 101
struct Node //节点
{
int x,y,time;
friend bool operator<(const Node& a,const Node& b) //有限队列根据时...
分类:
其他好文 时间:
2015-06-06 09:13:07
阅读次数:
108
一道经典的最长子序列题,不过该题需要维护两个量,体重和速度,所以需要先对一个量进行排序,然后剩下的那个量就可以像处理最长子序列那样做了。 值得一提的是该题需要打印路径,最好的方法是用一个数组pre运用类似链表的结构,来记录路径。 这恰恰就是紫书上数据结构那章例题14中所用的记录最短路路径的方法 。 其中的巧妙和实现细节请读者细细品味。
针对这道题, 由于dp是利用之前计算的结果进行递推得到的,...
分类:
其他好文 时间:
2015-05-18 16:46:49
阅读次数:
122
题意:
如果输入的串分割后的和最小都比Target大,那就输出error.
如果有多种结果一样,那么就输出rejected.
否则,输出最大的和 和分别是哪些子串。这个题都是整数,所以比较简单。直接搜索所有的情况就好了,还有一点是打印路径,一般可以用path[]或者pre[]的数组表示,但是这里数据有点大我就用的map水过了。。#include
#include <cstri...
分类:
其他好文 时间:
2015-05-18 14:51:44
阅读次数:
115
// poj 1141 Brackets Sequence
// 也是在紫书上看的一题,uva就是多了一个t组数据。
// 经典区间dp
// dp(i,j)表示区间[i,j]内所需要增加的括号数目
// 则分为两种情况
// 一种是s[i]和s[j]是匹配的则
// dp[i][j] = min(dp[i][j],dp[i+1][j-1])
// 另外一种情况是不匹配
// dp[i][j] =...
分类:
其他好文 时间:
2015-05-05 00:05:14
阅读次数:
147
题意:n*m的迷宫,从(0,0)到(n-1,m-1),遇到怪物停留怪物所在方格中的数字个单位时间,求最短时间并打印路径;思路:用bfs先搜最短路,搜最短路时一定要用优先队列,不然结果不对;在通过保存上一步的方法保存路径,到达终点时,将路径查询出来,遇到怪物是位置不变;#include#include...
分类:
其他好文 时间:
2015-05-01 17:16:29
阅读次数:
129