链接:https://ac.nowcoder.com/acm/contest/917/A

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld

题目描述

题目背景

两个人之间只能有一个活着 ,这必然是我和你的战争——Harry Potter

题目描述

水宝宝在看完《斑羚飞渡》这本书后,突发奇想,想到了一个有趣的问题

现在峡谷的这边有n只斑羚,每只斑羚跳跃的最远距离为x[i],斑羚在别人的背上起跳的最远距离为y[i],峡谷的两岸的距离为s,问在最好情况下,有几只斑羚可以用别人的背当跳板跳到对岸,但由于斑羚的先天原因(主要是太肥),只能把别人当跳板一次
注:本系列题不按难度排序哦

输入描述:

输入格式:

第一行n,s 接下来n行,每行2个整数代表x[i],y[i]

输出描述:

输出格式:

一行一个整数,表示有几只斑羚可以用别人的背当跳板跳到对岸
示例1

输入

复制

5 10
6 8
2 100
7 3
1 10
2 5

输出

复制

2

说明

第一组是第三只斑羚跳6的距离,第一只斑羚跳6的距离后从第三只的背上起跳,再跳8的距离后到达对岸

第二组是第五只跳2的距离,第二只跳2的距离后从第五只的背上起跳,跳100的距离到达对岸(假设对岸无限长,不可能跳出对岸)

备注:

对于100%的数据,n<=1000000;

对于所有数据,s<=1000000000; x[i],y[i]<=s; 不保证x[i]<y[i]

思路:把羚羊分为三批,第一批是自己就能跳过去的,第二批是需要别人帮助能跳过去的,第三批是即使别人帮助了也跳不过去的(只能作为踏板或者被抛弃的,枯了)不用说第一批了,跳过去就完事了。第二批,需要第三批或者第二批自己内部来帮助,然后就排个序吧。这时候考虑到第二批需要第三批羊帮助的底线是啥,起码第三批羊跳的范围满足x[j] >= s-y[i]吧,这样就能踩着他跳过去啦比如说2 13 1 12 4 3 第一只就能踩着满足x[j] >= 13-12=1 的羊 跳过去。这就是第二种情况:对当踏板的羊和要跳过去的羊分别排个序,从小到大取过去就行。第三种情况也简单,第三批用不完的(工具人实锤了)直接被淘汰了。第二批羊没了当踏板的羊,那就老老实实内部互相“帮助”吧,把剩下的除以二就行。代码:
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 2000000000
#define eps 1e-8
#define pi  3.141592653589793
const LL mod = 1e9+7;
vector<pair<int,int> >v1,v2;
int main()
{int n,s;int sum1 = 0,sum2 = 0,sum3 = 0;//sum1 自己本来就过得去的,sum2需要跟过不去的配合的,sum3两只能过得去的相互配合scanf("%d %d",&n,&s);for(int i = 0 ; i < n ; i++){int x,y;scanf("%d%d",&x,&y);if(x>=s)sum1++;else{pair<int,int>pii = make_pair(x,y);if(x+y >= s){v1.push_back(pii);}else{v2.push_back(pii);}}}sort(v1.begin(),v1.end());sort(v2.begin(),v2.end());if(!v2.empty()){for(int i = 0 ; i < v1.size() ; i++){int z = s - (v1[i].second);for(vector<pair<int,int> >::iterator it = v2.begin();it!=v2.end();it++){int x_j = it->first;if(x_j >= z){sum2++;v2.erase(it);break;}}if(v2.empty()){break;}}}int last_v1 = v1.size() - sum2;if(last_v1 <= 0){return printf("%d\n",sum1+sum2),0;}//有机会跳过去的羊没剩余了else{sum3 = last_v1/2;return printf("%d\n",sum1+sum2+sum3),0;}
}

 

转载于:https://www.cnblogs.com/Esquecer/p/11025757.html

