摘要: 求SCC缩点,统计出每个SCC中的点的个数。然后统计能到达u的最多的点的个数,可以反向建图,再dfs一遍统计出来。最后说一下,有必要开一个标记数组,因为测试数据中有重边,结果无限WA。 1 #include 2 #include 3 #include 4 #include 5 #i... 阅读全文
posted @ 2015-08-10 23:11 AOQNRMGYXLMV 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 给出一个带权有向图,要使整个图连通。SCC中的点之间花费为0,所以就先缩点,然后缩点后两点之间的权值为最小边的权值,把这些权值累加起来就是答案。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 usi... 阅读全文
posted @ 2015-08-10 16:10 AOQNRMGYXLMV 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 求出强连通分量,因为强连通中只要有一个人被通知到了,所有人都能被通知到。缩点以后形成一个DAG,找出那些入度为0的点,累加上它们的权值就是答案。一个点的权值等于SCC中权值最小的那个点。 1 #include 2 #include 3 #include 4 #include 5 #inclu... 阅读全文
posted @ 2015-08-10 11:34 AOQNRMGYXLMV 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 网上的题解几乎都是一样的:d(i, j, 0)表示前i行前j列,第(i, j)个格子向左运输能得到的最大值。d(i, j, 1)是第(i, j)个格子向上运输能得到的最大值。但是有一个很关键的问题没有解释:某个格子中的A矿或者B矿一定有其中一种能够运出来吗?有没有可能这个格子没有修建管道,仅仅是为了... 阅读全文
posted @ 2015-08-10 10:19 AOQNRMGYXLMV 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 约瑟夫变形,先计算出3个数时,最后三个数字的编号。然后以这三个数为起点,就可以递推出n个数对应的最后三个数字的编号。递推公式都是一样的。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const... 阅读全文
posted @ 2015-08-10 09:39 AOQNRMGYXLMV 阅读(239) 评论(0) 推荐(0) 编辑
摘要: kill[S]表示消灭机器人的集合为S,剩下的所能杀死的机器人集合。设d(S)表示杀死机器人集合为S的方法数,答案为d((1 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int maxn = 16; 8 ... 阅读全文
posted @ 2015-08-10 08:57 AOQNRMGYXLMV 阅读(226) 评论(0) 推荐(0) 编辑