自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(45)
  • 收藏
  • 关注

转载 PKU2079 Triangle 点集最大三角形面积

题意:给定一些点,要求找出由这些点集构成的最大三角形面积。分析:最大三角形的三个顶点必定在凸包上。求出凸包上的点后,枚举各种组合,得到最大面积。朴素算法的时间复杂度是(n^3),但可根据凸包的单峰性进行剪枝。这里用到Rotating Calipers algorithm枚举三角形的第一个顶点i,然后初始第二个顶点j=i+1,第三个顶点k=j+1,循环k+1直到Ar...

2010-10-14 10:33:00 211

转载 PKU2069 Super Star 点集最小外接球

变步长法属于模拟退火算法的一种。pku2790就可以使用这种方法求解。题意:是求一些空间点集的最小外接球半径。选取一个初始点,然后按一定步长前进,前进的方向选择为指向最靠近它的点。不断让步长衰减,过程中记录最优值。pku2420也是这种题型,可以参考IOI集训队2008年顾研的论文。题目链接:http://poj.org/problem?id=2069#include&l...

2010-10-13 17:15:00 246

转载 FZU1120 A Pilot in Danger! 判断点是否在多边形中

判断点是否在多边形中:判断点P是否在多边形中是计算几何中一个非常基本但是十分重要的算法。以点P为端点,向左方作射线L,由于多边形是有界的,所以射线L的左端一定在多边形外,考虑沿着L从无穷远处开始自左向右移动,遇到和多边形的第一个交点的时候,进入到了多边形的内部,遇到第二个交点的时候,离开了多边形,……所以很容易看出当L和多边形的交点数目C是奇数的时候,P在多边形内,是偶数的话P在多边...

2010-10-13 11:53:00 134

转载 ZOJ1450 Minimal Circle 最小圆覆盖

包含点集所有点的最小圆的算法http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=450平面上有n个点,给定n个点的坐标,试找一个半径最小的圆,将n个点全部包围,点可以在圆上。1. 在点集中任取3点A,B,C。2. 作一个包含A,B,C三点的最小圆,圆周可能通过这3点,也可能只通过其中两点,但包含第3点.后一种情况圆周...

2010-10-12 18:18:00 200

转载 ZOJ3411 Special Special Judge

问题描述:The norm of a vector v = (v1, v2, ... , vn) is define as norm(v) = |v1| + |v2| + ... + |vn|. And in Problem 0000, there are n cases, the standard output is recorded as a vector x = (x1, x2...

2010-10-09 16:29:00 104

转载 HDU3634 City Planning 矩形切割(离散化)

这一题其实并不难,昨天比赛时WA了,下来请教了队友,原来是用的矩形切割Problem 363462MS 224K本题思路:以出现的矩形端点为交点将所有的矩形分割成一个个小矩形,这里的点要求不重复且升序,正好用到set很方便(相当于离散化)。然后再把原来的矩形按照value的降序排列,将每个矩形所覆盖的且还没有着色小矩形块统统着色,并求价值和,即得结果。查找矩形覆盖的小矩...

2010-10-03 17:23:00 150

转载 poj2187 Beauty Contest 最远点对模板(旋转卡壳)

旋转卡壳可以用于求凸包的直径、宽度,两个不相交凸包间的最大距离和最小距离等。虽然算法的思想不难理解,但是实现起来真的很容易让人“卡壳”。拿凸包直径(也就是凸包上最远的两点的距离)为例,原始的算法是这样子:Compute the polygon's extreme points in theydirection. Call themyminan...

2010-09-16 14:55:00 233

转载 PKU1220 NUMBER BASE CONVERSION 大整数任意进制转换模板

题目大意:有t组cases。每组给你一个from,to,和串s。将from进制下的串s转化为to进制下的串题目链接:PKU1220 NUMBER BASE CONVERSION题目分析:直接对进制转换时的人工方法进行模拟,直到将串s除尽。#include<iostream>#include<string>using namespace std;st...

2010-09-13 15:17:00 105

转载 URAL1153 Supercomputer 大数开方模板

今天下午哈尔滨赛区网络预选赛1003出了一道大数开方的题,自己用了XX大学的模板,并错误的深信不疑,导致WA11次,悲剧RANK94如果1Y了,肯定是另一种结果啊。情何以堪……赛后得知模板用错,用中山大学的模板区做URAL1153Supercomputer(大数开方),小菜一碟。题目大意:N=x*(x+1)/2,给你N (N < 10600),输出x分析:求sqrt...

2010-09-11 21:08:00 109

转载 HDU2138 随机素数测试 Miller-Rabin算法

题目描述 Give you a lot of positive integers, just to find out how many prime numbers there are.. In each case, there is an integer N representing the number of integers to find. Each integer w...

2010-09-07 15:47:00 174

转载 HDU1402 A * B Problem Plus 快速傅里叶变换FFT

看了算法导论(第2版)第30章的《多项式与快速傅里叶变换》多项式有系数表示法和点值表示法。两个次数界为n的多项式A(x)和B(x)相乘,输入输出均采用系数表示法。(假定n为2的幂)1)使次数界增加一倍:A(x)和B(x)扩充为次数界为2n的多项式,并构造起系数表示2)求值:两次应用2n阶FFT,计算出A(x)和B(x)的长度为2n的点值表示3)点乘:计算多项式C(x)...

