LA 4253 Archery 二分】的更多相关文章

题意: x轴上方有若干条平行于x轴的线段 在x轴的区间\([0, \, W]\)内找一点发射一条射线,使其穿过所有线段. 问是否存在这样的点. 分析: 我们二分射线端点的坐标,将线段按纵坐标从小到大排序,维护一个可以穿过所有线段的极角区间. 如果该区间为空说明这个点不符合要求,我们可以根据扫描到的最后一条线段来调整出射点的位置. #include <cstdio> #include <cstring> #include <algorithm> #include <…
https://vjudge.net/problem/UVALive-4253 题意: 有n个平行于x轴的线段,每条线段代表一个靶子.判断是否可以站在x轴上[0,W]区间内的某个位置射箭. 思路:二分枚举坐标点,这道题需要用到atan2函数,它返回一个角度值,对于每个靶子,利用atan2函数确定能射中靶子的区间,如果靶子之间区间没有重合部分,说明该坐标点不能射中所有靶子.在下面的代码中,如果返回1,说明需要向右移,如果返回-1,说明需要向左移. 这道题目还需要注意一点的就是精度问题. #incl…
题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2255 题意 n个任务,允许时间区间为[ri, di](ri , di <= 20000),运算量为wi,可以分割,问最小运算速度 思路 明显,应该二分枚举最小运算速度, 对于时刻i来说,应该优先处理已经开始的最早结束的任务.接着,如果任务已经处理完毕,那就应该等待…
转载请注明出处 https://www.cnblogs.com/majianming/articles/the_composite_byte_buf_read_and_wite_operation_of_netty.html CompositeByteBuf实际上是一个虚拟化的ByteBuf,作为一个ByteBuf特殊的子类,可以用来对多个ByteBuf统一操作,一般情况下,CompositeByteBuf对多个ByteBuf操作并不会出现复制拷贝操作,只是保存原来ByteBuf的引用. 在正式…
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=679 解题报告:给定一个正整数的序列,和一个S,求长度最短的子序列,使它们的和大于或等于S.序列长度n <= 100000 很明显,如果枚举起点和终点的话,时间复杂度是O(n^3),不行.怎么能在O(1)时间求出一个子序列的和是多少呢,可以用另一个数组sum[i…
题目传送门 题意:凸多边形的小岛在海里,问岛上的点到海最远的距离. 分析:训练指南P279,二分答案,然后整个多边形往内部收缩,如果半平面交非空,那么这些点构成半平面,存在满足的点. /************************************************ * Author :Running_Time * Created Time :2015/11/10 星期二 14:16:17 * File Name :LA_3890.cpp ********************…
题意: 有W.E两个跑道,在每个时刻每个跑道的飞机都从0开始编号,而且每个时刻都有Wi和Ei架飞机到达这两个跑道.而且每个时刻只能选择一个跑道的一架飞机起飞.问如何选择才能使得飞机的最大编号最小.(每个时刻算编号时是在飞机起飞之前的) 思路: 又是一个最大值最小的问题,可以用二分,不过怎么二分我没有想到. 参考的别人的代码:http://blog.csdn.net/u011345136/article/details/17793415 起飞的决策是这样的: 如果一条跑道是空的,另一条跑道有飞机,…
题意: 你有b块钱想要组装一台电脑.给出n个配件的种类,品质和价格,要求每个种类的配件各买一个总价格不超过b且“品质最差配件”的品质因子应尽量大. 这种情况下STL的map的确很好用,学习学习 这种最大值最小的问题可以用二分法,自己写的二分会死循环,学习一下别人的二分. //#define LOCAL #include <vector> #include <cstdio> #include <string> #include <map> using name…
题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1178 题意 圆桌上有n个人,每个人要求a_i种不同的礼物,相邻两个人的礼物不能重复,问有至少要准备多少种礼物 思路 如刘书 1. 明显,若n=1,直接输出a[0] 2. 若n为偶数,则可以形如ABABAB,直接取最大的两个相连之和 3. 若n为奇数,则可以转化为二分判断…
https://vjudge.net/problem/UVALive-3268 题意: 有n个人和m个组.一个人可能属于很多组.现在请你从某些组中去掉几个人,使得每个人只属于一个组,并使得人数最多的组中人员数目为最小值. 思路:建立超级源汇点,源点和每个人相连,容量为1,说明每个人最多只能在一个组中.每个人和可以属于的组相连,容量为1.接下来枚举组的最大容量值,将每组和汇点相连,容量为枚举值,二分跑最大流即可. #include<iostream> #include<algorithm&…