CodeForces
来源:互联网 发布:统计学 算法模型 编辑:程序博客网 时间:2024/06/11 04:28
题目大意:
一个人,在山上,呆了好多天,然后已知他在某几天的高度,问他待在山上的这些天,最高可能到过多高。(注意他相邻两天所在高度差最大为1)。
抽象化:一个函数,告诉你它某几个点的坐标,且该函数图像斜率受到限制,问你该函数最大值为多少。
分析:
就说一句话,就是这些已知高度的日子(n个)把整个旅行过程分成了若干(n+1)段,找出每一段之间可能产生的最高高度。
代码:
#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#define maxm 100500using namespace std;int m,n;int a[maxm];int h[maxm];int main(){ int flag=0; cin>>n>>m; for(int i=1;i<=m;i++) { scanf("%d%d",&a[i],&h[i]); } int max=h[1]+a[1]-1; if(max<(n-a[m]+h[m]))max=n-a[m]+h[m]; for(int i=1;i<m;i++) { int s=h[i+1]-h[i]; if(s<0)s=-s; if(s>a[i+1]-a[i]) { flag=1;break; } int k=h[i+1]; if(k<h[i])k=h[i]; int t=(a[i+1]-a[i]-s)/2+k; if(max<t)max=t; } if(flag==1) { cout<<"IMPOSSIBLE"; } else { cout<<max; }}
0 0
- codeforces~~~
- Codeforces
- codeforces
- Codeforces
- codeforces
- codeforces
- Codeforces
- Codeforces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- C#事件解析
- Windows编程_Lesson004_库存管理系统
- c语言用字符数组和字符指针删除相同字符
- Struts2(四)——页面相关内容
- 数据开发岗找实习心得
- CodeForces
- Linux(十二):守护进程为什么fork两次?
- unity创建拖拽的圆周运动效果
- Vim实用技巧记录(一直更新)
- C#中的匿名类
- python学习笔记2-字典的使用
- Junit官方入门指南
- TypeError: io.sockets.socket is not a function 解决方案
- Android Studio初次进入Building卡住