牛客小白月赛15A 斑羚飞渡相关推荐

  1. 牛客网 — [牛客小白月赛15]斑羚飞渡(贪心)

    题目链接:https://ac.nowcoder.com/acm/contest/917/A 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 6 ...

  2. 牛客小白月赛16 小石的签到题(博弈)

    牛客小白月赛16 小石的签到题 链接:https://ac.nowcoder.com/acm/contest/949/A来源:牛客网 题目描述 输入描述: 共一行,输入一个数 nnn . 输出描述: ...

  3. F.孤独(牛客小白月赛39)

    F.孤独(牛客小白月赛39) 题意: 给定一棵树,寻找一个路径,将断掉所有与这个路径上的点相连的边,使得剩下的最大连通块的大小最小 题解: 这题有点印象,感觉做过,至少这个方法肯定遇到过 设dp[u] ...

  4. 牛客小白月赛58 B(暴力)C(思维)D(dp滚动数组优化)

    牛客小白月赛58 感觉没什么意思,这场月赛出题人有点问题. B 题意:给定一定的数据填充顺序和每一个填充层的名称,只有填充满了上一层才可以填充下一层. 但是每一层又属于某一个大层,一个大层中包含了若干 ...

  5. 牛客小白月赛65个人题解A-E

    1. 牛客小白月赛65 A. 牛牛去购物 题意:给定n元,购买价格为a元的篮球和价格为b的篮球,数量不定,要使得花掉的钱最多,也就是剩余的钱数最少,求这个值 (1 <= n, a, b < ...

  6. 牛客小白月赛24 J.建设道路

    牛客小白月赛24 J.建设道路 题目链接 题目描述 牛牛国有 nnn 个城市,编号为 1-n,第 iii 个城市有一个价值 aia_iai​ ,牛国的国王牛阔落特别喜欢在牛牛国旅游,并且他不想每次旅游 ...

  7. 牛客小白月赛4 D.郊区春游

    牛客小白月赛4 D.郊区春游 题目链接 题目描述 今天春天铁子的班上组织了一场春游,在铁子的城市里有 nnn 个郊区和 mmm 条无向道路,第 iii 条道路连接郊区 AiA_iAi​ 和 BiB_i ...

  8. 牛客小白月赛25 C.白魔法师

    牛客小白月赛25 C.白魔法师 题目链接 题目描述 你是一个白魔法师. 现在你拿到了一棵树,树上有 个点,每个点被染成了黑色或白色. 你可以释放一次魔法,将某个点染成白色.(该点不一定是黑色点,也可以 ...

  9. 牛客小白月赛60(A~C)题解

    原题地址:牛客小白月赛60_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 题目A:小竹与妈妈 题意:输出(x-b)/a即可,没什么好说 代码: #include< ...

最新文章

  1. XHTML+CSS3(Chapter 1)
  2. json_decode的结果是null
  3. LCS2005客户端配置详解:LCS2005系列之二
  4. ZooKeeper安装配置
  5. 基于Spring Boot的“课程设计”的设计与实现
  6. httpd开启status模块_开启Apache Server Status
  7. d3.js 入门指南 - 仪表盘
  8. Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环
  9. 一种简单好用的Vue表单验证
  10. Spark代码生成技术之现象CodeGenerator
  11. linux下NFS、FTP使用讲解
  12. vi 快捷方式 手册
  13. 电容麦克风测试软件,章和电气AudioExpress麦克风测试解决方案———您的音频测试专家...
  14. 外卖类应用的竞争与发展分析
  15. 每日技巧分享:怎么裁剪音频,快学习起来
  16. 转:稻盛和夫:在软弱的领导人手下工作,是可悲的
  17. web前端期末大作业 html+css+javascript网页设计实例 企业网站制作 (绿色植物网站设计)
  18. 服务机器人常用的定位导航技术及优缺点分析
  19. 用html实现满屋花的网页
  20. 树莓派4B与Android之缘——树莓派下LineageOS(Android 9)系统开机联网与远程控制

热门文章

  1. mybatis返回数据类型为map,值为null的key没返回
  2. 基于Android的聊天软件的设计与实现-一个聊天软件开发起来没那么难不是?
  3. fvm切换多个Flutter版本
  4. 【App开发】有语音播报功能的摇号软件:演示视频、开发历程
  5. linux中.log文件是什么,linux 下log文件夹简介
  6. 什么是泛型?为什么需要泛型?杠精泛型
  7. Elasticsearch 集群部署
  8. FAT文件系统原理(转载)
  9. 虚拟环境工具pyenv的安装,配置和使用,完美控制python版本
  10. 适合初学者的强化学习教程(1): python使用gym实践和注意事项