题目描述 Description

PP
特别喜欢玩即时战略类游戏,但他觉得那些游戏都有美中不足的地方。灾害总不降临道路,而只降临城市,而且道路不能被占领,没有保护粮草的真实性。于是他就研发了《新三国争霸》。
在这款游戏中,加入灾害对道路的影响(也就是一旦道路W[i,j]受到了灾害的影响,那么在一定时间内,这条路将不能通过)和道路的占领权(对于一条道路W[i,j],至少需要K[i,j]个士兵才能守住)。
PP可真是高手,不一会,就攻下了N-1座城市,加上原来的就有N座城市了,但他忽略了一点……那就是防守同样重要,不过现在还来的及。因为才打完仗所以很多城市都需要建设,PP估算了一下,大概需要T天。他现在无暇分身进攻了,只好在这T天内好好的搞建设了。所以他秒要派士兵占领一些道路,以确保任何两个城市之间都有路(不然敌人就要分而攻之了,是很危险的)。士兵可不是白干活的,每个士兵每天都要吃掉V的军粮。因为有灾害,所以方案可能有变化(每改变一次就需要K的军粮,初始方案也需要K的军粮)。
因为游戏是PP编的,所以他知道什么时候有灾害。PP可是一个很节约的人,他希望这T天在道路的防守上花最少的军粮。 N<=300,M<=5000
,T<=50; 输入描述 Input Description

第一行有5个整数N,M,T,V,K。N表示有城市数,M表示道路数,T表示需要修养的天数,V表示每个士兵每天吃掉的军粮数,K表示修改一次花掉的军粮数。
以下M行,每行3个数A,B,C。表示A与B有一条路(路是双向的)需要C个士兵才能守住。 第M+2行是一个数P,表示有P个灾害。
以下P行,每行4个数,X,Y,T1,T2。表示X到Y的这条路,在T1到T2这几天都会受灾害。 输出描述 Output Description

T天在道路的防守上花费最少的军粮。

1.如果没有天灾的话,就是最小生成树。
2.如果不能改变方案的话,就当成被断掉的边不存在,然后参照第1条。
3.枚举分成哪几段,那么每一段里参照第2条。
4.暴力枚举当然会挂,这不就是个dp。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int oo=0x3f3f3f3f;
struct edge
{
    int f,t,w;
    bool operator < (const edge & ee) const
    {        return w<ee.w;
    }
}g[5010];
int fa[310],m,n,dp[310],k,t,v,q,xx[30010],yy[30010],t1[30010],t2[30010],ban[310][310],clo;
int find(int x)
{
    return x==fa[x]?x:fa[x]=find(fa[x]);
}
int kru(int L,int R)
{
    int i,j,cnt=0,ret=0,u,v;
    clo++;
    for (i=1;i<=q;i++)
      if ((t1[i]>=L&&t1[i]<=R)||(t2[i]>=L&&t2[i]<=R)||(L>=t1[i]&&L<=t2[i])||(R>=t1[i]&&R<=t2[i]))
        ban[xx[i]][yy[i]]=ban[yy[i]][xx[i]]=clo;
    for (i=1;i<=n;i++)
      fa[i]=i;
    for (i=1;i<=m;i++)
    {        if (ban[g[i].f][g[i].t]==clo) continue;
        u=find(g[i].f);
        v=find(g[i].t);
        if (u!=v)
        {            fa[u]=v;
            cnt++;
            ret+=g[i].w;
            if (cnt==n-1) break;
        }
    }
    if (cnt==n-1) return ret;
    else return oo;
}
int main()
{
    int i,j,p,x,y,z;
    scanf("%d%d%d%d%d",&n,&m,&t,&v,&k);
    for (i=1;i<=m;i++)
      scanf("%d%d%d",&g[i].f,&g[i].t,&g[i].w);
    scanf("%d",&q);
    for (i=1;i<=q;i++)
      scanf("%d%d%d%d",&xx[i],&yy[i],&t1[i],&t2[i]);
    sort(g+1,g+m+1);
    memset(dp,0x3f,sizeof(dp));
    dp[0]=0;
    for (i=1;i<=t;i++)
      for (j=0;j<i;j++)
        dp[i]=min(dp[i],dp[j]+k+kru(j+1,i)*(i-j)*v);
    printf("%d\n",dp[t]);
}

