- 博客(127)
- 资源 (2)
- 收藏
- 关注
原创 2014 ACM/ICPC Asia Regional Shanghai Online 1006 Sawtooth
#include #include #include #include #include#includeusing namespace std; #define MAXN 9999 #define MAXSIZE 10 #define DLEN 4 class BigNum { private: int a[500]
2014-09-27 16:10:30
1164
原创 uva 11235 - Frequent values(RMQ问题)
题意:给出一个非降序排列的整数数组a1,a2,。。。an,你的任务是对于一系列询问(i,j),回答ai,ai+1,。。。,aj中出现次数最多的值所出现的次数。#include#include#include#define mx 100000+10#define max(x,y) (x)>(y) ? (x) : (y)using namespace std;int n,m,d
2013-11-07 20:17:50
1201
1
原创 uva 1428 - Ping pong (二叉索引树)
题意:一条大街上住着n个乒乓球爱好者,经常组织比赛切磋技术。每个人都有一个不同的技能值ai。每场比赛需要3个人:两名选手,一名裁判。他们有一个奇怪的规定,即裁判必须住在两名选手的中间,并且技能值也在两名选手之间。问一共能组织多少种比赛。#include#include#include#define mx 100000+10#define mm 20000+10using nam
2013-11-07 17:06:37
1156
原创 uva 1329 - Corporative Network
题意:有n个结点,初始时每个结点的父节点都不存在。你的任务是执行如下操作: I u v:把结点u的父节点设为v,距离为|u -v|除以1000的余数。输入保证执行指令前u没有父节点。 E u :询问u到根节点的距离。#include#include#define mx 20010using namespace std;int fa[
2013-11-06 20:48:22
715
原创 uva 1160 - X-Plosives(并查集)
简单的并查集。#include#define mx 100010int fa[mx];int find(int x){ while(fa[x]!=x) x=fa[x]; return x;}int main(){ int i,x,y,cnt; while(scanf("%d",&x)!=EOF) { for(i=0;i<mx;i++) fa[i]=i;
2013-11-06 19:50:55
693
原创 uva 11997 - K Smallest Sums
题意:有k个整数数组,各包含k个元素。在每个数组中取一个元素加起来,可以得到 kk个和。求这些和中最小的k个值(从小到大输出)。#include#include#includeusing namespace std;struct node{ int s,b; node(int s,int b):s(s),b(b){}};bool operator < (node x,
2013-11-06 19:05:42
660
原创 uva 1203 - Argus
题意:Argus系统支持一个Register命令:Register Q_num Period该命令注册了一个触发器,它每Period秒就会产生一次编号为Q_num的事件。你的任务是模拟出前k个事件。如果事件同时发生,先处理Q_num小的事件。#include#includeusing namespace std;struct node{ int num,period,ti
2013-11-06 17:39:03
980
原创 uva 11991 - Easy Problem from Rujia Liu?
题意:给出一个包含n个整数的数组,你需要回答若干查询。每次询问两个整数k和v,shuc
2013-11-06 16:29:07
713
原创 uva 11995 - I Can Guess the Data Structure!
大致题意:输入1表示push,2表示pop,输出:stack:一定是个栈;queue:一定是个队列;priority:一定是个优先队列;impossible:都不是;not sure:至少有两种可能。注意:它有可能在pop前已为空,所以要先判断empty()。#include#include#include#includeusing namespace s
2013-11-05 20:25:02
917
原创 青年文摘-往世书
往事书傀儡师能做出和人几无差别的傀儡,而付出的代价,是远离凡尘。他们在死的时候,刻一只与自己一模一样的傀儡,将生命延续下去。一 重逢没有谁的箭比谢洛白更快,没有谁的枪比姬郁非更强,也没有谁,敢和曲南陵比眼睛的锐利。对于风行于晋北军中的这一说法,通常谢洛白只低头看自己的双手,姬郁非会露出看似忧郁实则骄傲的笑容,而那个倒霉的曲南陵,多半是苦着脸做一个噤声的手势:
2013-11-04 19:47:54
2807
原创 hdu 1007 Quoit Design(分治法求最近点对)
大致题意:给N个点,求最近点对的距离 d ;输出:r = d/2。// Time 2093 ms; Memory 1812 K#include#include#include#include#define eps 1e-8#define maxn 100010#define sqr(a) ((a)*(a))using namespace std;int sig(do
2013-10-31 15:22:19
1056
原创 hdu 4717 The Moving Points(三分法)
大致题意:给定 n 个起点的二维坐标和速度的大小和方向;问在哪一时刻所有两点间的最大距离最小。// Time 78 ms; Memory 1316K#include#include#include#define maxn 50000#define maxm 305#define sqr(x) ((x)*(x))#define eps 1e-5using namespac
2013-09-21 11:42:05
1043
原创 hdu 4741 Save Labman No.004 [2013年杭州ACM网络赛]
// Time 234 ms; Memory 244 K#include#include#includeusing namespace std;typedef struct point{ double x,y,z; point(double xx=0,double yy=0,double zz=0):x(xx),y(yy),z(zz){}}vector;vector op
2013-09-15 19:14:30
1261
原创 hdu 4736 This Is The Job The Bear Finds(2013年成都ACM网络赛)
#include#include#include#include#define eps 1e-10#define sqr(a) ((a)*(a))#define pi (2.0*asin(1.0))using namespace std;double ma[100010];int sig(double a){ return (a>eps)-(a<-eps);}ty
2013-09-15 10:31:36
2078
原创 hdu 4007 Dave (2011年大连ACM网络赛)
题意:给定正方形的边长 r ,在平面内寻找正方形可以圈住的点的最大的个数。分析:先对点排序,然后固定一条边,再平移另一条垂直边,得到点的个数,最后比较大小即可。注意:不包含正方形倾斜的情况!// Time 125ms; Memory 240k#include#include#includeusing namespace std;struct point{ int
2013-09-02 17:02:50
1323
原创 uva 11796 - Dog Distance
#include#include#include#define eps 1e-8#define max(a,b) a>b?a:busing namespace std;int sig(double a){ return (a>eps)-(a<-eps);}typedef struct point{ double x,y; point(double
2013-08-26 22:13:58
921
原创 uva 1342 - That Nice Euler Circuit
题意:平面上有一个包含n个点的一笔画,图案是封闭的。线段可以相交,但不会部分重叠,如图,求平面被分成多少部分。#include#include#include#define eps 1e-8using namespace std;int sig(double a){ return (a>eps)-(aeps);}typedef struct point{
2013-08-26 19:52:13
905
原创 uva 12165 - Triangle Hazard
#include#include#includeusing namespace std;typedef struct point{ double x,y; point(double xx=0,double yy=0):x(xx),y(yy){}}vector;vector operator - (point a,point b){ return vect
2013-08-23 21:44:20
1488
原创 uva 1447 - Malfatti Circles
题意:给出一个三角形的3个顶点的坐标,求3个圆,使得每个圆和三角形的两条边以及另两个圆均相切,如图,输出这3个圆的半径。 #include#include#include#define sqr(a) ((a)*(a))#define eps 1e-8#define min(a,b) (a)<(b)?(a):(b)using namespace std;int sig(
2013-08-23 12:03:10
1578
2
原创 uva 11186 - Circum Triangle
题意:在一个圆上有 n (n提示:枚举每一条边。#include#include#include#include#define pi (2.0*asin(1.0))using namespace std;int main(){ int i,j,n; double s,r,rad[505]; while(cin>>n>>r && n+r) {
2013-08-21 20:33:28
1570
1
原创 uva 10566 - Crossed Ladders
题意:如图,已知 x,y,c,其中 c 是 x 和 y 的交点到地面的距离。求“?”的长度。#include#include#include#define sqr(a) ((a)*(a))#define eps 1e-8using namespace std;int sig(double a){ return (a>eps)-(a<-eps);}i
2013-08-21 11:13:16
1118
原创 uva 12301 - An Angular Puzzle
题意:如图,已知角ACB,角CAE, 角EAB, 角CBD, 角DBA (in degrees), 求角 DEA。注意:在 Output 中,“If there is more than one solution, print "Multiple solutions"”这句话是迷惑你的,根本没有这种情况!#include#include#include#def
2013-08-20 22:17:07
1107
原创 uva 12300 - Smallest Regular Polygon
题意:给定两个点A和B,求包含这两个点的面积最小的正 n(已知)边形。#include#include#include#define pi 2.0*asin(1.0)#define sqr(a) ((a)*(a))using namespace std;int main(){ int n; double x1,x2,y1,y2,d,thy,s; whi
2013-08-20 17:42:41
1001
原创 uva 11731 - Ex-circles
题意:已知三角形ABC的3条边长,求三角形ABC 的面积,以及阴影部分的总面积。#include#include#include#define sqr(a) ((a)*(a))#define pi 2.0*asin(1.0)using namespace std;type
2013-08-20 16:25:20
1114
原创 uva 11524 - InCircle (二分法)
题意:三角形ABC的内切圆把它的三边分别划分成 m1:n1,m2:n2 和 m3:n3 的比例。另外已知内切圆的半径 r ,求三角形ABC 的面积。#include#include#include#include#define sqr(a) (a)*(a)#define eps 1e-12#define min(a,b) a<b?a:b#def
2013-08-20 07:48:48
1172
原创 uva 1473 - Dome of Circus
题意:给定 n 个空间中的点,任务是找一个底面在 z=0 平面上,中心在(0,0,0)的体积最小的圆锥,包含所有点。#include#include#include#include#define pi (2.0*asin(1.0))#define div(a) ((a)*(a)*(a))#define eps 1e-6using namespace std;const
2013-08-19 19:48:45
969
原创 uva 11817 - Tunnelling the Earth
题意:从地球上的一个点到另一个点,求亮点的球面距离和直线距离之差。假定地球是正球体,半径为6371009米。#include#include#define r 6371009#define pi 2.0*asin(1.0)using namespace std;double ang(double lt1,double lt2,double lg1,double lg2){
2013-08-18 17:38:53
1033
原创 uva 11646 - Athletics Track
题意:如图,体育场的跑道一圈是400米,其中弯道是两段半径相同的圆弧。已知矩形的长宽比例为a:b,求长和宽的具体数值。注意:圆弧的圆心在纵轴线上!#include#include#includeusing namespace std;int main(){ double i=1,a,b,w,k,thy,d; char c; while(cin>>a>>
2013-08-18 16:49:24
972
原创 uva 11800 - Determine the Shape
题意:给定平面上4个点,没有3点共线;判断这4个点能组成怎样的四边形。正方形:Square矩形:Rectangle菱形:Rhombus平行四边形:Parallelogram梯形:Trapezium普通四边形:Ordinary Quadrilateral#include#includeusing namespace std;typedef struct poin
2013-08-17 21:40:55
1446
原创 uva 11437 - Triangle Fun
这是一道简单的计算几何;In the picture below you can see a triangle ABC. Point D, E and F divides the sides BC, CA and AB into ratio 1:2 respectively. That is CD=2BD, AE=2CE and BF=2AF. A, D; B, E and C, F ar
2013-08-17 20:35:20
1014
原创 导盲犬和它的主人
一天,一个盲人带着他的导盲犬过街时,一辆大卡车失去控制,直冲过来,盲人当场被撞死,他的导盲犬为了守卫主人,也一起惨死在车轮底下。主人和狗一起到了天堂门前。一个天使拦住他俩,为难地说:“对不起,现在天堂只剩下一个名额,你们两个中必须有一个去地狱。”主人一听,连忙问:“我的狗又不知道什么是天堂,什么是地狱,能不能让我来决定谁去天堂呢?”天使鄙视地看了这个主人一样,皱起了眉头,她想了想,
2013-08-11 20:36:12
921
原创 POJ 2886 Who Gets the Most Candies? (线段树)
题意:模拟约瑟夫环。有N(1并离开这个圈,他卡片上的数字 A 表明了下一个离开的小孩,如果 A 是大于 0 的,则下个离开的是左手边第 A 个,如果是小于 0 的,则是右手边的第 A 个小孩。游戏将直到所有小孩都离开,在游戏中,第 p 个离开的小孩将得到 F(p) 个糖果,F(p) 是 p 的约数的个数,问谁将得到最多的糖果。输出最幸运的小孩的名字和他可以得到的糖果。 F(p
2013-08-02 09:26:22
1585
原创 POJ 2828 Buy Tickets
题意:有n个的排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍的某一个位置pos。要求把队伍最后的状态输出。逆向思维。我们可以这样考虑,最后一个人一定会得到当前队伍他想要的位置,如果我们往前一个阶段,倒数第二个人也一定能得到他想要的位置……,也就是说,我们可以这样处理,我们把最后一个人插入,然后忽略它,再把倒数第二个人插入。即,我们找出当前队伍他想要插入的位置pos的真正坐
2013-07-31 09:30:41
1575
原创 hdu 2795 Billboard
题意:有一块板,规格为h*w,然后有n张海报,每张海报的规格为1*wi,选择贴海报的位置是:尽量高,同一高度,选择尽量靠左的地方。要求输出每张海报的高度位置。因为最多只有二十万张海报,所以板的最大的长度不会超过二十万,但是要小心,如果板的长度小于n,我们还要用h来建树。我们可以在查询到它的位置的时候,同时去更新当前点的剩余长度,然后回溯更新所有祖先区间。保存它的查询位置。// Time 1
2013-07-30 21:28:27
1868
原创 hdu 1394 Minimum Inversion Number(单点更新)
题意:给你N个数,要求统计它的所有形式的逆序对的最小值。它的所有形式的意思是,不断将数组开头的第一个数放到数组的最后面。分析:主要是利用线段树求逆序数,建的是一棵空树,然后每插入一个点之前,统计大于这个数的有多少个,直到所有的数都插入完成,就结束了逆序树的统计。要得出答案主要是利用了一个结论,如果是0到n的排列,那么如果把第一个数放到最后,对于这个数列,逆序数是减少y[i],而增加
2013-07-27 10:55:38
1416
原创 hdu 4602 Partition
题意:将一个整数 n 进行无序拆分,一共有2^(n-1)种;输入一个整数 k ,问 k 在所有拆分中出现的次数。分析:a[n][k]=a[i][k]+2^(n-k-1);(k通过归纳法得到 a[n][k]=2*a[n-1][k]+2^(n-3);(n>=3),而对所有的 k 都有a[k][k]=1,a[k+1][k]=2,........所以数组a的值与第二维k无关。那么 a[k]=1
2013-07-26 20:44:12
1146
原创 hdu 1754 I Hate It
题意:给你N个数,M个操作,操作分两类。(1)"QAB“,查询区间[A,B]内的最大值。(2)"UAB",将第A个数的值改成B。线段树-单点更新。// Time 843ms; Memory 6448K#include#include#define maxn 1<<19#define inf 1<<30using namespace std;int size,n,sm,al
2013-07-26 14:38:15
1509
原创 hdu 1166 敌兵布阵(线段树-单点更新)
题意:有N个兵营,每个兵营都给出了人数ai(下标从1开始),有四种命令,(1)”Addij",表示第i个营地增加j人。(2)“Sub i j”,表示第i个营地减少j人。(3)“Query ij",查询第i个营地到第j个营地的总人数。(4)”End“,表示命令结束。有三种操作:询问区间总和,增加某个兵营的兵的数目,减少某个兵营的兵的数目。实际上也只有两个。在更新的时候,每到一个区间就
2013-07-26 10:16:41
2043
原创 POJ 2954 Triangle (pick 定理)
题目大意:给出三个点的坐标,问在这三个点坐标里面的整数坐标点有多少个(不包含边上的)匹克定理:I = (A-E) / 2 + 1; A: 表示多边形面积 I : 表示多边形内部的点的个数 E: 表示在多边形上的点的个数 // Time 0ms; Memory 164K#include#include#includeusing namespace std;
2013-07-25 20:36:25
1074
c语言课设-考勤管理程序
2013-06-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人