摘要:
启发式搜索主要就是加速,其实不用也可以过。二分L然后每次看最短路是多少,估价函数就是曼哈顿距离,然后注意精度误差就好了Tip:在POJ上交这道题目记得用c++千万不要用g++#include #include #include #include #include using nam... 阅读全文
摘要:
二分图匹配裸体,模板题。#include #include #include #include using namespace std;const int MAXN = 500;const int MAXM = 50000;struct node{ int v; nod... 阅读全文
摘要:
其实直接用BFS好像也可以AC但是用了A*可以更快,所以为了练习A*还是用A*老老实实写吧。估价函数就是到终点的曼哈顿距离除以3因为每走一步曼哈顿距离最多减少3,而且在所有情况下h(n)#include #include #include #include using namesp... 阅读全文
摘要:
这倒题目我看到很多人都用的bfs或者dfs但是其实并不用啊,首先可以发现如果不拐弯,那么A点和B点一定在同一条直线上(这种情况可以不用考虑,等下讲为什么)然后如果存在拐一次的情况那么一定是A和B所在的数轴的交点(也可以不用考虑)但是如果要拐两次呢首先A和B一定形成了一个矩形(假设A... 阅读全文
摘要:
这道题太简单不多赘述。打个表,随便搞。。#include #include #include using namespace std;int prime[40] = {0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, ... 阅读全文
摘要:
先说好,我的程序速度很慢1018ms。。其实就是算出总长度除以4然后搞一下和http://blog.csdn.net/jeremygjy/article/details/47043161一样的剪枝就好了。#include #include #include #include #in... 阅读全文
摘要:
首先这道题目有两个非常重要的剪枝1、如果当前放的是木块的第一个那如果当前dfs不成立,那么直接返回false因为每一个木板必定属于一个块,当他放第一个的时候如果可以放其他的其实是已经固定了的了,如果当前不成立那么不存在队友可以和他一起站对。2、就是如果当前这个和前一次进行dfs的木... 阅读全文
摘要:
题目问的是有多少个牛收到所有的牛的喜欢,因为这道题目具有传递性,所以在有向图上找出强连通子图,可以发现每个子图中的奶牛一定是互相喜欢的,所以不用考虑这样的情况(把每一个强连通子图找出,缩点)然后整个图就变成了有向无环图,那么同一个点必须受到其他所有奶牛的喜欢,那么它不能喜欢任意的除... 阅读全文
摘要:
实际上就是从T到当前节点的最短路的长度,因为首先要保证h(n) #include #include #include #include using namespace std;const int MAXN = 1000;const int MAXM = 100000;struct ... 阅读全文
摘要:
实际上就是个树链剖分,每次询问自己需要的到根节点中有多少开/开了,然后根据需要输出然后线段树Update的时候改一下改成每次更新全部,直接覆盖就行,每次扫描出来的一段肯定是上面半段开下面半段不开(分成两段)或者全部都处于开或者关,因为在链上任意一个处于开启状态那么之前的必须也处于开... 阅读全文