C. Tourist's Notes
题意:n天内登山,相邻两次登山的高度差的绝对值小于等于1,也就是说每次高度变化只能是:0,1,-1.我们已经知道n天中部分天数人所在的山的高度,求最大的登山高度。
输入:
n m n 是天数,m是已经知道的登山天数
di dhi di天,所在的高度是dhi,共有m行
输出:
最大的登山高度。
Java程序:
import java.util.Scanner; public class C538 { public static void run(){
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int m=in.nextInt();
int ans = 0;
int res = 0;
int prea =in.nextInt();
int preb =in.nextInt();
m--;
ans=preb+prea-1;// 第一次之前,可能的最大高度
int a=0;int b=0;
boolean flag=true;
while(m!=0){
a=in.nextInt();
b=in.nextInt();
if(Math.abs(b-preb) >a-prea)// 为真,说明中间有走的步长 大于 1 或小于 -1
flag = false;
if(flag){
int disd= a-prea;
int dish=b-preb;
if(dish>=0){ // prea 到 a 高度上升 ,dish是两次的高度差
res=preb+dish;// 走了dish 高度,要dish天
disd-=dish; // 减去后的值,是走完disd天,高度没有变化
res+=disd/2;// 步长-1 1 最大的高度是先走disd/2 再下降 disd/2 (共disd天)
ans=Math.max(ans, res); //最大值是最大的高度
}else{// prea 到 a 高度下降了
disd+=dish; // dish有效的下降天数,等式的结果是在disd天内高度没有变化
res =preb+disd/2; // 最大的高度是在disd/2 天内高度上升disd/2
ans = Math.max(ans,res); }
}
prea =a;
preb =b;
m--;
}
if(flag){
preb+=n-prea;
ans = Math.max(ans, preb);
System.out.println(ans);
}else
System.out.println("IMPOSSIBLE");
}
public static void main(String[] args){
run();
}
}
C. Tourist's Notes的更多相关文章
- Codeforces Round #300 C. Tourist's Notes 水题
C. Tourist's Notes Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/538/pr ...
- Codeforces 538 C. Tourist's Notes
C. Tourist's Notes time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- C. Tourist's Notes
C. Tourist's Notes time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Tourist's Notes CodeForces - 538C (贪心)
A tourist hiked along the mountain range. The hike lasted for n days, during each day the tourist no ...
- Codeforces Round #300(A.【字符串,多方法】,B.【思维题】,C.【贪心,数学】)
A. Cutting Banner time limit per test:2 seconds memory limit per test:256 megabytes input:standard i ...
- Codeforces Round #300 解题报告
呜呜周日的时候手感一直很好 代码一般都是一遍过编译一遍过样例 做CF的时候前三题也都是一遍过Pretest没想着去检查... 期间姐姐提醒说有Announcement也自信不去看 呜呜然后就FST了 ...
- C. Tourist Problem
http://codeforces.com/problemset/problem/340/C 赛时没想出赛后却能较快想出深深的教育自己做题一定要静下心来,不要轻易放弃,认真思考,不要浮躁着急,不要太容 ...
- codeforces 340C Tourist Problem(公式题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Tourist Problem Iahub is a big fan of tou ...
- Codeforces Round #198 (Div. 2) C. Tourist Problem
C. Tourist Problem time limit per test 1 second memory limit per test 256 megabytes input standard i ...
随机推荐
- mac下163企业邮箱客户端的配置
一 添加账户 添加账户->添加其他邮件账户->输入电子邮件地址和密码.(全名随意起). 二 收件服务器和发件服务器的设置 收件服务器:pop.qiye.163. ...
- Status Bar in iOS7
This is a very important change in iOS 7: the status bar is no longer a separate bar. It’s now somet ...
- Android开发随笔之ScrollView嵌套GridView[ 转]
今天在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全,为了解决这个问题查了N多资料,某个谷歌的 ...
- [转]webrtc学习: 部署stun和turn服务器
[转]webrtc学习: 部署stun和turn服务器 http://www.cnblogs.com/lingdhox/p/4209659.html webrtc的P2P穿透部分是由libjingle ...
- JS全局屏蔽回车事件
window.onload = function (){ document.body.onkeydown=function(event){ if(event.keyCode==13){ event.k ...
- UIImageView swift
// // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fa ...
- java卡与native卡的区别
JavaCard Native 功能特性 开发语言 l 纯面向对象的Java语言的子集. Java语言先进灵活,开发调试速度快,实现灵活. l Java没有指针,并且有内部安全机制可以有效的避 ...
- 结队开发项目——基于Android的无线点餐系统——NABC模型
特点:通过提前订餐,可以节约学生大量的排队时间. N(need):生活中可以发现许多同学都喜欢出去买饭,而且在有的摊位需要排很长时间的队,这样他们就会很晚吃到饭,下午有课的学生都不能睡午觉,所以通过我 ...
- 提取html中的src 路径
/// <summary> /// 替换body中的img src属性 附加上域名 /// </summary> /// <param name="str&qu ...
- OpenFramework中视频或者图片进行中心旋转、平移、放大、缩小、矫正(本例以视频为准,只给出主要代码)
/********** update mesh部分***********/ for(int i=0;i<4;i++) { mesh[i].clear(); //重要,不加的话,移动视频的四个角 ...