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的更多相关文章

  1. 【XDOJ】小W的塔防

    原题: 小W在成功拿到iPhone后,下载了一个塔防游戏.游戏的目标是阻止僵尸穿过地图. 地图可以看作一条长度为n的线段,这条线段被划分为n条单位长度的小线段.僵尸需要花费t秒才能通过一条小线段.在每 ...

  2. 【JZOJ6389】小w学图论

    description 小w这学期选了门图论课,他在学习点着色的知识.他现在得到了一张无向图,并希望在这张图上使用最多n种颜色给每个节点染色,使得任意一条边关联的两个节点颜色不同. 小w获得一张n个节 ...

  3. 武汉科技大学ACM :1008: 小t和小w

    Problem Description 小t最近学了C语言,他想要在女朋友小w面前展示一下自己的能力,小w喜欢如样例所示的图形, 想让小t写一个程序来输出这样的图形,小t拿到后感觉有点困难,小t不想在 ...

  4. bzoj4665小w的喜糖 dp+容斥

    4665: 小w的喜糖 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 120  Solved: 72[Submit][Status][Discuss] ...

  5. bzoj4665 小w的喜糖(dp+容斥)

    4665: 小w的喜糖 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 222  Solved: 130[Submit][Status][Discuss ...

  6. bzoj2441【中山市选】小W的问题

    题目描述 有一天,小W找了一个笛卡尔坐标系,并在上面选取了N个整点.他发现通过这些整点能够画出很多个“W”出来.具体来说,对于五个不同的点(x1, y1), (x2, y2), (x3, y3), ( ...

  7. 【BZOJ 4665】 4665: 小w的喜糖 (DP+容斥)

    4665: 小w的喜糖 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 94  Solved: 53 Description 废话不多说,反正小w要发喜 ...

  8. 【BZOJ4665】小w的喜糖 容斥+组合数

    [BZOJ4665]小w的喜糖 Description 废话不多说,反正小w要发喜糖啦!! 小w一共买了n块喜糖,发给了n个人,每个喜糖有一个种类.这时,小w突发奇想,如果这n个人相互交换手中的糖,那 ...

  9. bzoj2441 [中山市选2011]小W的问题(debug中)

    2441: [中山市选2011]小W的问题 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 487  Solved: 186[Submit][Statu ...

随机推荐

  1. spring mvc与mybatis与maven+mysql框架整合

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  2. [leetcode]48RotateImage二维数组翻转

    import java.util.Arrays; /** * You are given an n x n 2D matrix representing an image. Rotate the im ...

  3. 一次失败的java Box居中尝试

    效果如下: 通过Box的应该虽然实现了居中,但是页面相当丑!且不能插入JTextField等文本框,总的来说相当失败!!! import javax.swing.Box; import javax.s ...

  4. TurtleBot3 Waffle (tx2版华夫)(5)激活你的雷达

    重要提示:请在配网通信成功后进行操作,配网后再次开机需要重新验证通信: 重要提示:[Remote PC]代表PC端.[TurtelBot]代表树莓派端: 5.1.操作步骤 1)[Remote PC]  ...

  5. Phoneix(四)hbase导入数据同时与phoenix实现映射同步

    一.说明 先创建一个hbase表格,能够导入本地数据到hbase中,最后能够通过phoneix进行访问. 1.数据准备(10W条,样例如下),文件test.txt 0,20190520164020,1 ...

  6. 风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施

    风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施 Python 语言可能发生的命令执行漏洞 内置危险函数 eval和exec函数 eval eval是一个python内置函数, ...

  7. IDEA:配置Tomcat并运行应用

    1.File->ProjectStructre->Artifacts 如下界面 3.下一步:如图所示 4.选择相应的Module就行 5.第一次运行程序时最好选择运行的配置,否则可能运行的 ...

  8. DM TDD使用小结

    1.搭建流程 1.1 ss初始化及启动 --->1节点: cd /dm/bin ./dmdssinit path=/dm/data inst=ss1 port=35300 REGION_SIZE ...

  9. RedHat6.1通过配置yum server安装软件包

    1.获取镜像RHEL_6.1\ x86_64\ Disc\ 1 2.配置yum server #cd /etc/yum.repos.d #tar -cvf 20141114bak.tar *.repo ...

  10. keycloak集成微信登陆~解决国内微信集成的问题

    之前看了国内写的微信集成keycloak的文章,然后拿来就用了,但我的是jboss部署的keycloak,然后使用他的包之后,会出现类无法找到的问题,之后找了很多资料,多数都是国外的,在今天终于找到了 ...