关闭

JZOJ.3400【GDOI2014模拟】旅行 解题报告

标签: 动态规划最短路
2281人阅读 评论(0) 收藏 举报
分类:

旅行

题目大意

Long long ago,there was a kingdom called HJY. HJY有n个城市,从1到n进行编号。HJY有m条道路,第i条道路连接着两个城市ai,bi,由于年代久远,所有的道路都已经不能使用。如果要修复第i条道路,需要wi的时间。现在黄国王想要将某些道路修复,使得1号城市能够到达n号城市,2号城市能够到达n-1号城市..k号城市能够到达n-k+1号城市。为了满足黄国王的要求,请问最少需要多少时间去修复道路。如果无法做到,黄国王会很生气,他会让你输出10!。

输入格式

第一行:n,m,k

接下来m行:ai,bi,wi

含义如上所述。

输出格式

输出共一行:最少需要多少时间修复道路。如果始终无法满足旅者的要求,请输出10!。

样例输入

5 5 2
1 3 4
3 5 2
2 3 1
3 4 4
2 4 3

样例输出

9

数据范围

20%的数据满足:k <= 2, n<= 10, m <= 20

40%的数据满足:k <= 3, n<=100, m<=1000

70%的数据满足:k<=4, n<=1000, m<=1000

100%的数据满足:k<=4, n<=10000, m<=10000, n >= 2*k, wi<= 1000, 1 <= ai, bi <= n

正解

看到k<=4,这是个很小的数。
我们设一个状态转移方程F[i][S],表示从图中选出了一颗以i为根节点的树,用二进制数S表示这待连接2k的点是否在这棵树中的状态,1表示在这棵树,为0则不在,此时组成这棵树的最小权之和为F[i][S]。
转移很明显,如果j是一个和点i相连的点,且他两之间的距离为v

F[i][s]=min(F[i][S],F[j][S']+F[i][S-S']+v);

S是属于S的一个集合,以上比较容易理解。
现在我们关注到如果ij相连边,他两之间的距离为v,则
F[i][S]+v)可以更新F[j][S],同理(F[j][S]+v)也可以更新F[i][S]。
可以打一个SPFA完成上述操作。
剩下的就简单,令good[S]=min(F[i][S])。则我们知道了将S状态联通所需要的最小代价。
注意,如果在S状态中,存在一个i,而不存在n-i+1,那么我们将这个状态删除。
最后就是要将这些状态组合起来,使得他们的权值和最小。我们可以再用一个DP解决。

3
0
查看评论

【GDOI2014模拟】旅行(水法)

Description给出一张n个点,m条边的图,你可以选择一些边,使得1和n,2和n-1,3和n-2…k和n-k+1联通。代价为这些边的边权和。 求最小代价。 n<=10000,m<=12000,k<=4Solution这是一种神奇的方法。 求打脸/证明 如果只有一对点,...
  • alan_cty
  • alan_cty
  • 2016-05-21 13:24
  • 762

【GDOI2014模拟】网格 题解+代码

Description某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(...
  • u011056504
  • u011056504
  • 2016-06-12 19:31
  • 259

【GDOI2014模拟】旅行 题解&代码

原题Description从前有一位旅者,他想要游遍天下所有的景点。这一天他来到了一个神奇的王国:在这片土地上,有n个城市,从1到n进行编号。王国中有m条道路,第i条道路连接着两个城市ai,bi,由于年代久远,所有的道路都已经不能使用。如果要修复第i条道路,需要wi的时间。为了更好的旅行,旅者想要将...
  • liyizhixl
  • liyizhixl
  • 2016-05-27 19:52
  • 1647

JZOJ.3432【GDOI2014模拟】服务器 解题报告

服务器题目大意我们需要将一份文件复制到n个服务器上,这些服务器的编号为1, 2, …, n。 首先,我们可以选择一些服务器,直接把文件复制到它们中;将文件复制到服务器i上,需要花费cic_i。对于没有通过直接复制而获得文件的服务器,它依次向后检查ii+1,ii+2, …直到找到一台服务器jj(jj...
  • XianHaoMing
  • XianHaoMing
  • 2016-06-13 19:16
  • 1869

JZOJ.3431【GDOI2014模拟】网格 解题报告

网格题目描述某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)...
  • XianHaoMing
  • XianHaoMing
  • 2016-06-12 12:33
  • 1917

【GDOI2014】beyond

【GDOI2014】beyondDescription 有两个长度为n的字符串s,st,找出两个串前i个可以循环同构的最大长度。 如abcdx,cdabx两个串,答案为4。s的第一到第二个字符于st的第三到第四的字符相等。 Solution 很容易想到在s中枚举一个分界点i左边的字符 然后,...
  • doyouseeman
  • doyouseeman
  • 2016-01-23 20:14
  • 805

3432. 【GDOI2014模拟】服务器

Description我们需要将一个文件复制到n个服务器上,这些服务器的编号为S1, S2, …, Sn。首先,我们可以选择一些服务器,直接把文件复制到它们中;将文件复制到服务器Si上,需要花费ci > 0的置放费用。对于没有直接被复制文件的服务器Si来说,它依次向后检查Si+1, Si+2,...
  • TIMELORD1
  • TIMELORD1
  • 2017-07-13 20:07
  • 91

[bzoj3754][GDOI2014模拟]Tree

Description最小标准差生成树。。。。 n<=100,m<=2000,边权<=100Solution其实我比赛时想的是可以的,不过不用二分,而用枚举。 没错,枚举平均数。 不过,可能的数太多了,得另想办法。 我们把排好序的数按顺序排列,对于相邻的两个数a和b,和他们...
  • alan_cty
  • alan_cty
  • 2016-06-11 16:51
  • 392

【GDOI2014模拟】Tree

Wayne 在玩儿一个很有趣的游戏。在游戏中,Wayne 建造了N 个城市,现在他想在这些城市间修一些公路,当然并不是任意两个城市间都能修,为了道路系统的美观,一共只有M 对城市间能修公路,即有若干三元组(Ui, Vi,Ci) 表示Ui 和Vi 间有一条长度为Ci 的双向道路。当然,游戏保证了,若所...
  • chen1352
  • chen1352
  • 2016-06-13 19:08
  • 350

【GDOI2014模拟】网格

Description求从(0,0)点走到(n,m)点不越过直线y=x的方案数。 n,m<=5000Solution首先,这是一个经典问题,相信大家都会做。 正难则反,我们用总数减去不合法的方案数。 总数很明显是Cmm+nC_{m+n}^{m} 然后,因为题目要求是不越过,我们把直线向...
  • alan_cty
  • alan_cty
  • 2016-06-11 18:32
  • 484
    个人资料
    • 访问:278318次
    • 积分:4217
    • 等级:
    • 排名:第8607名
    • 原创:162篇
    • 转载:1篇
    • 译文:0篇
    • 评论:32条
    博客公告

    Swimming in the
    Sea of Questions
    ~~O(∩_∩)O~~

    文章分类