简直难到没朋友。
双向bfs + 剪枝。
剪枝策略:
对于2--5位置上的数,只有当光标在对应位置时通过swap ,up,down来改变,那么当当前位置没有达到目标状态时,left和right无意义。
好了,只剪掉这里就过掉了。。。
还有比较炫酷的方法实现枚举720种排列。。。然后状压什么的。。。功力不够完全看不懂。。。。
#include
#include
#include
#...
分类:
其他好文 时间:
2014-06-25 20:11:00
阅读次数:
162
A bottom-up DP. To be honest, it is not easy to relate DP to this problem. Maybe, all "most"\"least" problems can be solved using DP..Reference:http:/...
分类:
Web程序 时间:
2014-06-25 18:39:32
阅读次数:
235
留坑,必填,学习kuangbin大神!!!!!加油!!1. POJ 2096 Collecting Bugs (期望DP)题意:我直接没看题目,看的别人题解里面的题目意思。大概就是有s个子系统,n种bug。某人每天能发现一个bug,这个bug属于一个分类,同时也属于一个子系统,每个bug属于某个子系...
分类:
其他好文 时间:
2014-06-25 15:14:53
阅读次数:
326
增加一个判素数的步骤就过了。太囧了。。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int k; 7 8 int main(){ 9 while(scanf("%d",&k)!=EOF){10 ...
分类:
其他好文 时间:
2014-06-25 15:03:25
阅读次数:
181
本题分两步:
1 使用Tarjan算法求所有最大子强连通图,并且标志出来
2 然后遍历这些节点看是否有出射的边,没有的顶点所在的子强连通图的所有点,都是解集。
Tarjan算法就是模板算法了。
这里使用一个数组和一个标识号,就可以记录这个顶点是属于哪个子强连通图的了。
然后使用DFS递归搜索所有点及其边,如果有边的另一个顶点不属于本子强连通图,那么就说明有出射的边。
有难度的题目:
...
分类:
其他好文 时间:
2014-06-25 07:19:31
阅读次数:
241
题目大意:
求n边形的费马点,即找到一个点使得这个点到n个点的距离之和最小。
解题思路:
三角形也有费马点,三角形费马点是这样定义的:寻找三角形内的一个点,使得三个顶点到该点的距离之和最小。
三角形费马点的做法是:
(1)若有一个角大于120度,那么这个角所在的点就是费马点。
(2)若不存在,那么对于三角形ABC,任取两条边(假设AB、AC),向外做等边三角形得到C' 和 A' ,那么AA' 和CC' 的交点就是费马点。
那么对于这题n多边形,我采取的策略完全不同,采用了模拟退火的做法,这种做法相对比...
分类:
其他好文 时间:
2014-06-25 00:09:27
阅读次数:
319
Intersecting Lines
大意:给你两条直线的坐标,判断两条直线是否共线、平行、相交,若相交,求出交点。
思路:线段相交判断、求交点的水题,没什么好说的。
struct Point{
double x, y;
} ;
struct Line{
Point a, b;
} A, B;
double xmult(Point p1, Point...
分类:
其他好文 时间:
2014-06-24 21:16:40
阅读次数:
155
本题就是要往墙上贴海报,问最后有多少可见的海报。
其实本题的难点并不是线段树,而是离散化。
因为数据很大,直接按原始数据计算那么就会爆内存和时间的。
故此需要把数据离散化。
比如有海报1 6 7 9 20 100 5 1000的原始数据,直接计算需要1-1000的内存,离散化之后只需要8内存,因为只有4组数据8个数。
本题更进一步高级一点的离散化就是需要把不相邻的两个数据插入一...
分类:
其他好文 时间:
2014-06-24 15:47:53
阅读次数:
222