题目链接 The Meeting Place Cannot Be Changed 二分答案即可. check的时候先算出每个点可到达的范围的区间,然后求并集.判断一下是否满足l <= r就好了. eps我设了1e-7. #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for(int i(a); i <= (b); ++i) + ; ; double mi, ma; struct node{ dou…
题意:题意:给出n个人的在x轴的位置和最大速度,求n个人相遇的最短时间. 析:二分时间,然后求并集,注意精度,不然会超时. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream>…
The Meeting Place Cannot Be Changed Problem Description The main road in Bytecity is a straight line from south to north. Conveniently, there are coordinates measured in meters from the southernmost building in north direction. At some points on the…
                                                               B. The Meeting Place Cannot Be Changed The main road in Bytecity is a straight line from south to north. Conveniently, there are coordinates measured in meters from the southernmost build…
time limit per test 5 seconds memory limit per test 256 megabytes input standard input output standard output The main road in Bytecity is a straight line from south to north. Conveniently, there are coordinates measured in meters from the southernmo…
题意:在一维坐标轴上,给定n个点的坐标以及他们的最大移动速度,问他们能聚到某一点处的最短时间. 分析: 1.二分枚举最短时间即可. 2.通过检查当前时间下,各点的最大移动范围之间是否有交集,不断缩小搜索范围. 3.相当于二分枚举找右临界线,符合要求的点都在右边. 4.通过给二分一个查找次数的上界,eg:k=200,而不是dcmp(l, r)<=0,后者会tle. 5.检查是否有交集,就是以第一个点的最大移动区间为标准,不断与其他区间取交集并更新再继续比较. #include<cstdio>…
Link 题意:给出$n$个坐标$x_i$,$n$个速度$v_i$问使他们相遇的最短时间是多少. 思路:首先可肯定最终相遇位置必定在区间$[0,max(x_i)]$中,二分最终位置,判断左右部分各自所花时间,缩小范围即可. /** @Date : 2017-05-09 22:07:43 * @FileName: 782B.cpp * @Platform: Windows * @Author : Lweleth (SoundEarlf@gmail.com) * @Link : https://gi…
The Meeting Place Cannot Be Changed 我发现我最近越来越zz了,md 连调程序都不会了,首先要有想法,之后输出如果和期望的不一样就从输入开始一步一步地调啊,tmd现在输出不一样就知道在那等着,有毛用啊. [题目链接]The Meeting Place Cannot Be Changed [题目类型]二分答案 &题解: 二分时间,判断函数比较难想,要先假设所有人都向左走,找到坐标最大的那个,之后在假设所有人都向右走,找到坐标最小的那个,如果最大的<=最小的就行…
链接:http://codeforces.com/problemset/problem/782/B 题意: N个点,需要找到一个点使得每个点到这个点耗时最小,每个点都同时开始,且都拥有自己的速度 题解: 对于一个确定的位置,如果耗时最久的点在右边,则这个位置可以往右靠,否则就往左靠,这样,一个二分的解法就形成了 import java.lang.Math; import java.util.Scanner; public class CodeForces_403_B { private stat…
地址:http://codeforces.com/contest/782/problem/B 题目: B. The Meeting Place Cannot Be Changed time limit per test 5 seconds memory limit per test 256 megabytes input standard input output standard output The main road in Bytecity is a straight line from…
780B - The Meeting Place Cannot Be Changed 思路: 二分答案: 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define eps 1e-7 #define INF 1e18 #define maxn 60005 int n; double xi[maxn]…
B. The Meeting Place Cannot Be Changed time limit per test 5 seconds memory limit per test 256 megabytes input standard input output standard output The main road in Bytecity is a straight line from south to north. Conveniently, there are coordinates…
https://vjudge.net/problem/CodeForces-782B B. The Meeting Place Cannot Be Changed time limit per test 5 seconds memory limit per test 256 megabytes input standard input output standard output The main road in Bytecity is a straight line from south to…
B. The Meeting Place Cannot Be Changed time limit per test 5 seconds memory limit per test 256 megabytes input standard input output standard output The main road in Bytecity is a straight line from south to north. Conveniently, there are coordinates…
[题目链接]:http://codeforces.com/contest/782/problem/B [题意] 每个人都有一个速度,只能往上走或往下走; 然后让你找一个地方,所有人都能够在t时间内到达; 让t最小. [题解] 很明显的二分了; 二分时间t; 对于某个时间t,这个人都有一个能够到达的唯一区间 [x[i]-v*t..x[i]+v*t] 如果所有人的区间都有交集. 那么就能在那些交集里面随便选一个点了; 区间的交集可以用 最大的左端点小于等于最小的右端点这个依据来判断是否存在 想让答案…
http://codeforces.com/contest/782/problem/B 题意:有n个人,每个人有一个位置和速度,现在要让这n个人都走到同一个位置,问最少需要的时间是多少. 思路:看上去很像二分搜索啊!枚举距离,判断是否有更少的时间,然后发现时间不随着距离单调增减,想起前两天被三分虐了一道题,那就是三分吧. 三分枚举距离,然后判断是否有更少的时间就可以了.比赛时候用了max函数还有精度开太大,超时了,索性直接循环100次. #include <bits/stdc++.h> usi…
三分显然,要注意EPS必须设成1e-6,设得再小一点都会TLE……坑炸了 #include<cstdio> #include<algorithm> #include<cmath> using namespace std; #define EPS 0.000001 int n,x[60010],v[60010]; double calc(double p) { double res=0; for(int i=1;i<=n;++i) res=max(res,fabs(…
题目链接:http://codeforces.com/problemset/problem/420/B 题目意思:给出一段连续的消息记录:记录着哪些人上线或者下线.问通过给出的序列,找出可能为leader的人的编号.符合leader的条件是:至少有一个人上线的时候,绝对要有该人(leader)的存在. 整个五一都把时间耗在这题里了......首先太感谢jhf大神,竟然可以这么有耐心的跟我这个陌生人讨论题目.但是,限于本人理解能力有点问题,在参考他写的代码里,还是有一些部分不太理解. 以下结合我的…
一道实现很蛋疼的题.必须静下理清思路,整理出各种情况.不然就会痛苦地陷入一大堆if..else里不能自拔. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<iostream> #include<s…
<题目链接> 题目大意: 有$ n(n<=1e5)$个城市和一个首都(0号城市),现在每个城市有一个人,总共有$ m (m<=1e5)$次航班,每个航班要么从首都起飞,要么飞到首都去.每个飞机当天飞当天到.且坐飞机这一天什么也不能干,只能等飞机.每个飞机有一个花费和起飞时间.现在要把所有人集中到首都$ k(k<=1e6) $天,然后让他们各自回家.求最小花费,如果不可能实现k天或者不能回家了.或者去不了首都等等都输出-1. 解题分析: 首先判断是否有至少长度为k的区间能够保证…
题意:几个人要去一个城市k天,现给出各航班的日期和花费,让这n个人能相会k天的最小花费? 用数组arr1[i]记录在第i天人到齐的最小花费.arr2[i]记录第i天之后才有人开始走的最小花费.然后取arr1[i]+arr2[i+k+1]的最小值. //#pragma comment(linker,"/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #include<stri…
题意: The main road in Bytecity is a straight line from south to north. Conveniently, there are coordinates measured in meters from the southernmost building in north direction. At some points on the road there are n friends, and i-th of them is standi…
题意 从城市1-n来的评审团到城市0商讨国家大事,离开和抵达的那一天不能讨论,飞机均当天抵达,给出所有飞机起飞抵达代价情况,问能否使所有评审员聚齐连续k天并返回,并求最小代价 思路 从前向后扫一遍,求每天的出发最小代价L[i],从后向前扫,求每天最小离开代价R[i] 从前向后扫一遍,每天的最小代价为L[i]+R[i+k+1] 将每天的默认大小设为1e12,因为最大代价不超过1e11,可以据此确定答案是否合法 代码 #include<bits/stdc++.h> using namespace…
题意:给你一张有向图,某人会任意选择起点然后走无穷多步,问是否存在一个点(要求输出)不管他起点在何处怎么走都必经?n<=100005,m<=500005. 标程: #include<bits/stdc++.h> using namespace std; ; int cnt,vis[N],n,m,u,v,a[N],tried[N],head[N]; ]; void add(int x,int y) {num[++cnt].to=y;num[cnt].next=head[x];head…
看来快掉到灰名的蒟蒻涨rating也快... A题模拟一下就好(一开始还sb,, #include<bits/stdc++.h> #define LL long long using namespace std; ]; ],n; int main() { scanf("%d",&n); ; i<=*n; i++) { int x; scanf("%d",&x); ; else tot--; ans=max(ans,tot); } c…
题目链接: http://codeforces.com/contest/660/problem/C 题意: 将最多k个0变成1,使得连续的1的个数最大 题解: 二分连续的1的个数x.用前缀和判断区间[i,i+x-1]里面0的个数是否小于等于k. 代码: #include<iostream> #include<cstdio> #include<vector> #include<cstring> using namespace std; ; int n,k; i…
题目链接:http://codeforces.com/problemset/problem/675/D 给你一个如题的二叉树,让你求出每个节点的父节点是多少. 用set来存储每个数,遍历到a[i]的时候查找比a[i]大的数的位置,然后插入,而父亲就是刚好比a[i]小的数或刚好大的数. 然后讨论是哪一个数. 比如给你3 1 2 ,如图 1的父亲是3 ,2的父亲是1. 那我其实只要找左边或右边出现最晚的数就行了,用pair的first表示a[i],second表示出现的顺序i. #include <…
题目链接:http://codeforces.com/contest/672/problem/D 有n个人,k个操作,每个人有a[i]个物品,每次操作把最富的人那里拿一个物品给最穷的人,问你最后贫富差距有多少. 先sort一下,最富的人很明显不会低于sum(a1 ~ an) / n , 所以二分一下最富人的最小值 看是否满足操作k. 最穷的人不会高于sum(a1 ~ an) / n + 1 ,所以二分一下最穷人的最大值 看是否满足操作k. (注意一点的是二分以后最穷的人的最大值和最富的人的最小值…
B. More Cowbell Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/604/problem/B Description Kevin Sun wants to move his precious collection of n cowbells from Naperthrill to Exeter, where there is actually grass instead of co…
B. Nearest Fraction Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/281/problem/B Description You are given three positive integers x, y, n. Your task is to find the nearest fraction to fraction  whose denominator is no mor…