codevs1403 新三国争霸相关推荐

  1. 在线音频“三国争霸”,谁能率先登陆资本市场?

    (图片来源于网络) 文 | 易不二 来源 | 螳螂财经(ID:TanglangFin) "世界上最长的河是亚马逊河,后来亚马逊成了世界上最大的电商网站:世界上最大的宝藏发现者是阿里巴巴,后来 ...

  2. 世博会、新三国、新红楼

    先说世博会吧.前几天带着我妈一起去看了世博会,虽然是周三去的,可人还是很多,热门馆基本进不去.索性就在外面走,看热闹.先随便看了几个冷门馆 -  越南.伊拉克.还有个主题馆.然后走到马来西亚馆门口,看 ...

  3. 新三国 雷人台词----雷死一群程序员

    新三国 雷人台词----保证雷死你 新三国 雷人台词 新三国的导演很可能是 周星驰的粉丝,使用了大量的周氏无厘头,大家把这个电视剧当成个闹剧恶搞剧来看的话,那么心里就不那么恶心了 越篇 ●刘备:&qu ...

  4. 【吐槽脑洞】关于逛B站时偶然体验的弹幕互动游戏魏蜀吴三国争霸游戏的一些思考

    [吐槽&开脑洞]关于逛B站时偶然体验的弹幕互动游戏魏蜀吴三国争霸游戏的一些思考 预警:本贴没有什么技术含量,也没有什么严谨的资料调查,仅仅是自己的一次游戏体验引起的一些思考和个人观点,以及作为 ...

  5. 张柠评新“三国”:“卧龙吊丧”看得人想吐(转载者痛处:历史什么时候成了中国人的信仰)...

    转载序: 转载本文不是因为三国这个评论,这里先不探讨三国演的如何,以下对于历史的态度,是转载者本人深有同感的地方,甚至是包括本人在内的国人的文化误区 少一分幻想,多一分本心,有了一定的了解你就会有这个 ...

  6. 【技术小说连载】新三国外传——赤壁之战

    小说连载系列是我第一次尝试的新的技术讲解方式,希望通过小说的形式将技术细节讲解清楚. 第二篇中长篇连载小说<新三国外传>,主要讲解一些架构.新技术以及程序员工作中的一些轶事,希望大家能够喜 ...

  7. 【技术小说连载】新三国外传——桃园结义

    小说连载系列是我第一次尝试的新的技术讲解方式,希望通过小说的形式将技术细节讲解清楚. 第二篇中长篇连载小说<新三国外传>,主要讲解一些架构.新技术以及程序员工作中的一些轶事,希望大家能够喜 ...

  8. 【技术小说连载】新三国外传——草船借箭

    小说连载系列是我第一次尝试的新的技术讲解方式,希望通过小说的形式将技术细节讲解清楚. 第二篇中长篇连载小说<新三国外传>,主要讲解一些架构.新技术以及程序员工作中的一些轶事,希望大家能够喜 ...

  9. 【技术小说连载】新三国外传——徐庶赴曹

    小说连载系列是我第一次尝试的新的技术讲解方式,希望通过小说的形式将技术细节讲解清楚. 第二篇中长篇连载小说<新三国外传>,主要讲解一些架构.新技术以及程序员工作中的一些轶事,希望大家能够喜 ...

最新文章

  1. 图像相似度计算之哈希值方法OpenCV实现
  2. 算法------二叉树的层序遍历
  3. 数据结构——树与二叉树
  4. Android调试技巧之Eclipse行号和Logcat
  5. Android的.apk软件安装到sd卡的方法
  6. STM32F7xx —— ADC
  7. docker安装linux安装mysql_怎么启动mysql-linux 怎么安装mysql?怎么在docker搭建mysql8?docker安装mysql...
  8. adb 环境变量配置 无效
  9. 它们把色情版 “微信” 的底裤都给挖出来了,网友: 草率了。。。
  10. pdf关键字高亮 java_Java查找并高亮PDF文本过程解析
  11. Win10自动更新后桌面文件不见了怎么办?
  12. 生产计划排程APS系统整体结构
  13. python中将数字转换为字符串
  14. 校招linux基础知识,校招笔试整理 牛客网 2020小米校招(1)
  15. 从零构建通讯器--7.1过往总结和心跳包代码实战
  16. 定义一个数组存储10个上面描述的小怪兽,每个小怪兽的名字为(小怪兽+数组下标)
  17. storm mysql trident_Apache Storm 官方文档 —— Trident 教程
  18. 解决部署jeesite项目报错 com.thinkgem.jeesite.modules.sys.listener.WebContextListener
  19. 死磕源码系列【springboot项目打印is not eligible for getting processed by all BeanPostProcessors (for example: n
  20. 计算机监控系统规程,SC-计算机监控系统检修规程-29.doc

热门文章

  1. mysql 分区 varchar_MySQL分区总结
  2. idea创建项目教程
  3. 正基APWIFI模块调试指南
  4. python优点和缺点_python的优势和劣势
  5. 成都物韵电子商务有限公司如何让店铺的流量得到提升?
  6. 图片模糊搜索项目一阶段总结
  7. 640×640的jpg图像一般多少字节
  8. 骑士游历数组任意起点c语言,java课程设计骑士游历程序的开发
  9. 拍照与选取相册图片-cameralibrary
  10. ReLU函数代码实现