摘要: 题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1385题目意思很明确,这里就不讲了从这道题的年份来看,n应该不会超过100,没有用floyd( 效率不高,不喜欢用),选择了dijkstra注意两个点:一.起点和终点一样的情况,容易解决二.字典序大小比较时,要把当前的点加进路径比较,discuss有个例子40 2 3 92 0 1 53 1 0 39 5 3 10 0 0 01 4------------output应该是 1->2->3->4这条路径吧。以前我的是 1->3->4也a了(原话,完全引用)当前点不加进结 阅读全文
posted @ 2012-07-18 18:10 炎色 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://acm.hdu.edu.cn/showproblem.php?pid=1142题目大意:起点1,终点2,A与B想邻,如果B到终点的距离小于A到终点的距离,则A到B算一种走法(感觉解释的很烂,还是自已去看原题吧)思想:求出所有点到2点的距离,用dijkstra,没有什么特别的,接着dfs,从1点开始,对1 点相邻的点并且距离比他短的进行深搜,返回路径数/*最短路+dfs*//*使用了不常用的vector,queue,有错误提醒下*/#include<iostream>#include<vector>#include<cstdlib>#in 阅读全文
posted @ 2012-07-18 15:10 炎色 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 在搜索HDU RMQ题目时,发现了这道题,有人说是用RMQ,用线段树加贪心的也有,想太多了,实际上贪心够了。主要思想,i=0 -> n,如果a[i]>a[i+1],a[i]去掉,即前面的数要小于后面的数,代码详解 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 int main() 5 { 6 char b[1010];//输入 7 int a[1010],i,j,k,n,m;//转化为整数 8 int c[1010];//保存结果 9 while(cin>>b& 阅读全文
posted @ 2012-07-18 14:44 炎色 阅读(312) 评论(0) 推荐(1) 编辑