上一页 1 ··· 3 4 5 6 7 8 下一页

2012年2月26日

poj 1195 Mobile phones 二维树状数组

摘要: 题意:n*n的矩阵定义两种操作:1 x y a 把(x,y)的权值加a2 l b r t 查询 子矩阵(l,b) ~(r,t) 的和思路:二维树状数组 1 #include<iostream> 2 using namespace std; 3 #define MAXN 1200 4 int tree[MAXN][MAXN]; 5 int n; 6 int lowbit(int x) 7 { 8 return x&(x^(x-1)); 9 }10 void update(int x,int y,int a)11 {12 for(int i=x;i<=n;i+=lowbi 阅读全文

posted @ 2012-02-26 09:48 myoi 阅读(195) 评论(0) 推荐(0) 编辑

2012年2月25日

poj 1031 Fence 计算几何

摘要: 物理题+数学题+信息学题 1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 #define MAXN 101 5 #define PI 3.1415926 6 struct point 7 { 8 double x,y; 9 };10 point a[MAXN];11 double h,k;12 double Max=0,Min=0,sum=0;13 int n;14 double angle(point A,point B)15 {16 double k1=atan2(A.y,A.x);17 阅读全文

posted @ 2012-02-25 18:20 myoi 阅读(512) 评论(0) 推荐(1) 编辑

uva 12424 Answering Queries on a Tree LCA+线段树

摘要: 题意:给一棵树,每个节点都有颜色,最多有10种颜色定义:两种操作0 u c 把编号为u的节点颜色改为c1 u v 求树上u~v的路径中,颜色出现的次数的最大值思路:用color[i][j]记录根节点到节点i,j颜色的出现次数。 c[i]记录i的颜色先用ST求LCA 对于每个询问 ans=max(color[u][i]+color[v][i]-2*color[LCA(u,v)][i]+c[LCA(u,v)]==i)然后dfs,记录开始时间low[i]和结束时间high[i],更改操作相当于,更改一个区间[low[i],high[i]] 线段树求解 1 #include<iostream&g 阅读全文

posted @ 2012-02-25 18:00 myoi 阅读(375) 评论(0) 推荐(0) 编辑

2012年2月22日

uva 12429 Finding Magic Triplets 树状数组

摘要: 题意:求有几组满足 a+b^2-c^3=0(mod k) 1<=a<=b<=c<=n (a,b,c)。思路:树状数组注意到 当b固定时 考虑a 1~b%k有b/k+1 b%k+1~k 有b/k个从大至小枚举b,每次tree[b^3%k]++ 查询 (1+b*b)%k~(b%k+b*b)%k 总和sum*(b/k+1)+(sum总-sum)*b/k 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 using nam 阅读全文

posted @ 2012-02-22 19:02 myoi 阅读(349) 评论(0) 推荐(0) 编辑

2012年2月20日

uva 12426 Counting Triangles 计算几何

摘要: 题意:给一个凸多边形,求以凸多边形的顶点为顶点的三角形中,有多少个面积小于给定数值K?思路:旋转卡壳+二分答案时间复杂度:n^2logn 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 using namespace std; 6 #define MAXN 1001 7 struct point 8 { 9 long long x,y; 10 point() {} 11 point(long long x0,long long(y0)) 阅读全文

posted @ 2012-02-20 21:17 myoi 阅读(394) 评论(0) 推荐(0) 编辑

2012年2月19日

poj 1039 Pipe 计算几何

摘要: 题意:给一个曲折的管道,求从入口射入的光线到达最远的位置的X左标.思路: 到达最远的光线一定经过上方和下方的折点,枚举即可。 1 #include<iostream> 2 #include<cmath> 3 #include<cstdio> 4 using namespace std; 5 #define MAXN 21 6 #define EPS 1e-8 7 #define INF 1<<30 8 struct point 9 { 10 double x,y; 11 point() {} 12 point(double x0,double y 阅读全文

posted @ 2012-02-19 18:15 myoi 阅读(232) 评论(0) 推荐(0) 编辑

poj 1066 Treasure Hunt 线段相交

摘要: 题意:给出一个100*100的正方形区域,有若干端点在区域边界的线段是墙,然后给出宝藏位置,要求从区域外部开辟到宝藏所在位置的一条路径,使得开辟路径所需要打通的墙壁数最少("打通一堵墙"即在墙壁所在线段中间位置开一空间以连通外界),输出应打通墙壁的个数(包括边界上墙壁)。思路:因为墙的端点都在区域边界上,所以从区域外部到宝藏所在位置的路径一定是直线。可以枚举每个入口,和宝藏位置连成线段,输出与给定线段交点个数的最小值+1。(严格相交)入口可以选取所有线段的端点。n=0 输出1 1 #include<iostream> 2 #include<cmath> 阅读全文

posted @ 2012-02-19 10:33 myoi 阅读(210) 评论(0) 推荐(0) 编辑

2012年2月13日

poj 3580 SuperMemo 数据结构

摘要: 题意:给一堆操作,维护数列。思路:平衡树 splayP.S. 太恶心了…… 1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 using namespace std; 5 #define MAXN 110004 6 #define MAXM 110000 7 struct node 8 { 9 int left,right,father; 10 int value,size,min; 11 int adt; 12 bool rev; 13 }; 14 int INF=987... 阅读全文

posted @ 2012-02-13 22:36 myoi 阅读(577) 评论(0) 推荐(0) 编辑

2012年2月10日

poj 3481 Double Queue 数据结构 STL

摘要: 题意:定义3种操作1 x y 把编号为x,权值为y的人加入队列2 询问权值最大的人的编号3 询问权值最小的人的编号思路:(1) Splay (2)STL set 1 #include<iostream> 2 using namespace std; 3 #define MAXN 1000001 4 struct node 5 { 6 int left,right,father; 7 int key; 8 int leftnum,rightnum; 9 }; 10 node tree[MAXN]; 11 int root=0; 12 void up... 阅读全文

posted @ 2012-02-10 21:36 myoi 阅读(346) 评论(0) 推荐(0) 编辑

poj 2001 Shortest Prefixes Trie树

摘要: 题意:输入n个字符串,求每个字符串的最短非公共前缀,若没有输出其本身思路:Trie水题 1 #include<iostream> 2 using namespace std; 3 #define MAXL 21 4 #define MAXN 1001 5 struct node 6 { 7 int count; 8 node *next[30]; 9 };10 int n=0;11 node *root;12 int top=0;13 int end_node;14 node memo[MAXN*MAXL];15 void insert(char c[])16 {17 ... 阅读全文

posted @ 2012-02-10 17:58 myoi 阅读(219) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 下一页

导航