nitoj_244_很有意思的贪心
来源:互联网 发布:淘宝客服薪资待遇 编辑:程序博客网 时间:2024/06/05 06:49
SYS招新啦!
ES天天在SYS没事干,忽然想组织一波招新以扩大SYS的队伍。
然后有一堆萌新报名了,所有萌新的关系都特别好,因为同性。
因为萌新实在是太多了,ES想要做一个刷选,来刷掉一些人。ES使用超自然力,造了一条很长很长的直线跑道,萌新被带到了跑道上面,跑道上有些位置存在宝石,坏坏的ES说:“如果你们能按规定的时间拿到宝石并到我指定的点,就算你们晋级了!”
每个萌新,宝石以及ES指定的位置都在同一直线上,位置可以类比为数轴上的点,一个人只能拿一个宝石,每个人移动一个位置的时间为1。题目保证:没有两个人在同一位置,没有两个宝石在同一位置。由于这些萌新关系都特别好,他们的目标是所有人晋级,请问他们能达到目的么?
Input
输入包含多组数据。
对于每组数据,第一行输入4个整数N,M,P,T(1<=N<=M<=106, 1<=P<=109, 0<=T<=232-1),分别代表有N个萌新,M个宝石,ES指定的P位置,ES要求的时间T;
第二行输入N个整数,第 i 个整数 a[ i ]代表第 i 个萌新的位置。(a[i - 1] < a[ i ], i >= 2)
第三行输入M个整数,第 i 个整数 b[ i ]代表第 i 个宝石的位置。(b[i - 1] < b[ i ], i >= 2)
1<=a[i], b[i]<=109.
Output
对于每组数据,输出 “Yes” 代表所有人都能晋级,否则输出”No”.
Sample Input
1 1 10 7
11
7
Sample Output
Yes
Source
2017新生训练赛第一场
ans:
看宝石,最优拿的策略是,拿身边最近的,然后就是看是不是所有人都能拿,数据好像是有点小问题
#include<bits/stdc++.h>using namespace std;#define ll long longconst ll N=(ll)1e6+10;ll a[N],b[N];int main(){ ll n,p,t,m,i,j; while(cin>>n>>m>>p>>t) { for(i=0;i<n;i++) scanf("%lld",a+i); for(i=0;i<m;i++) scanf("%lld",b+i); ll f=0,now=0; for(i=0;i<m;i++) { if(abs(a[now]-b[i])+abs(b[i]-p)<=t&&now<n) now++; if(now==n) { f=1; break; } } if(f) puts("Yes"); else puts("No"); } return 0;}
- nitoj_244_很有意思的贪心
- 很有意思的贺卡
- 很有意思的转动
- 很有意思的JS
- 很有意思的博弈论
- 很有意思的网站
- 很有意思的职业生涯规划
- 很有意思的代码
- 很有意思的博弈论
- 一个很有意思的网站
- 很有意思的一个flash
- 一篇很有意思的文章
- 一件很有意思的事情
- 一道很有意思的题目
- 一个很有意思的Bug-
- 一个很有意思的测试
- 很有意思的血型分析
- 一段很有意思的代码
- 树的创建及层序先中后序遍历
- 服务器(Linux server/Win server)常用端口介绍
- [apue]UNIX高级环境编程ver3勘误表[持续更新]
- 操作系统处理机调度算法模拟实现
- jqgrid is not a function
- nitoj_244_很有意思的贪心
- 正则表达式
- Unity加载资源的3种方法
- C++中const、volatile、mutable的用法
- 旋转变换
- 最实用windows 下python+numpy安装
- java中的JFrame类
- 创建实现SSH服务的Docker容器
- 集合(一)————Collection集合