2010-09-05 19:38:00 128

转载 PKU1039 Pipe 计算几何线段交点

模板:给定L1上两点(ax,ay),(bx,by),L2上两点(cx,cy),(dx,dy),求两直线交点(x,y)。double cross(double x1, double y1, double x2, double y2){ return x1 * y2 - x2 * y1;}void intersec(point a, point b, point c, poin...

2010-09-03 15:45:00 79

转载 SGU491 Game for Little Johnny

491 Accepted3522 ms27367 kb题目大意:给一个N。让你求有多少对A和B,让方程Ax+By=N有自然数解。(N<=100000)分析:先枚举a再枚举x。对于每个a算出所有可能的b,然后对于b去重。最后便可得到所有的(a,b)对个数。参考博客:WJBZBMR的空间/*total 100tests ...

2010-09-01 15:51:00 82

转载 HDU3546 C++大整数加与乘(9位一存+重载字符) 另附JAVA版

注意这里的优化:我们先将所有操作读进内存,从后往前计算出哪些操作是必要的,然后仅仅执行必要的操作就行了至于哪些操作的是必要的呢,我们需要从后往前维护当前哪些变量的值是必要的,首先,程序结束的时候,显然所有变量的值都是必要的。每当遇到一个赋值语句的时候,被覆盖的变量的值之前就是不必要的了。每当遇到一个计算语句的时候,如果修改的变量是必要的,那么显然用来作为运算的变量也就变为必要的了...

2010-08-30 10:52:00 98

转载 HDU1392 凸包模板

题目大意:求凸包边缘的长度解题思路:标准的凸包Graham算法#include<iostream>#include<cmath>#define PI acos(-1.0)const double eps = 1e-6;int sgn(double a) { return (a>eps) - (a<-eps);}struct point...

2010-08-29 12:42:00 89

转载 hdu 1115 Lifting the Stone 多边形的重心

#include<iostream>#include<cmath>using namespace std;struct point{ double x,y; point (double xx=0,double yy=0){ x=xx; y=yy; } double operator *(point b){ ...

2010-08-28 21:27:00 79

转载 二维下计算几何程序头 (模板)

#include<iostream>#include<cmath>using namespace std;const double epoints = 1e-9;int sgn(double a) { return (a > epoints) - (a < -epoints);}const double pointi = acos(-1.0)...

2010-08-28 18:00:00 65

转载 HDU2912 Spherical Mirrors 计算几何

题意:求一条射线经过一系列球反射后的反射点分析:从起点出发,求出射线与球的最近交点,然后更改反射线为入射线循环找射线与球的最近交点,直到没有球与射线相交。#include<iostream>#include<cmath>using namespace std;struct point{ double x,y,z; point(double ...

2010-08-28 17:55:00 98

转载 HDU1695 GCD 欧拉函数+容斥原理

Accepted1695187MS9188K题意:已知给定k,x,y求 1<=a<=x 1<=b<=y 中满足 gcd(a,b)=k 的(a,b)对数。(注意数对是无序的)。 1<=x,y<=1e5, 0<=k<=1e5用到了欧拉函数,素因子分解,筛选法,组合数学上的容斥原理等,不失...

2010-08-26 10:53:00 75

转载 ZOJ3376 Safest Points [几何(geometry), 宽度优先搜索(bfs)]

题目大意:在一个w*h的格点区域内,有一些直线,定义一个点是危险点,如果它到某条直线的曼哈顿距离小于1;定义一个点是最安全点,如果它不是危险点,且到所有危险点的最小距离是最大的。如果所有点都是危险点,输出”MISS!”(STG中挂了一次称为1 miss),否则按字典序输出所有最安全点。分析:首先得把危险点求出来,一个点到一条之间的曼哈顿最近点要么是它水平射线的交点(当直线斜率绝对值大...

2010-08-23 21:47:00 73

转载 HDU3471 England vs Germany 计算几何题

Accepted3471296MS200K对于速度V的方向有三种情况,可用V与ABCD面法向量的点积判断:1 V指向ABCD面外侧,或V与ABCD面平行,不可能进球;2 ball在ABCD面内侧,不可能进球;3 ball在ABCD面上,当且仅当 P在多边形ABCD内(不包括边界)才进球4 ball在ABCD面外侧,当且仅当 直线P+xV与ABCD面...

2010-08-21 21:34:00 89

转载 HDU3476 Sudoku

SudokuTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 150Accepted Submission(s): 61Problem DescriptionThe puzzle game of Sudoku i...

2010-08-20 21:17:00 84

转载 二分图最大匹配 匈牙利算法

令G = (X,*,Y)是一个二分图,其中,X = {x1,x2,...xm}, Y = {y1,y2,...yn}。令M为G中的任一个匹配。 1)讲X的所有不与M的边关联的顶点标上(@),并称所有的顶点为未被扫描的。转到 2)。 2)如果在上一步没有新的标记加到X的顶点上,则停止。否则转到 3)。 3)当存在X被标记但未被扫描的顶点时,选择一个被标记但未被扫描的X的顶点,比如,xi,用...

2010-08-18 09:31:00 83

转载 置换,置换的运算

置换的概念还是比较好理解的,《组合数学》里面有讲。对于置换的幂运算大家可以参考一下潘震皓的那篇《置换群快速幂运算研究与探讨》,写的很好。结论一:一个长度为l的循环T,l是k的倍数,则T^k是k个循环的乘积,每个循环分别是循环T中下标i mod k=0,1,2…的元素按顺序的连接。结论二:一个长度为l的循环T,gcd(l,k)=1,则T^k是一个循环,与循环T不一定相同。...

2010-08-17 18:10:00 2286

转载 ZZULI-Summer Training Contest(Seven)解题报告

比赛地址:http://acm.hdu.edu.cn/diy/contest_show.php?cid=7323密码:zzuliacm1001 –HDU1715大整数相加1002 –HDU1426DFS和HDU2553 N皇后问题一个道理代码#include<stdio.h>struct Point{ int x...

2010-08-14 18:00:00 69

转载 ZZULI-Summer Training Contest(Six) 解题报告

比赛地址:http://acm.hdu.edu.cn/diy/contest_show.php?cid=72621001 --HDU2203秒杀型水题巩固下strcpy strcat strstr函数的应用1002 --HDU1846博弈题最基础的博弈,规律很容易发现的1003 –HDU1071简单数学题设抛物线y=a*x^2...

2010-08-11 21:25:00 89

转载 AC自动机学习小结

首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指针和...

2010-07-29 10:51:00 252

转载 矩阵乘法

矩阵乘法是一种高效的算法可以把一些一维递推优化到log( n ),还可以求路径方案等,所以更是是一种应用性极强的算法。矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。矩阵乘法看起来很奇怪,但实际上非常有用,应用也十分广泛。 基本定义  它是这样定义的,只有...

2010-07-27 17:57:00 122

转载 对ACM初学者的意见及推荐ACMer看的书

一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。下面给个计划练练: 第一阶段:练经典常用算法,下面的每个算法打上十到二十遍,同时自己精简代码。因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来. 1.最短路(Floyd、Dijs...

2010-07-26 20:07:00 196

转载 欧拉函数

在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。 简介  φ函数的值   φ(1)=1(唯一和1互质的数就是1本身)。  ...

2010-07-24 07:55:00 150

转载 字典树 ZOJ1109 HDU1251 PKU1204 HDU1075

又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 假设有abc,abcd,abd, b, bcd,efg,hii这7个单词,可构建字典树如下:查找一个...

2010-07-23 08:56:00 84

转载 POJ刷水(3)

本篇看点PKU1011、PKU1013。PKU2000 模拟题,没用公式,暴力0MS过了代码#include<stdio.h>int main(){ int i,n,c,sum,pay; while(scanf("%d",&n),n) { sum=0; pay=1; c=0; ...

2010-07-22 20:36:00 127

转载 POJ 刷水(2)

这一篇的看点PKU1088、PKU1012。PKU1008分析:先按H历法算出总天数,再模T历法一年的天数的到T历法的年,但T历法没月的概念,只是两个独立循环的组合,所以分别模20和13就能得到结果。数据4. uayet 259应输出13 ahau 364。代码#include<stdio.h> #include<string.h> ...

2010-07-22 20:29:00 73

转载 POJ 刷水

这个专题将近过了10天了吧,这个.doc文件一直存到电脑里,我就把它发出来吧。1004,1003,1005,1006,1007,1002,1001,1008,1163,1088,2027,1012,1046,1050,1207,2000,1218,1664,1011,1013北大OJ:http://124.205.79.250/JudgeOnl...

2010-07-22 20:21:00 73

转载 HDU1387 Team Queue

题目描述:Problem DescriptionQueues and Priority Queues are data structures which are known to most computer scientists. The Team Queue, however, is not so well known, though it occurs often in ...

2010-07-22 13:50:00 128

转载 TJU1167 The Settlers of Catan +比赛总结

Within Settlers of Catan, the 1995 German game of the year, players attempt to dominate an island by building roads, settlements and cities across its uncharted wilderness. You are employed by a ...

2010-07-21 21:29:00 85

转载 【ZZ】 ACM之歌

大学的我们  怀着憧憬怀着渴望  踏上ACM的舞台  梦想的花朵开始绽放  多少次讨论中思想的碰撞  多少次指尖敲击键盘发出的声响  多少次看到Wrong answer无奈与挣扎  多少次闪出期待Accepted的眼光  多少次出现红色Accepted的喜悦  多少次从早到晚的辛勤付出  多少次伴随着朝阳进入梦乡  或许我们曾被...

2010-07-20 11:52:00 56

转载 HDU1710 Binary Tree Traversals

同PKU2255 Tree Recovery可以说是一道题目了本题题目描述:链接仿照PKU2255写的代码,一不小心给过了。先由前序 中序建树,再后序遍历 62MS 1360K(内存有点大啊)代码#include<stdio.h>#include<stdlib.h>struct node{ int value; str...

2010-07-20 10:53:00 59

转载 并查集小结 (参考birdfly+修改)

并查集的作用:并和查,即合并和查找,将一些集合合并,快速查找或判断某两个集合的关系,或某元素与集合的关系,或某两个元素的关系。 并查集的结构:并查集主要操作对象是森林,树的结构赋予它独特的能力,对整个集合操作转换为对根节点(或称该集合的代表元素)的操作,一个集合里的元素关系不一定确定,但相对于根节点的关系很明了,这也是为了查找方便。 并查集优化方法:按秩合并和...

2010-07-19 21:21:00 127

转载 PKU2255 Tree Recovery 二叉树的遍历

DescriptionLittle Valentine liked playing with binary trees very much. Her favorite game was constructing randomly looking binary trees with capital letters in the nodes. This is an example of ...

2010-07-18 14:01:00 107

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除