二分,分了老半天也没分出来结果,只好跑去找题解
参考:http://www.cnblogs.com/TheRoadToTheGold/p/6421882.html
这题还有O(n)解法,后边讨论里说可以转化成最大子段和。。。

using System;
using System.IO;namespace ConsoleApplication1
{class Program{private static int N, X, M;private static int[] wood;static void Main(string[] args){StreamReader sr = new StreamReader(Console.OpenStandardInput());StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());string[] input = sr.ReadLine().Split(' ');N = Convert.ToInt32(input[0]);X = Convert.ToInt32(input[1]);M = Convert.ToInt32(input[2]);wood = new int[N];for (int i = 0; i < N; ++i)wood[i] = Convert.ToInt32(sr.ReadLine());int temp = X * 2 * N;if (temp > M){sw.WriteLine(-1);}else{sw.WriteLine(solve());}sw.Flush();sr.Close();sw.Close();}public static int solve(){int lb = 0;int ub = M;while (lb <= ub){int mid = (lb + ub) / 2;if (C(mid)) ub = mid - 1;else lb = mid + 1;}return lb;}public static bool C(int d){int head = 0;int tail = 0;for (int i = 0; i < N; ++i){head = tail;if (head + X + d <= wood[i]){head = Math.Max(head, wood[i] - d - X);tail = head + 2 * X;}else{if (head + X - wood[i] > d) return false;tail = tail + 2 * X;}if (tail > M)return false;}return true;}}
}

51nod 1243 排船的问题相关推荐

  1. 51nod 1243 排船的问题(二分)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1243 题意: 思路: 二分来做,每次贪心的把船安排到能安排的最左边即可. ...

  2. 程序员必学电脑计算机专业英语词汇 04 (200 单词)

    corner n.角落,角: 拐角: 困境: [商]囤积 vi.驾车转弯: 聚于角落 vt.垄断: 逼入困境 adj.位于角落的 present n. 礼物, 现在 adj. 当面的, 出席的, 现在 ...

  3. 大航海时代 收夺全攻略

    2008年10月21日 16:14:04 作者:watbal 获得积分: Z 投稿总数: 篇 大航海时代 收夺全攻略 在下2区2服西瓜菜军一名,三围36/64/65,品行端正.无不良嗜好.凡事任劳任怨 ...

  4. 回答一些朋友的收掠问题(二)(转自:老公婆)

    回答一些朋友的问题(二) Q1:如何防止稀有NPC被系统刷掉? A1:防止被刷掉的方法是要时刻保持海域人数(至少达到5人),被刷新掉的原因很简单:假设海域5人时候可以同时刷新5个怪,而5人以下只能同时 ...

  5. 51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串

    题目: 解法:排序,把值小的和索引小的放在前面,记录一下之前索引最小的就可以了. 没什么可以讲的,上代码吧: #include <bits\stdc++.h> using namespac ...

  6. js汉字排序问题--支持中英文混排,兼容各浏览器,包括CHROME

    这套排序机制同时兼容了IE和ff 可以实现所有浏览器下排序的统一哦~ 具体技术 1.使用GB编码与UNICODE的转换 2.数组关联排序 注意:GB编码 库地址   http://www.blueid ...

  7. 计蒜客/51Nod题目

    题目 换位置(1) 链接https://nanti.jisuanke.com/t/T1971 思路:两两交换次序使得数组逆序,第一个到最后位置需要n-1步,第二个到倒数第二个需要n-2步,第三个到倒数 ...

  8. 51Nod:活动安排问题之二(贪心)

    有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个室? 输入 第一行一个正整数n (n <= 10000)代表活动的个数. ...

  9. 51nod 省选联测 R2

    51nod 省选联测 R2 上场的题我到现在一道都没A,等哪天改完了再写题解吧,现在直接写第二场的. 第二场比第一场简单很多(然而这并不妨碍我不会做). A.抽卡大赛:http://www.51nod ...

最新文章

  1. android开发字体样式,Android开发中修改程序字体的样式
  2. 互联网1分钟 |1219
  3. 想要成为一名三维建模师?想要月薪10K?你了解这些吗?
  4. mysql Subqueries
  5. sql server2008如果表中已经有很多条记录,再添加一个非空字段
  6. 工作中遇到的问题 二 乱码问题
  7. 分享 45 个让你提升工作效率的前端工具
  8. linux udp 套接字编程获取源地址和目的地址(一)
  9. 云终端服务器属于计算机设备吗,云终端不等于云电脑
  10. 怎样打开t6系统服务器,t6客户端如何连接服务器
  11. 思科路由器配置NAT地址转换
  12. 计算机网络(十)CSMA详解
  13. 如何判断你是合格的高级iOS开发工程师?
  14. 新一轮的XNA学习开始
  15. C# 实现俄罗斯方块
  16. 手把手教你写一个点菜系统(附源码)
  17. ccf 3. 缺席考试的是谁?(难度3)
  18. mysql中 符号什么意思_MySQL中的 || 符号是什么意思?
  19. linux输入密码后提示密码错误,用sudo命令没有提示输入密码,而是出现sudo:3次错误密码尝试的解决...
  20. Mybatis ResultType处理返回类型

热门文章

  1. 笔记本计算机没有声音是怎么回事,笔记本电脑声音没了怎么恢复_笔记本怎么没有声音-win7之家...
  2. 怎么提高计算机用户权限,在USER用户下提升自已的权限
  3. 介绍几个好用的小软件
  4. ZOJ 2975 Kinds of Fuwas(暴力)
  5. 自动驾驶漫谈之二:无人驾驶与高精度地图
  6. 自己如何创业,参业初创公司,看领头人,看他的人品、决心和能力 .
  7. win7为什么打开桌面上的计算机很卡很慢,Win7电脑开机速度慢解决方法
  8. js 根据中文获取拼音首字母
  9. my read law / notarization / gongzheng
  10. SZA-Template