传送门

Luogu团队题

解题思路

数据范围不小啊,离散也不行,DP不了,考虑贪心+递推。

我们递推出小鸟可以到达的高度区间。

我们发现,小鸟最好的情况就是在当前基础上,从最下方一直往下飞,或者从最上方一直往上飞。

但是这样在其他情况下不一定可行,那么我们就让它到达尽可能靠近边界的位置,也就是使得可达区间最大化。

如果在飞行过程中可达区间变为空集,那就输出无解,否则就让小鸟飞到终点的越下方越好,因为越往上花费越大。

答案的计算用到了全等三角形的相关知识,可以自己完成。

细节注意事项

  • 咕咕咕。

参考代码

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cctype>
#include <cmath>
#include <ctime>
#define rg register
using namespace std;
template < class T > inline void read(T& s) {
s = 0; int f = 0; char c = getchar();
while (!isdigit(c)) f |= c == '-', c = getchar();
while (isdigit(c)) s = s * 10 + c - 48, c = getchar();
s = f ? -s : s;
} const int _ = 500002; int n, X, x[_], a[_], b[_]; int main() {
#ifndef ONLINE_JUDGE
freopen("in.in", "r", stdin);
freopen("out.out", "w", stdout);
#endif
read(n), read(X);
for (rg int i = 1; i <= n; ++i)
read(x[i]), read(a[i]), read(b[i]);
int tp = 0, bt = 0;
for (rg int i = 1; i <= n; ++i) {
int dis = x[i] - x[i - 1];
if (tp + dis >= b[i])
tp = (tp - dis - b[i]) & 1 ? b[i] - 1 : b[i] - 2;
else tp += dis;
if (bt - dis <= a[i])
bt = (a[i] - bt + dis) & 1 ? a[i] + 1 : a[i] + 2;
else bt -= dis;
if (tp < bt) { puts("NIE"); return 0; }
}
printf("%d\n", (bt + x[n]) / 2);
return 0;
}

完结撒花 \(qwq\)

最新文章

  1. 【Swift学习】Swift编程之旅---集合类型之字典(八)
  2. Java基本语法笔记
  3. 自动备份mysql
  4. centos 安装 mongdb
  5. C#的面向对象特性之封装
  6. java的Random
  7. 02java语法基础问题总结
  8. 使用 DLL 的优点
  9. bzoj2757
  10. Visual studio 2013 bug:visual studio no editoroptiondefinition export found for the given option nam
  11. 创业路(VC Pipeline),创业需要融资的阅读
  12. PAT (Advanced Level) 1103. Integer Factorization (30)
  13. sql数据库恢复 文件丢失误删除 误格式化置疑报错修复 数据库置疑修复总结/SQL SERVER 2000/2005/2008/2008R2
  14. GO开发[二]:golang语言基础
  15. Unity3d之树木创建的参数设定
  16. [HDU5963]朋友
  17. 《高性能SQL调优精要与案例解析》——10.4_SQL语句改写部分文档
  18. uwsgi部署web,error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
  19. Iterator、Iteratable与ListIterator
  20. asp.net mvc +easyui 实现权限管理(二)

热门文章

  1. JDBC 获取自动生成的主键
  2. python2.7环境下升级pip3,及出错解决办法
  3. Python中的代码块及其缓存机制、深浅copy
  4. java 第三次课后作业
  5. 后端——框架——持久层框架——Mybatis——补充——pageHelper(分页)插件
  6. 七、SXSSFWorkbook生成大excle,避免内存溢出
  7. 题解【[Ynoi2012]NOIP2015洋溢着希望】
  8. tornado框架的简单实用
  9. 明明的随机数(0)&lt;P2006_1&gt;
  10. mysql 连接数据库时时区报错