自行想象传送门

题解

当我们一看到这个题的tag时就知道这是一道区间dp水题

很明显这个区间就是指时间上的区间

我们用dp[i][j]表示时间i~j之间消灭所有的aliens的最小代价

很明显开不下这么大的二维数组赛

所以离散化一下不久过了??

状态转移方程 dp[i][j]=min(dp[i][j],dp[i][k-1]+dp[k+1][j]+alien[id].d)

CODE

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct otherpeople{int a,b,d;
}alien[305];
int dp[2000][2000],ls[10010],n,t,cnt;
template <typename e> inline void read(e &x)
{x=0;register int f=1;char ch=getchar();while(ch>'9' || ch<'0') {if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9') {x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}x*=f;
}
int main()
{register int len,id,i,j,k,q;read(t);while(t--){read(n);cnt=0;memset(dp,0,sizeof(dp));memset(ls,0,sizeof(ls));for(i=1;i<=n;++i) read(alien[i].a),read(alien[i].b),read(alien[i].d),ls[alien[i].a]=1,ls[alien[i].b]=1;for(i=1;i<=10000;++i) if(ls[i]) ls[i] = ++cnt;for(i=1;i<=n;++i) alien[i].a=ls[alien[i].a],alien[i].b=ls[alien[i].b];for(len=1;len<cnt;++len)for(i=1,j=i+len;j<=cnt;++j,++i){id=-1;for(q=1;q<=n;++q) if(i<=alien[q].a&&j>=alien[q].b&&(id==-1||alien[id].d<alien[q].d)) id=q;if(id==-1) continue;dp[i][j]=0x7fffff;for(k=alien[id].a;k<=alien[id].b;++k) dp[i][j]=min(dp[i][j],dp[i][k-1]+dp[k+1][j]+alien[id].d);}printf("%d\n",dp[1][cnt]);}return 0;
}

转载于:https://www.cnblogs.com/yearning/p/11455077.html

P4766 [CERC2014]Outer space invaders相关推荐

  1. 洛谷P4766 [CERC2014]Outer space invaders题解

    https://www.luogu.com.cn/problem/P4766 description: 有 nnn 个外星人进攻,第 iii 个进攻的外星人会在时间 aia_iai​ 出现,距离你的距 ...

  2. P4766 [CERC2014]Outer space invaders(区间dp)

    题意: 题目描述 来自外太空的外星人(最终)入侵了地球.保卫自己,或者解体,被他们同化,或者成为食物.迄今为止,我们无法确定. 外星人遵循已知的攻击模式.有N个外星人进攻,第i个进攻的外星人会在时间a ...

  3. P4766 [CERC2014]Outer space invaders——思维+区间dp

    题目传送门 思路 这道题思维的转换真的很妙,第 i 个外星人出现的时间区间是 [ai,bi][a_i,b_i][ai​,bi​] ,距离为 did_idi​ , 我们可以以时间区间为横坐标,距离区间为 ...

  4. Cerc2014 Outer space invaders

    Cerc2014 Outer spaceinvaders 有N个外星人,第i个外星人会在ai时间出现,离你距离di,并且必须在bi时间之前被消灭.你有一把很NB的武器,攻击范围是个半径为R的圆,R可以 ...

  5. 题解 P4766 【[CERC2014]Outer space invaders】

    link description: 有 nnn 个外星人进攻,第 iii 个进攻的外星人会在时间 aia_iai​ 出现,距离你的距离为 did_idi​ ,它必须在时间 bib_ibi​ 前被消灭, ...

  6. 【Luogu P4766】 [CERC2014]Outer space invaders(区间dp)

    目录 题目 题目描述 输入格式 输出格式 输入输出样例 思路 代码 题目 题目描述 来自外太空的外星人(最终)入侵了地球.保卫自己,或者解体,被他们同化,或者成为食物.迄今为止,我们无法确定. 外星人 ...

  7. Luogu_P4766 [CERC2014]Outer space invaders【题解】区间DP

    题面:https://www.luogu.org/problem/P4766 非常容易就想到以时间为区间来DP. 但是时间比较大,需要离散化. 转移方程就是: f[l][r]=min(f[l][k-1 ...

  8. bzoj 3928: [Cerc2014] Outer space invaders

    $f[i][j]$表示消灭起始时间在$(i,j)$内的外星人所花费的最小代价. 考虑在这个区间内距离最远的外星人h,在他的区间中一定要选一个点要开一炮,而且这一炮可以顺便把其他跨过这个点的敌人消灭,剩 ...

  9. BZOJ3928 [Cerc2014] Outer space invaders

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

最新文章

  1. 【sql】实现分页查询
  2. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
  3. Bio+IT 爱好者社区,欢迎你!
  4. LeetCode: 111. Minimum Depth of Binary Tree
  5. spring boot 加载过程分析(三)
  6. python列表的append和extend
  7. leetcode 84. Largest Rectangle in Histogram | 84. 柱状图中最大的矩形(单调栈)
  8. 基于 vue2 导航栏透明渐变
  9. Android学习笔记(四)——EditText简单登录页面设计
  10. matlab 中pid tuning,PID Tuning Algorithm
  11. 3.12 - Tuples in Python
  12. 德芙背后刻骨铭心的痛
  13. 应用:文件夹copy器(多进程版)
  14. echarts给柱状图某个柱子设置颜色
  15. 用计算机怎么求反三角函数图像及性质,反三角函数图像及性质
  16. mysql会员等级怎么设置_用户等级数据库如何设计?
  17. 棋牌游戏开发会low吗 中国棋牌文化底蕴探究
  18. Web安全-表单域隐藏
  19. Java学到什么程度才算精通?(2),学海无涯
  20. Linux-软件安装管理

热门文章

  1. 马自达生产调整-日本广岛经济面临危机!
  2. 网络基础知识--IP地址
  3. unable to negotiate with xxxxx port xxx: no matching host key type found. Their offer: ssh-rsa
  4. 街霸 隆(Ryu)波动拳(Hadoken)动画(二)细节
  5. Google+推出相册管理器Album Organizer
  6. iphone编辑过的录音怎么还原_我的天呐,原来iPhone里录音不仅能导出,还能转文字?!...
  7. 银联开放平台在线课堂,上线啦
  8. 射频链路隔直电容选择
  9. 你浏览器的书签栏还够用么? - 程序员学点xx 特辑
  10. 窗口取消置顶后被父窗口挡住,HWND_TOPMOST与HWND_NOTOPMOST踩坑记录