摘要:
tarjan,状态压缩。 首先直接暴力可过。 第一步tarjan缩强联通分量,图变成一个dag。跑一个拓扑排序。 然后倒序用一个f[i]二进制数组表示i能到达的点。 因为2000个点已知数据类型放不下,用一个bitset。 然后答案就是sum(size[u]*size[v]) f[u][v]=1,u能到v。 #include #include #include #include ... 阅读全文
摘要:
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; ... 阅读全文