hdu5714 百度之星复赛C
来源:互联网 发布:网络暴力 人肉 编辑:程序博客网 时间:2024/05/18 19:43
恩。。大概就是如果 y - z <= x +z , 那么 对于这一艘船来说,在[y - z , x +z ]这个区域都可以完整的观察到它
转换成 y - z 为左端点,x + z 为右端点,的n 条线段
把向右走的船看成固定不动的, 在这些船右边, 向左走的船在同一时刻最多有多少条
now记录当前端点处,垂直河岸的线能交叉几条(向左,向右)线段,ans[i]记录当前端点右侧,垂直河岸的线最多能交叉几条(向左)线段
sort的时候,先按位置从小到大排,再按左端点右端点排,最后按向左或向右排都无所谓啦
#include <iostream>#include<stdio.h>#include<cctype>#include<cstdlib>#include<math.h>#include<algorithm>#include<cstring>#include<string>#include<vector>#include<queue>#include<map>#include<set>#include<stack>using namespace std;#define mod 1000000007#define FOR(i,j,k) for(int i=j;i<=k;i++)const int inf=0x3f3f3f3f;const int maxn = 20010;struct node{ int x, val , op; friend bool operator <(const node &a, const node &b) { if (a.x != b.x) return a.x < b.x; if (a. val != b.val) return a.val > b.val; return a.op < b.op; } }nd[maxn];int ans[maxn];int main(){ int T; scanf("%d" , &T); FOR(z, 1, T) { int n; scanf("%d" ,&n); int tot = 0; FOR(i, 1, n) { int x,y,z, op; scanf("%d%d%d%d" , & x, &y, &z, & op); if(y - z <= x +z){ tot++; nd[tot].x= y-z, nd[tot].val = 1, nd[tot].op = op; tot++; nd[tot].x= x+z, nd[tot].val = -1, nd[tot].op = op; } } sort(nd +1, nd+1 +tot); memset(ans , 0,sizeof(ans)); int now =0; for(int i = tot; i>= 1;i--) { if(nd[i].op == -1 && nd[i].val == -1) now ++; ans[i] = max(ans[i+1] , now); if(nd[i].op == -1 && nd[i].val == 1) now--; } now = 0; int sum = 0; FOR(i, 1, tot) { if(nd[i]. op == 1) { if(nd[i].val == 1 ) now ++; sum = max(sum, now + ans[i]); if(nd[i].val == -1) now --; } } printf("Case #%d:\n%d\n",z,sum); }}
0 0
- hdu5714 百度之星复赛C
- [2017百度之星程序设计大赛- 复赛] C
- [百度之星复赛T5]
- 百度之星复赛题解
- 2017百度之星 复赛
- 2014百度之星复赛解题报告复赛:Race
- 2007年百度之星复赛试题
- 【百度之星复赛】最强密码
- 2015百度之星复赛(hdu5258 - 5262)
- 百度之星复赛Valley Numer II
- 【HDU6146】【2017百度之星复赛-C】Pokémon GO(动态规划)(dp)
- hdu5714
- 2006百度之星程序设计比赛复赛试题
- 百度之星2010 复赛2 购物搜索调研
- 百度之星2010复赛第二场第三题《蜗牛》
- 2014百度之星复赛解题报告:The Patterns
- 2014百度之星复赛解题报告: FindNumbers
- 百度之星 2015 复赛 1001 (数长方形)
- 为什么在主线程的Looper.looper死循环不会卡死
- PAT 1016 Phone Bills(模拟)
- servlet设置编码的问题
- Servlet开发(一)如何在Myeclipse 中使用tomcat(配置tomcat,发布web项目)
- 引用变量与对象的问题
- hdu5714 百度之星复赛C
- 大神程序员的思想
- LaTeX技巧374:如何在指定列宽的表格里实现文字居中
- poj2195(二分图最大匹配,最小费用流)
- 第12章Swing编程
- 编译原理——词法分析器
- Gradle依赖的统一管理
- java栈的简单实现
- Java IO