摘要: 点击打开链接 题意: 给出一个无向图,现在把所有的点的人都交换,保证每个地方只有一个人,且任何人都不在自己原来的那个点上,问交换的过程中所有人走的最远的距离是多少; 思路: 首先分析一下,我们对每一个边进行分析,每个边的左边有n个节点,右边有m个节点,那么必然ans+=min(n,m)*边权 仔细想 阅读全文
posted @ 2017-02-19 23:16 _yxg123 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 就是寻找LIS 并打印出来 dp[i]表示到包括第i个数的前i个的最长递增的长度 从数列从后往前找就好了 ,如果从前往后,前面的大数会覆盖掉后面的小数,就不对了 代码: 阅读全文
posted @ 2017-02-19 21:39 _yxg123 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 第一种思路: 建立森林,dp[i][k]表示森林中在第i颗树中选k个的最大价值 , dp2[j]表示选j个的最大价值,对于每颗树,都更新一次。 转移方程: dp[u][j] = max(dp[u][j],dp[u][j-k]+dp[v][k]); dp2[j] = max(dp2[j] 阅读全文
posted @ 2017-02-19 00:42 _yxg123 阅读(143) 评论(0) 推荐(0) 编辑