摘要: 拓扑排序。每次找到入度为0的点存下来。一次找完后,对这些点计算费用。#include#include#include#include#includeusing namespace std;vectorabc[10005];int rudu[10005];int linshi[10005];int m... 阅读全文
posted @ 2015-04-18 15:48 Fighting_Heart 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 像拓扑排序那样先搞好。然后只要判断一下这张图中入度为0的节点有几个,如果有1个就输出yes。0个或者1个以上的全部输出no。#include#include#include#include#include#include#includeusing namespace std;int rudu[200... 阅读全文
posted @ 2015-04-18 14:31 Fighting_Heart 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 简单的拓扑排序。#include#include#include#include#includeusing namespace std;int rudu[105];vectorabc[105];int main(){ int n, m, i, x, y, j, k; while (~sc... 阅读全文
posted @ 2015-04-18 14:06 Fighting_Heart 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 简单的拓扑排序,每次都找到入度为0的节点输出,这个节点出发的连到的节点入度都减1。第一次写拓扑排序,还需改进。#include#include#include#include#includeusing namespace std;int rudu[505];vectorabc[505];int ma... 阅读全文
posted @ 2015-04-18 13:54 Fighting_Heart 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 二进制的状态压缩。比如A集合里面有{1,5,7}那么就表示为1010001。B集合有{3,4},二进制表示1100。A|B=1011101。按照这样的思路 可以用01背包 把所有的组合全部求出来。#include#include#include#includeusing namespace std;... 阅读全文
posted @ 2015-04-18 07:51 Fighting_Heart 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 二进制状态压缩+BFS。对于每一个点记录所有钥匙状态下最少的时间。如果这个点这个钥匙状态没有走过或者走过了但是时间花的少了,那么就走过去。#include#include#include#includeusing namespace std;const int maxn = 22;int sx, s... 阅读全文
posted @ 2015-04-18 07:45 Fighting_Heart 阅读(177) 评论(0) 推荐(0) 编辑