$f[i][j]$表示消灭起始时间在$(i,j)$内的外星人所花费的最小代价。

考虑在这个区间内距离最远的外星人h,在他的区间中一定要选一个点要开一炮,而且这一炮可以顺便把其他跨过这个点的敌人消灭,剩下只需消灭没有跨过这个点的敌人。

枚举开炮时间$f[i][j]=min(f[i][k]+f[k][j]+d[h])$.

区间需要离散化。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 605
using namespace std;
int n;
int li[N],cnt;
int a[N],b[N],d[N];
int f[N][N];
int main()
{
int cas;
scanf("%d",&cas);
while(cas--)
{
scanf("%d",&n);cnt=0;
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&a[i],&b[i],&d[i]);
li[++cnt]=a[i];li[++cnt]=b[i];
}
sort(li+1,li+cnt+1);
cnt=unique(li+1,li+cnt+1)-li-1;
for(int i=1;i<=n;i++)
{
a[i]=lower_bound(li+1,li+cnt+1,a[i])-li;
b[i]=lower_bound(li+1,li+cnt+1,b[i])-li;
}
cnt++;
for(int l=0;l<=cnt;l++)
{
for(int i=0;i<=cnt-l;i++)
{
int j=i+l;int h=-1;
for(int k=1;k<=n;k++)
{
if(a[k]>i&&b[k]<j)
{
if(h==-1||d[k]>d[h])h=k;
}
}
if(h==-1)f[i][j]=0;
else
{
f[i][j]=0x3f3f3f3f;
for(int k=a[h];k<=b[h];k++)
{
f[i][j]=min(f[i][j],f[i][k]+f[k][j]+d[h]);
}
}
}
}
printf("%d\n",f[0][cnt]);
}
return 0;
}

  

bzoj 3928: [Cerc2014] Outer space invaders的更多相关文章

  1. BZOJ.3928.[CERC2014]Outer space invaders(区间DP)

    BZOJ3928 双倍经验BZOJ4048 Codeforces GYM100543 L \(Description\) \(Solution\) 考虑出现时间在\([l,r]\)内的敌人,设最远的敌 ...

  2. BZOJ3928 [Cerc2014] Outer space invaders

    第一眼,我勒个去...然后看到n ≤ 300的时候就2333了 首先把时间离散化,则对于一个时间的区间,可以知道中间最大的那个一定要被选出来,然后把区间分成左右两份 于是区间DP就好了,注意用左开右开 ...

  3. 2018.10.25 bzoj3928: [Cerc2014] Outer space invaders(区间dp)

    传送门 区间dpdpdp好题. 首先肯定需要把坐标离散化. 然后在数轴上面区间dpdpdp. 对于当前区间,区间中最大的数一定会被选. 于是我们记f[i,j]f[i,j]f[i,j]表示所有左端点在i ...

  4. [CERC2014] Outer space invaders

    题目链接 题意 你受到一群外星人的攻击,第 $i$ 个外星人会在 $ai$ 时间出现,与你的距离为 $di$,且必须在 $bi$ 时间前消灭.你有一个区域冲击波器,每次攻击可以设定一个功率 $R$,这 ...

  5. [BZOJ3928/4048]Outer space invaders

    [BZOJ3928/4048]Outer space invaders 题目大意: 有\(n(n\le300)\)个物品,第\(i\)个物品会在\(a_i\sim b_i\)时刻出现,且离你的距离为\ ...

  6. Codeforces Gym100543L Outer space invaders 区间dp 动态规划

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF-Gym100543L.html 题目传送门 - CF-Gym100543L 题意 $T$ 组数据. 有 $n ...

  7. Codeforces Gym100543L:Outer space invaders(区间DP)

    题目链接 题意 有n个人,每个人有一个出现时间a和一个开枪时间b和一个距离d,在任意一个时刻,你可以选择炸人,你要炸一个人的花费是和他的距离d,并且所有的已经出现并且还没开枪的和你距离<=d的人 ...

  8. BZOJ 1739: [Usaco2005 mar]Space Elevator 太空电梯

    题目 1739: [Usaco2005 mar]Space Elevator 太空电梯 Time Limit: 5 Sec  Memory Limit: 64 MB Description The c ...

  9. Space Invaders 太空侵略者

    发售年份 1978 平台 街机 开发商 Taito 类型 射击 https://www.youtube.com/watch?v=MU4psw3ccUI

随机推荐

  1. ceilometer 源码分析(polling)(O版)

    一.简单介绍ceilometer 这里长话短说, ceilometer是用来采集openstack下面各种资源的在某一时刻的资源值,比如云硬盘的大小等.下面是官网现在的架构图 这里除了ceilomet ...

  2. MATLAB2018a与2016b分类学习模型Java库向上兼容操作

    matlab2016版本无法兼容matlab2018版本Classification Learner创建的分类器 在java环境下,使用matlab2016版本调用matlab2018版本Classi ...

  3. mybatis学习------打包xml映射文件

    编译mybatis时,idea不会将mybatis的xml映射文件一起打包进jar,即在编译好的jar包里缺少mybatis映射文件,导致网站加载失败 为解决这个问题,可在mybatis对应modul ...

  4. SSZipArchive解压失败的原因

    SSZipArchive 解压失败的原因是路径不对解压失败后,修正路径后再次解压就会出现解压失败的情况,代理方法也不会走也没有日志输出.解决方法就是删除手机上的软件再次运行就可以了.这个问题也就在内部 ...

  5. OGG 问题

    1.启动复制时报 "ERROR OGG-15050 Oracle GoldenGate Delivery, l***.prm: Error loading Java VM runtime l ...

  6. linux, configure --prefix 的作用

    指定安装路径不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc.其它的资源文件放在/usr ...

  7. 欢迎来怼--第三十六次Scrum会议

    一.小组信息 队名:欢迎来怼 小组成员 队长:田继平 成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文 小组照片 二.开会信息 时间:2017/12/1 11:35~11:55,总计20min. 地点 ...

  8. Scrum Meeting 11.05

    成员 今日任务 明日计划 用时 徐越 代码移植 学习ListView+simpleAdapter,actionBar.阅读并修改前端代码 4h 赵庶宏 服务器配置,代码移植  构建后端数据库,进行完善 ...

  9. Trick and Magic(OO博客第二弹)

    代码是设计,不是简单的陈述.而设计不仅要求功能的正确性,更注重设计风格和模式. 真正可以投入应用的程序设计,不是那种无脑的“黑箱”,超巨大的数组,多重循环暴力搜索,成吨全局变量……事实上,在实际应用中 ...

  10. web14 validation.xml配置 登录验证文件配置

    电影网站:www.aikan66.com 项目网站:www.aikan66.com 游戏网站:www.aikan66.com 图片网站:www.aikan66.com 书籍网站:www.aikan66 ...