题意:判断一堆小点有多少个在任意三个大点构成的三角形里面. 思路:其实就是判断点在不在凸包里面,判断的话可以使用二分来判断,就是判断该点在凸包的哪两个点和起点的连线之间. 代码: /** @xigua */ #include<cstdio> #include<cmath> #include<iostream> #include<algorithm> #include<vector> #include<stack> #include&l…
题意:给你一堆黑点一堆红点,问你有最多几个黑点能找到三个红点,使这个黑点在三角形内? 思路:显然红点组成的凸包内的所有黑点都能做到.但是判断黑点和凸包的关系朴素方法使O(n^2),显然超时.那么我现在有一个更好的方法判断点和凸包的关系.我固定一个红点,然后找连续两个红点使黑点 i 在这个三角形内(向量判),然后用二分查找是否存在这样的两个连续红点.这样复杂度为nlogn. 注意凸包不要用atan2的那种,会有精度误差... 代码: #include<cmath> #include<set…
Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4628   Accepted: 1434 Description The DIY Furniture company specializes in assemble-it-yourself furniture kits. Typically, the pieces of wood are attached to one another using a wooden peg…
POJ_2318_TOYS&&POJ_2398_Toy Storage_二分+判断直线和点的位置 Description Calculate the number of toys that land in each bin of a partitioned toy box. Mom and dad have a problem - their child John never puts his toys away when he is finished playing with them.…
//UVALive7461 - Separating Pebbles 判断两个凸包相交 #include <bits/stdc++.h> using namespace std; #define LL long long typedef pair<int,int> pii; const int inf = 0x3f3f3f3f; ; #define clc(a,b) memset(a,b,sizeof(a)) ; ; void fre() {freopen("in.txt…
php判断检测一个数组里有没有重复的值 php里有一个处理数组重复值得函数array_unique,我们的思路就是用这个函数来实现的. if (count($array) != count(array_unique($array))) {      echo '该数组有重复值';  } 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 更多技术文章请搜索千锋PHP,做真实的自己,用良心做教育. 互联网+时代,时刻要保持学习,携手千锋PHP,Dream It Possible.…
这个题的数据,太卡了,TLE了两晚上,各种调试优化,各种蛋疼. 2756: [SCOI2012]奇怪的游戏 Time Limit: 40 Sec Memory Limit: 128 MB Submit: 2311 Solved: 598 [Submit][Status][Discuss] Description Blinker最近喜欢上一个奇怪的游戏. 这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数.每次 Blinker 会选择两个相邻 的格子,并使这两个数都加上 1. 现在 Blinke…
题意: 给出n个红点,m个蓝点.问是否存在一条直线使得红点和蓝点分别分布在直线的两侧,这些点不能再直线上. 分析: 求出两种点的凸包,如果两个凸包相离的话,则存在这样一条直线. 判断凸包相离需要判断这两件事情: 任何一个凸包的任何一个顶点不能在另一个凸包的内部或者边界上. 两个凸包的任意两边不能相交. 二者缺一不可,第一条很好理解,但为什么还要判断第二条,因为存在这种情况: 虽然每个凸包的顶点都在另一个凸包的外部,但两个凸包明显是相交的. //#define LOCAL #include <cs…
题目链接 有两个人x, y, 现在在A点, x要直接去B点, y要先去C点在去B点, 现在给出x, y两人可以行走的最大距离T1, T2, 求出他们从A点出发之后, 可以走的最长的公共路径. 我们先看最特殊的情况, T1超级大, 所以x可以先走到C点在到B点, 这种情况的最长距离为min(T1, T2). 然后看一般情况. 现在, x先陪y向C的方向走一段, 然后在走回B点. 我们二分走的这一段的距离. 假设距离为m, 那么我们发现, 他们两人分开的那个点, 在以A为圆心, m为半径的圆内. 同…
题目链接: K - Video Reviews Gym - 101755K 题目大意: 一家公司想让个人给他们的产品评论,所以依次去找这个人,第i个人会评论当且仅当已经有个人评论或他确实对这个产品感兴趣,但是这个人都不对这个产品感兴趣,问这个公司至少要说服几个人对该产品该兴趣才能至少收到个人的评论. 具体思路:二分最小值,当当前的人发现满足的人数不够的时候,就通过二分的最小值给补上就可以了. AC代码: #include<bits/stdc++.h> using namespace std;…