摘要: dp.以上次染色时用的颜色的数量和每种数量所含有的颜色作状态。 #include #include #include using namespace std; const int mod = 1000000007; long long f[6][16][16][16][16][16]; int c[6]; int k; long long dfs(int x,int a,int b,... 阅读全文
posted @ 2016-05-16 18:10 invoid 阅读(127) 评论(0) 推荐(0) 编辑
摘要: tatjan缩强连通分量,单源最长路。 #include #include #include using namespace std; const int maxn = 500000 + 10; const int maxm = 1000000 + 10; int G[maxn],V[maxm],Next[maxm],Eid; int g[maxn],v[maxm],next[maxm]... 阅读全文
posted @ 2016-05-16 15:40 invoid 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 最小费用最大流。 拆点法建模。 #include #include #include using namespace std; const int maxn = 500 + 10; const int maxm = 100000 + 10; const int INF = 0x3f3f3f3f; int g[maxn],v[maxm],next[maxm],f[maxm],c[maxm... 阅读全文
posted @ 2016-05-16 14:03 invoid 阅读(155) 评论(0) 推荐(0) 编辑
摘要: kruskal算法。 #include #include #include #include using namespace std; const int maxn = 1000 + 10; const int maxm = 2000000 + 10; struct Point { int x,y; } a[maxn]; struct Edge { int u,v,w;... 阅读全文
posted @ 2016-05-16 11:41 invoid 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 网络流拆点建模。 注意二分查找的边界 #include #include #include using namespace std; const int maxn = 500 + 10; const int maxm = 40000 + 10; const int INF = 0x3f3f3f3f; int g[maxn],v[maxm],next[maxm],f[maxm],eid;... 阅读全文
posted @ 2016-05-16 10:53 invoid 阅读(139) 评论(0) 推荐(0) 编辑