bzoj 1560 [JSOI2009]火星藏宝图(DP)
2016-03-30 17:33
543 查看
1560: [JSOI2009]火星藏宝图
Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 647 Solved: 309
[Submit][Status][Discuss]
Description
![](http://www.lydsy.com/JudgeOnline/images/1560_1.jpg)
Input
![](http://www.lydsy.com/JudgeOnline/images/1560_2.jpg)
Output
![](http://www.lydsy.com/JudgeOnline/images/1560_3.jpg)
Sample Input
4 101 1 20
10 10 10
3 5 60
5 3 30
Sample Output
-4HINT
![](http://www.lydsy.com/JudgeOnline/images/1560_4.jpg)
Source
JSOI2009Day2【代码】
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 using namespace std; 5 6 typedef long long LL; 7 const int maxn = 1000+10; 8 const int maxm = 200000+10; 9 const int INF = 1e9; 10 11 struct node{ 12 int x,y,p; 13 bool operator<(const node& rhs) const{ 14 return (x<rhs.x)||(x==rhs.x && y<rhs.y); 15 } 16 }a[maxm]; 17 18 int pos[maxn],n,m; 19 LL d[maxn]; 20 21 int read(int& x) { 22 char c=getchar(); 23 while(!isdigit(c)) c=getchar(); 24 x=0; 25 while(isdigit(c)) x=x*10+c-'0',c=getchar(); 26 } 27 28 int main() { 29 scanf("%d%d",&n,&m); 30 n+=2; 31 a[1].x=a[1].y=1; 32 a[2].x=a[2].y=m; 33 for(int i=3;i<=n;i++) 34 read(a[i].x),read(a[i].y),read(a[i].p); 35 sort(a+2,a+n+1); 36 pos[1]=1; 37 for(int i=2;i<=n;i++) { 38 LL tmp=-INF; 39 for(int j=1;j<=a[i].y;j++) if(pos[j]) 40 tmp=max(tmp,d[j]-(a[i].y-j)*(a[i].y-j)-(a[i].x-pos[j])*(a[i].x-pos[j])); 41 pos[a[i].y]=a[i].x , d[a[i].y]=tmp+a[i].p; 42 } 43 printf("%lld\n",d[m]); 44 return 0; 45 }
相关文章推荐
- jspatch 的简单原理理解
- bzoj1823 [JSOI2010]满汉全席(2-SAT)
- bzoj2208 [Jsoi2010]连通数(scc+bitset)
- BZOJ1015 [JSOI2008]星球大战starwar(并查集)
- Ajax、servlet、jsp、JSON数据交互以及跳转问题
- JSP跳转页面的几种方式
- 关于js页面时间判断,和一些杂项
- 对象转JSON注意点
- js的工作原理
- js初学笔记(二)
- javascript笔记——JavaScript经典实例
- 谈一谈js中的执行环境及作用域
- 序列化和反序列化(二)——让我们聊聊Json这个家伙吧!
- json工具类
- Angular JS中变量定义的基本原则
- js中的执行环境及作用域
- 汇总前端最最常用的JS代码片段
- JSP工作原理
- js实现(全选)多选按钮的方法【附实例】
- jsp站点