POJ
xrivendell7
永不放弃,永不停息
展开
-
POJ 1113 入门凸包
自己的第一法凸包 思路就是,建立凸包,求凸包周长加上圆的周长,主要练模版#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>const double eps=1e-8;const double PI=acos(-1);const int maxn=1000+原创 2016-09-14 00:09:03 · 470 阅读 · 0 评论 -
POJ2891 Strange Way to Express Integers 不互质中国剩余定理
POJ2891题意是求同余方程组的最小正整数解,首先肯定想到用中国剩余定理,但题目中并没有限制模数m[i]两两互质,就不能直接用中国剩余定理,需要注意两个问题: 1.同余方程式是否有解:对任意两个同余方程: {x≡b[i] (mod m[i])x≡b[j] (mod m[j])\begin{cases}x\equiv b[i] \ \ \ \ (mod \ m[i] ) \\x原创 2016-10-10 22:32:53 · 393 阅读 · 0 评论 -
poj 2142 The Balance 扩展欧几里得
POJ2142 题目的大意是通过放不同的砝码使得天枰平衡 很容易得到实际上问题就是解ax=d+byax=d+by与ax+d=byax+d=by这两个方程的满足条件的最小的正整数解 但实际上我们可以通过解这样一个不定方程ax+by=dax+by=d来得到结果 首先,x,yx,y的正负是无关紧要的(如果其中一个是负数,我们直接取绝对值就可以),无非就是砝码从一段移到另一端。 其次,通过扩展原创 2016-10-10 23:18:03 · 362 阅读 · 0 评论 -
POJ2318 叉积判断点与直线的关系
利用叉积判断点和直线的位置关系,确定点在直线的左侧还是右侧 通过查找比较点与各个直线(隔板)之间的关系,确定点所在的区间查找可以用一般方法,因为直线是有序的,但需要考虑0和n的特殊情况。#include <iostream>#include <cstdio>#include <algorithm>#include <cstdlib>#include <cstring>#define max原创 2016-08-28 23:32:55 · 836 阅读 · 0 评论 -
POJ 2398 排序+叉积判断点与直线位置关系+统计
题目与POJ2318基本一样 不同之处是需要对直线位置从左到右(按照平面直角坐标系的习惯)进行排序,最后对结果进行统计即可#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define maxn 1000+10struct point{ int x,y;};struct Line原创 2016-08-28 23:36:54 · 503 阅读 · 0 评论 -
POJ 1269 判断直线的关系:相交,平行,重合
纯用模版即可#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;struct point{ double x,y; point(){} point(double _x,double _y) {原创 2016-08-30 22:34:59 · 486 阅读 · 0 评论 -
POJ 1410 线段相交模版
WA了好多次,有很多小陷阱,第一个是注意输入时的排序,第二注意线段在矩形内部的情况。 题目比较直接 模板抄错,wa了好多次,晕~~~#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const double eps=1原创 2016-08-31 20:14:30 · 296 阅读 · 0 评论 -
POJ 1309 线段与直线相交+枚举
线段与直线相交时,端点重合情况需要考虑, 所以是不规范相交。 枚举时注意逻辑,不重不漏。 模版运用需要灵活.#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#define maxn 20+5const double eps=1e-8;int sgn(double x){ if(fabs原创 2016-09-03 12:38:27 · 366 阅读 · 0 评论 -
POJ 3304 直线与线段相交的判断
参考: http://blog.sina.com.cn/s/blog_6635898a0100n2lv.html 的证明过程 可将问题转化为是否存在一条直线经过所有的线段的判断问题#include<iostream>#include<cmath>#include<cstdio> using namespace std;const int MAX = 105;const double e转载 2016-08-31 20:47:30 · 307 阅读 · 0 评论 -
POJ 2074 直线相交
思路比较直接。 根据house的位置与每一个obstruction之间的相对位置,求出在line上不能够看到的区域Area的位置。 对所有的位置进行线性扫描,找出最长的通视距离,这个扫描过程需要细致。 最后还有几个致命的trick,自己动手吧,WA看dicuss中的测试数据.#include <iostream>#include <cstdio>#include <cmath>#incl原创 2016-09-08 14:56:24 · 351 阅读 · 0 评论 -
POJ 2007 极角排序
题目扯了那么多,又是算斜率, 又是不同象限的,最后就是一个极角排序 注意,这里的极角排序是一般grahm-scan算法的逆序即可#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>const int maxn=55;const double eps=1e-8;原创 2016-09-14 00:05:42 · 340 阅读 · 0 评论 -
POJ 1006 Biorhythms 手算孙子定理
POJ1006 题目给的mod数组是固定,直接手算吧 AC代码:#include <iostream>#include <cstdio>using namespace std;int main(){ //freopen("input.txt","r",stdin); int p,e,i,d,cnt=0; while(~scanf("%d%d%d%d",&p,&e,&原创 2016-10-11 22:28:44 · 665 阅读 · 0 评论