摘要: tarjan,状态压缩。 首先直接暴力可过。 第一步tarjan缩强联通分量,图变成一个dag。跑一个拓扑排序。 然后倒序用一个f[i]二进制数组表示i能到达的点。 因为2000个点已知数据类型放不下,用一个bitset。 然后答案就是sum(size[u]*size[v]) f[u][v]=1,u能到v。 #include #include #include #include ... 阅读全文
posted @ 2016-06-17 12:11 invoid 阅读(162) 评论(0) 推荐(0) 编辑
摘要: dp. 用到俩次dp,用1和0代表俩种颜色,首先对于每块木板我们进行一次dp,g[i][j]代表前j个格子刷i次最多能涂到几个格子。 则 g[i][j]=max(g[i-1][k],max(cnt[j]-cnt[k],j-k-cnt[j]+cnt[k])。 k #include #include using namespace std; const int maxn = 100 + 10; ... 阅读全文
posted @ 2016-06-17 10:57 invoid 阅读(228) 评论(0) 推荐(0) 编辑