2017年9月22日
摘要: ``` //poj2449 求第k短路 / 一个最简单的想法是改造dijkstra算法,一个点可以多次进入优先队列, 统计终点第k次出队时的路径即可。 但这样等到第k次时状态数太多,无法承受。 于是使用astar算法思想对其进行改进。优先队列维护的是f(x)+g(x)的 值最小,其中g(x)是当前点 阅读全文
posted @ 2017-09-22 17:03 cylcy 阅读(95) 评论(0) 推荐(0)
摘要: ``` //poj3013 /* 站在每个点的角度考虑,答案等于每个点的权重*1到该点的所有的边的权值和 可以证明,1到所有点的最短路构成一颗树。直接跑一遍最短路即可 */ #include #include #include #include #include #include using namespace std; #define ll long long #define f... 阅读全文
posted @ 2017-09-22 17:00 cylcy 阅读(109) 评论(0) 推荐(0)
摘要: ``` //poj3463 次短路计数 /* 由于次短路条数可能很多,如果使用k短路算法将超时 使用djikstra算法 dijkstra性质: 1.每个点只会更新其他点一次,之后便不会被其他点更新。 2.重边不影响。 有几点注意事项: 0.先求出最短路,再求次短路。 1.维护每个点的最短路恒小于次短路。所以,为了做到这点,每次更新时优先更新最短路, 否则才更新次短路。 2.将状态节点插入堆中时要... 阅读全文
posted @ 2017-09-22 16:58 cylcy 阅读(137) 评论(0) 推荐(0)
摘要: ``` //poj3613 给定起点终点,求经过k条边的最短路 //矩阵乘法 快速幂 //详见 俞华程 矩阵乘法在信息学中的应用 include include include include include include using namespace std; define ll long l 阅读全文
posted @ 2017-09-22 16:54 cylcy 阅读(137) 评论(0) 推荐(0)
摘要: ``` / poj2778 congyu liu 2017 9 22 AC自动机+矩阵快速幂 详见http://blog.csdn.net/morgan_xww/article/details/7834801 感谢博主 先将不能包含的基因组单词跑一遍AC自动机建图, 接着,问题转化成,求从trie树 阅读全文
posted @ 2017-09-22 16:52 cylcy 阅读(125) 评论(0) 推荐(0)
2017年2月21日
摘要: 方法来自 "poj 3666 经典dp 加载中..." 感谢原作者。 题意 给一组正整数,让你对每个数进行增减使得最终形成一个不严格单调序列,并保证代价最小(每个数字增减绝对值的和) 方法 考虑不严格递增数列。 状态 : 表示第i个数为第j小的最小代价,同时保证1到i不严格单增。 转移方程 : 此题 阅读全文
posted @ 2017-02-21 23:21 cylcy 阅读(124) 评论(0) 推荐(0)
2017年1月29日
摘要: 题意 Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the s 阅读全文
posted @ 2017-01-29 18:57 cylcy 阅读(182) 评论(0) 推荐(0)
摘要: 题意 Farmer John's farm consists of a long row of N (1 =0,那么t[i]=t[i+1]+w[i]。若t[i+1] include include using namespace std; const int MAXN=100000+5; int N 阅读全文
posted @ 2017-01-29 18:56 cylcy 阅读(2961) 评论(0) 推荐(0)
摘要: 题意 m个苹果放n个盘子,苹果、盘子都一样,求情况总数。 想法 开始考虑递归状态f(m,n),表示m个苹果放n个盘子的情况数。转移时,一次枚举i个苹果装进1个盘子里。但为了使枚举情况有序,须设置一个枚举数量趋势(升序或降序),使得情况不会重复。所以最终状态为f(m,n,k),k为在此之前盘子中最大的 阅读全文
posted @ 2017-01-29 17:00 cylcy 阅读(104) 评论(0) 推荐(0)
摘要: 题意 There are two sequences \\(h_1∼h_n\\) and \\(c_1∼c_n\\). \\(h_1∼h_n\\) is a permutation of \\(1∼n\\). particularly, \\(h_0=h_{n+1}=0\\). We define 阅读全文
posted @ 2017-01-29 14:07 cylcy 阅读(123) 评论(0) 推荐(0)