摘要: 可以转成动态规划问题,f[i][j][k][0/1]表示选完了前i种牌,第i 1种选了j个,第i种选了k个,选/不选一对的。 阅读全文
posted @ 2018-07-24 21:59 SWHsz 阅读(188) 评论(0) 推荐(0) 编辑
摘要: tarjan 缩点,跑个最长路。 cpp include include include include include using namespace std; const int N=500005; vectorG[N],V[N]; int n,m,ecnt,head[N],val[N],S,p 阅读全文
posted @ 2018-07-24 21:40 SWHsz 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 正难则反,离线下来并查集反的修建就行了。修建的时候判定一下两边现在是不是在一个并查集里,并且是不是现在都没有被摧毁即可。 cpp include include include using namespace std; const int N=400005; int n,m,fa[N],ans[N] 阅读全文
posted @ 2018-07-24 16:36 SWHsz 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 建一个反图跑个最短路,然后记忆化搜索一下。 (很迷的是堆优化dij就wa了,线段树优化的和spfa就A了。)(求dalao看看我的堆优化dij是不是打错了,但是过了80分)。 spfa的AC代码: cpp include include include include include include 阅读全文
posted @ 2018-07-24 12:00 SWHsz 阅读(160) 评论(0) 推荐(0) 编辑