- 博客(81)
- 收藏
- 关注
原创 Ubuntn安装和入门
Ubuntu12.04安装:可用Wubi在windows系统上一键安装出现问题:Wubi自动更新到13.04,启动系统出现 can't read 'proc/mount'错误,账号不识别只能以访客登陆。解决:1.换个不会自动更新的wubi 2.断网安装Linux命令入门:推荐:鸟哥的私房菜, 或者 http://www.92csz.com/study/linux
2014-07-09 12:37:22
950
原创 13年多校总结
因为太水了, 几场下来我都主要是看几何, 其他方面就不考率拿多校来练习了~ 直接进入主题吧~ 计算几何提供的最基础的计算算法部分, 可以把它想象成像某种工具物品一样性质的东西, 理解以后用到就伸手就行了, 但是对于计算几何也是最重要的一部分。 小的什么距离计算, 点积叉积, 混合积, 公面共线, 大点的什么凸包,最近点对,最远点对也逃离不出这个范畴。这个部分的信手拈来
2013-08-25 17:52:32
831
原创 多校第七场
惭愧, 深跪, 各种跪~ 学长的思路和标程一样 , trick都想出来了。 而且我对比标称, 写的程序连 长度,风格, 处理方式都一个样, 就是狂wa,后来发现处理凸包的时候不娶共线点就过了, 从此深跪不起~ 1002 Building Fence
2013-08-14 11:33:16
566
原创 HDU 4667 Building Fence
题意: 平面里给出M个三角形, N个圆形, 图形之间两两不相交, 求一个把这些图形围起来周长最小的一个圈的周长~分析:把三角形顶点分解成点, 对圆形求可能的切点:1.点和圆的两个切点, 2.圆和圆的外公切线切点。 对然后所有点求凸包, 处理周长的时候, 如果凸包上两个相邻点在同一个圆上, 则求相应的弧长~。此方法有个trick: 只有一个圆的时候需要特殊处理.
2013-08-14 11:24:47
907
1
原创 多校第五场
学长一眼就看出是求一条线段和M个多边形有多少个交点的问题~(太神了),网上目测都不是这样算的。第二次做多校几何载在读题上, 这题wa了整整两页, 但是发现理解题意错误后把第一次写的代码注释掉一行for就过了, 囧~ 1001 GSM
2013-08-08 10:29:00
653
原创 HDU 4643 GSM
题意: 求一条线段上的点到其他m个点有多少个最短距离, m个点中没有两点到线段上的端点距离相等~分析:用一个点和其他点的中垂线所在的半平面划分该点所在的区域, 该区域内任意一个点的距离到该点相对其他点距离最近.具体实现:用一个足够大的矩形覆盖所有点, 然后划分区域, 最后判断所问线段和多少个区域(凸包)有交点~#include #include #include #inclu
2013-08-08 10:21:10
718
原创 多校第四场
这题精度是个坑, 不知道为什么1e-10过不了, 1e-7就能过了, 总之花了好多时间, 在不经意中A掉了, 一度有想死的冲动~(连标点符号都考虑进去了~)1006 Rain on your Fat brother
2013-08-03 21:10:56
780
原创 HDU 4637 Rain on your Fat brother
题意可以归纳为:求一条线段和雨滴的交的总长度。分析:雨滴和线段的交点可以分为三角形和半圆的交点,注意线段可能会重复, 扫描线判重就可以了。#include #include #include #include #include #include #include #define FOR(i, n) for(int i = 0; i < n; i++)#define
2013-08-03 21:06:53
1055
1
原创 多校第三场
做的时候题意读错了, 理解成被不同覆盖次数的三角形顶点构成的多边形面积, 然后测试样例的时候花了好长时间手绘图形,之后就时间不够了。如果当时理解成覆盖面积的话,应该可以做, 因为没有trick, 重写的时候调通样例就可以过了。 1009Burning
2013-08-03 18:52:21
803
2
原创 HDU 4629 Burning
/* 题意: 求平面的n个三角形的不同覆盖次数(1 - n)的面积 。 分析:扫描线可以搞定。 扫描线:把三角形的顶点和交点的x轴的值排序, 这样就能把三角形给离散化, 然后枚举前后两条线之间的情况来计算。 前后两条搞毛线之间的情况变得很简单:都是由没有线交属于某个三角形的三角形或者梯形组成, 然后就可以从上到下遍历这些图形边, 依次计算面积
2013-08-03 18:36:46
1080
原创 Polygons
/*题意:判断一个顺时针凸包A是否包含(不包括边界)简单多边形B分析:判断B的每个点是否在A内; 因为m是1e5,m是1e4,如果判断算法在log(m)数量级左右, 所以O(n * Olog(m) )可以过*/#include #include #include #include #include #include #include #include #includ
2013-07-26 22:13:31
1236
原创 Weapon
/*题意:求是否存在两圆柱相交, 如果不存在求最短距离.分析:可以转化为空间直线距离问题, 然后如果距离 - 去半径和 > 0 则相交空间直线距离: 求两直线方向向量的确定的面的法向量n, 然后求出一条端点在不同直线上的任意向量, 最后通过点积可以求出该向量在法向量上的投影。投影的长度就是答案。 公式: dist = fas(dot(normal, anyVec) / vlen(n
2013-07-25 19:35:50
932
2
原创 Biridian Forest
//如果s - e的最短路比Breeder到e的最短路要长, 该Breeder就可以战斗, 因为它可以在终点等你~//反之如果某个Breeder的到e的最短路比s - e的最短路长,但是可以在你的路径点x上和你战斗,//那么它也可以比你先前后者同时到达e, 和假设相反。//所以比较最短路就行了, 用BFS给e打单源最短路径表, 然后比较就行了。#include
2013-07-24 20:35:28
784
原创 Purification
最少需要n次, 按行每行或者案列每列放一个, 如果不能存在就无解#include #include #include #include #include #include #include #include #define MAX 1005#define INF 1e8#define FOR(i, n) for(int i = 0; i < n; i++)#d
2013-07-23 21:05:55
1301
原创 Road Construction
星状图; #include #include #include #include #include #include #include #include #define MAX 1005#define INF 1e8using namespace std;int n, m;int du[MAX];vector >adj;int main(){ c
2013-07-23 19:48:48
1068
原创 Cakeminator
模拟#include #include #include #define MAX 1005using namespace std;int r, c;int ans;char s[MAX][MAX];bool v[MAX][MAX];int main(){ while(cin>>r>>c){ getchar(); for(int
2013-07-23 19:21:39
714
原创 XOR and OR
题意:给两个值有0和1的字符串a, b.问a能否转化到b.转化操作:取连个相邻的数字x, y, q = x ^ y, p = x || , 然后q取代xy其中一个,p取代另一个。分析: 只要a含有1,a可以转化为任意含有1的长度相等的字符串。 #include #include #include #include #include #define MAX 1000005
2013-07-22 21:20:26
818
原创 Painting Eggs
题意: 有N对和为1000的数(ai + gi = 1000), 每对选择一个, 求两边相差不超过500的任意分配方法分析:设有x个ai 则, 差值可以表示为 x * 1000 - sum(gi).枚举x输出答案即可。#include #include #include #include #include #define MAX 1000005using namespace s
2013-07-22 21:15:49
740
原创 Bit++
模拟#include #include #include #include #define MAX 1005using namespace std; int n;int main(){ ///freopen("in.txt","w",stdout); cin>>n; getchar(); int ans = 0; char s[MAX];
2013-07-22 21:08:24
598
原创 poj 1264 SCUD Busters
题意:给出一个k个王国, 每个由Ni个点的确定的凸包确定。之后给出多个炮弹, 如果炮弹落在凸包里, 该王国被停电,王国没有重合面积。问被停电的面积。分析:简单多边形面积, 点和凸包的关系。#include #include #include #include #include #include #include #include #include #define
2013-07-20 11:12:16
808
原创 CF 327B Hungry Sequence
题意: 求出N个严格升序, 前面的数都不能被后面的数整除的序列, 分析:因为N #include #include #include #include #include #include #include #include #include #define INF 1e8#define MAX (int)1e5+ 5#define eps 1e-8using nam
2013-07-19 21:26:19
766
原创 CF 327A Flipping Game
/*N很小, 模拟 */#include #include #include #include #include #include #include #include #include #define INF 1e8#define MAX (int)1e6+ 5#define eps 1e-8using namespace std;int n;int a[M
2013-07-19 21:21:26
752
原创 poj Grandpa's Estate
题意:爷爷的农场是一个用大钉打点确定凸包,但是有些大钉不见了, 输入现存的N个刚好构成凸包的点, 求这些点能否唯一确定一个凸包。分析:1.如果凸包边上至少含有一点, 则凸包可以唯一确定, 因为在凸包边上的外围加上一个点, 则凸包会多出一个不在凸包上的点。 2. 如果点都共线, 则外围凸包上可以随便放一个或多个点, 凸包不确定。#include #include #inc
2013-07-18 22:46:46
1241
1
原创 poj 1265 Area
/*题意: 求顶点为整点的简单多边形边面积A, 其边上的格点数, 内部的格点数。 Pick定理:A = I + E/ 2 - 1(前提为顶点为整数)一开一闭区间(x1, y1)-> (x2, y2)的上的格子点数为 gcd(|x1 - x2|, |y1 - y2|);然后就可以水了, G++输出“%.1f” C++输出 “%.1lf” 不然就会WA*/#incl
2013-07-17 21:31:47
1013
原创 poj 1385 Lifting the Stone
题意:给出n个按构成简单多边形顺序的点,求出多边形的重心简单多变形状重心:sum(各个三角形重心 * 三角形有向面积权重)各个三角形如图所示: #include #include #include #include #define MAX 1005#include #include #include #include #include #defi
2013-07-16 22:44:44
781
原创 Build String
/*最小费用最大流: 在流量最大的时候, 花费最小;算法: 1.每次用spfa寻找增广路, 如果存在最小花费路, 则在最小花费路上增广流量, 2.然后更新该路径上的弧的容量,重复1。直到找不到增广路。图论题都难在抽象模型建图上~, 熟练后就是一眼题~*/#include #include #include #include #define
2013-07-15 12:46:43
767
原创 Primes on Interval
题意:找到最小的一个在[1, b - a+ 1]上的数l , 使得属于[a, b - l + 1]上的所有x满足[x, x + l - 1]都至少有k个素数。 分析:l越小, x变多, 同时x +l - 1上的素数也越少。所以可以二分l找到最小值。 预处理素数。#include #include #include #include #define MAX 1005
2013-07-13 15:21:02
868
原创 Young Table
题意: 对一个每个数都唯一的动态矩阵每次进行两个数的位置交换操作(交换次数不超过总个数), 要求最终结果矩阵满足左到右为小到大,上到下为小大。输出变换个数和过程。分析: 最终结果就是矩阵排序后的结果。 然后原矩阵按最终结果矩阵来移动。一个个放到正确位置的操作个数最多不会超过总数字个数。所以:一个个放。#include #include #include
2013-07-13 14:58:59
807
原创 Free Cash
题意: 给出n个客人进店的时间(hi,mi),按24小时制, 服务每个人需要1分钟, 求最少需要多少人。分析:因为服务时间为1分钟, 客人进店的时差也是1分钟, 所以要么同一时间服务多个同时进店的人, 要么随便一个人服务其他仅一个人进店的人。 不用考虑没服务完一个人又有其他人进店。(差点写搓了)所以:对时间排序, 求出最大重复时间个数就是答案。#include
2013-07-13 14:45:42
947
原创 poj 1584 A Round Peg in a Ground Hole
题意:1.所有的点不能刚好能构成凸包输出:HOLE IS ILL-FORMED 2.否则如果圆不超出凸包输出:PEG WILL FIT,不然输出:PEG WILL NOT FIT分析:先判断判断是不是凸包, 是凸包的情况下判断圆是否在凸包内(包括内切)。判断凸包:获取凸包,如果最后顶点数和凸包顶点数不一样就不是。判断圆是否在凸包内:判断圆心在凸包内,在
2013-07-10 12:41:51
1009
原创 poj 2653 Pick-up sticks
题意:按顺序给出线段, 上面的可能会覆盖下面的, 求出不被其他线段覆盖的所有线段分析:暴力搜索,如果一条线段不被后面任一条覆盖,则它是答案之一重点:线段的平行,相交,点与线段的位置关系的判定, 点积叉积的灵活运用。#include #include #include #include #include #include #include #define
2013-07-07 03:11:40
591
原创 poj 1696 Space Ant
题意:对顶点圈出一个向左转的最长的罗璇, 顶点只能走过一次,罗璇没有交线;分析:对任意点集, 都能圈出一个罗璇包含所有节点; 用叉积判断罗璇方向,圈出罗璇就行,注意输出点数和起始位置#include #include #include #include #include #include #include #define MAX 10005#define INF 1
2013-07-07 01:32:22
872
原创 Poj 1556 The Doors
题意:求穿越对角线为(0,0,10,10)矩形的(0,5)到(10,5)的最短路径 在矩形里面存在竖直的墙体, 没个墙上在上面开了两个口:用5个参数描述x,y1, y2, y3, y4x为墙的x坐标,y1-y4为从下到上的缺口端点方法: 以所有墙的墙角(缺口处)和起始两点为顶点,建立无向图。建图过程中需要判断两条线段是否相交。=》知识点
2013-07-03 12:10:10
674
原创 Problem G
最小边覆盖#include #include #include #include #include #include #include #include #include #include //#include "myAlgorithm.h"#define MAX 1005#define OFFENCE (1e9 + 5)#define
2013-04-29 21:14:25
660
原创 Problem F
最小边覆盖#include #include #include #include #include #include #include #include #include #include #include //#include "myAlgorithm.h"#define MAX 10005#define OFFENCE (1e9 + 5)
2013-04-29 21:11:35
603
原创 Problem D
最大独立团#include #include #include #include #include #include #include #include #include #include //#include "myAlgorithm.h"#define MAX 1005#define OFFENCE (1e9 + 5)#define
2013-04-29 21:09:09
540
原创 Problem C
最大独立集#include #include #include #include #include #include #include #include #include #include //#include "myAlgorithm.h"#define MAX 10005#define OFFENCE (1e9 + 5)#define I
2013-04-29 21:06:13
743
原创 Problem A
二分图最小点覆盖 #include #include #include #include #include #include #include #include #include #include //#include "myAlgorithm.h"#define MAX 105#define OFFENCE (1e9 + 5
2013-04-29 21:03:34
507
原创 HDU 1569 方格取数(2)
/** 对于此题, 唯一想到的是不能搞的:暴搜,还有转移方程不明的dp~~~ 这种题必须对相关算法有一定的了解, 依靠前人已经总结的智慧, 俗话说站在巨人的肩膀上, 不然想破头皮都没用~~~ 还是先学学算法吧, 领会算法的就一眼望穿了~~~, 继续水~~~ ———————————————————————————————————— 学习了下,
2013-04-29 20:58:02
605
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人