小w、小j和小z
n个月没更了,现在学的东西很难,掌握不好,不敢更!
这个题目既不超范围又足够难想,反正我没想出来,很好的题目!
我发现noi.ac上的题目很不错!!!
-------------------------------------------------------------------------------------------------------------------
小z告诉小w了这样一道送分题。
在数轴上有n个小人,第ii个人现在在pi位置,速度是vi(速度的正负代表不同的方向)。如果某一时刻两个人在同一位置,那么就会发生碰撞。
如果现在小j可以使用能力,使得其中kk个人凭空消失,那么最多会有多长时间内,没有任何两个人会碰撞呢?
输入格式
一行两个整数 n和k。
接下来 n行,每行两个整数pi,vi,表示每个人的初始位置和速度。
输出格式
如果时间是无限长,输出Forever, 否则输出一个实数表示答案,答案误差小于10^−3即可。
样例一
input
4 1
1 1
3 -1
5 2
7 -2
output
1.00
样例二
input
4 2
1 1
3 -1
5 2
7 -2
output
Forever
数据范围和约定
本题采用捆绑测试,对于全部数据,1≤k≤n≤10^5;|pi|,|vi|≤10^9.
_________________________________________________________________________________________
碰撞,可以选择让他消失。肯定先碰撞就让他消失。同时维护那么多点的位置?肯定是按照时间进行二分。消失如何处理?那就让他不消失,位置交换以后就是逆序,只要求最长上升子序列就好了!!
说起来简单,想的时候真的想不到!!!
所以正解就是二分答案+最长上升子序列。
注意刚开始的预处理!!!
1 #include<bits/stdc++.h>
2 using namespace std;
3 const int maxn=100005;
4 int n,k;
5 struct node
6 {
7 int v,p;
8 }pt[maxn];
9 bool cmp(node a,node b)
10 {
11 if(a.p<b.p)return 1;
12 if(a.p==b.p && a.v>b.v)return 1;
13 return 0;
14 }
15 int f[maxn];
16 long double pos[maxn],low[maxn];
17 bool pd(long double x)
18 {
19 for(int i=1;i<=n;++i)pos[i]=pt[i].p+pt[i].v*x,low[i]=3e9;
20 int ans=1;
21 low[1]=pos[1];
22 for(int i=2;i<=n;++i)
23 {
24 if(low[ans]<pos[i])low[++ans]=pos[i];
25 else low[upper_bound(low+1,low+ans+1,pos[i])-low]=pos[i];
26 }
27 return n-ans<=k;
28 }
29 int main()
30 {
31 scanf("%d%d",&n,&k);
32 for(int i=1;i<=n;++i)scanf("%d%d",&pt[i].p,&pt[i].v);
33 sort(pt+1,pt+n+1,cmp);
34 int js=1;
35 for(int i=2;i<=n;++i)
36 {
37 if(pt[i].p==pt[js].p && pt[i].v==pt[js].v)k--;
38 else pt[++js]=pt[i];
39 }
40 n=js;
41 long double l=0,r=3e9,ans;
42 while(r-l>0.0000001)
43 {
44 long double mid=(l+r)/2;
45 if(pd(mid))l=ans=mid;
46 else r=mid;
47 }
48 if(ans>2.9e9)printf("Forever");
49 else printf("%.6lf",(double)ans);
50 return 0;
51 }
小w、小j和小z的更多相关文章
- 【XDOJ】小W的塔防
原题: 小W在成功拿到iPhone后,下载了一个塔防游戏.游戏的目标是阻止僵尸穿过地图. 地图可以看作一条长度为n的线段,这条线段被划分为n条单位长度的小线段.僵尸需要花费t秒才能通过一条小线段.在每 ...
- 【JZOJ6389】小w学图论
description 小w这学期选了门图论课,他在学习点着色的知识.他现在得到了一张无向图,并希望在这张图上使用最多n种颜色给每个节点染色,使得任意一条边关联的两个节点颜色不同. 小w获得一张n个节 ...
- 武汉科技大学ACM :1008: 小t和小w
Problem Description 小t最近学了C语言,他想要在女朋友小w面前展示一下自己的能力,小w喜欢如样例所示的图形, 想让小t写一个程序来输出这样的图形,小t拿到后感觉有点困难,小t不想在 ...
- bzoj4665小w的喜糖 dp+容斥
4665: 小w的喜糖 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 120 Solved: 72[Submit][Status][Discuss] ...
- bzoj4665 小w的喜糖(dp+容斥)
4665: 小w的喜糖 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 222 Solved: 130[Submit][Status][Discuss ...
- bzoj2441【中山市选】小W的问题
题目描述 有一天,小W找了一个笛卡尔坐标系,并在上面选取了N个整点.他发现通过这些整点能够画出很多个“W”出来.具体来说,对于五个不同的点(x1, y1), (x2, y2), (x3, y3), ( ...
- 【BZOJ 4665】 4665: 小w的喜糖 (DP+容斥)
4665: 小w的喜糖 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 94 Solved: 53 Description 废话不多说,反正小w要发喜 ...
- 【BZOJ4665】小w的喜糖 容斥+组合数
[BZOJ4665]小w的喜糖 Description 废话不多说,反正小w要发喜糖啦!! 小w一共买了n块喜糖,发给了n个人,每个喜糖有一个种类.这时,小w突发奇想,如果这n个人相互交换手中的糖,那 ...
- bzoj2441 [中山市选2011]小W的问题(debug中)
2441: [中山市选2011]小W的问题 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 487 Solved: 186[Submit][Statu ...
随机推荐
- Lombok注解-@SneakyThrows
@SneakyThrows注解的用途得从java的异常设计体系说起. java中我们常见的2类异常. 1.普通Exception类,也就是我们常说的受检异常或者Checked Exception. 2 ...
- java代理(静态代理和jdk动态代理以及cglib代理)
版权声明:本文为Fighter168原创文章,未经允许不得转载. 目录(?)[+] 说到代理,脑袋中浮现一大堆代理相关的名词,代理模式,静态代理,jdk代理,cglib代理等等. 记忆特别深刻 ...
- 96. Unique Binary Search Trees1和2
/* 这道题的关键是:动态表尽量的选取,知道二叉搜索树中左子树的点都比根节点小,右子树的点都比根节点大 所以当i为根节点,左子树有i-1个点,右子树有n-i个点,左右子树就可以开始递归构建,过程和一开 ...
- JavaDailyReports10_20
1 package varycode; 2 class Grandparent 3 { 4 public Grandparent() 5 { 6 7 System.out.println(" ...
- JavaDailyReports10_09
***************************** 1.2.2 布局管理器 BorderLayout 把容器的布局分为东西南北中五个部位,默认是中间,平铺占满! 1 package awt; ...
- VNC使用及其常见问题解决方法
博主之前在博文(https://www.cnblogs.com/kangbazi666/p/14153604.html)中已经介绍了多人VNC的配置方法,下面将简单介绍其使用方法及常见问题的解决方法. ...
- js相关语法知识
alert(); 页面弹窗 <input plactholder="请输入密码"/>(隐藏字体效果)js对数据类型不敏感,与Java相似1.js变量定义符:var2.j ...
- oracle range分区表已经有了MAXVALUE 分区,如何添加分区?要不能删除MAXVALUE分区里的数据,不影响在线应用。
来做个实验说明该问题:1.创建个分区表SQL> create table p_range_test 2 (id number,name varchar2(100)) 3 partition by ...
- .NET 云原生架构师训练营(模块二 基础巩固 RabbitMQ Masstransit 详解)--学习笔记
2.6.7 RabbitMQ -- Masstransit 详解 Consumer 消费者 Producer 生产者 Request-Response 请求-响应 Consumer 消费者 在 Mas ...
- (二)数据源处理1-configparser读取.ini配置文件
import osimport configparsercurrent_path =os.path.dirname(__file__)#获取config当前文件路径config_file_path = ...