2015 summer training
Below_Crusder
这个作者很懒,什么都没留下…
展开
-
poj 3268 Silver Cow Party
题意: 题目给定点X 求点X到任意其他一点Y的最短距离和Y到X的最短距离之和的最大值 自己掌握的算法太少 我的方法就是两次原创 2015-07-07 22:25:25 · 425 阅读 · 0 评论 -
POJ 1228 稳定凸包问题
题意:给出一些凸包上的点 这些点均是凸包上的点 判断该凸包是否为稳定凸包 即是否每条边上是否至少有三个点 改下凸包的模板即可#include #include "stdio.h"#include "stdlib.h"#include "string.h"#include "math.h"#include "algorithm"#include using namespace原创 2015-08-15 15:36:00 · 339 阅读 · 0 评论 -
POJ2186(tarjan求连通分量)
题意:a喜欢b,b喜欢c,则a喜欢c 现在问被所有其他的牛喜欢的牛的只数tarjan求强连通分量并缩点 判断缩点后的度数,度数为0的点超过一个则答案为0Source CodeProblem: 2186 User: d54492689Memory: 1360K Time: 782MSLanguage: C++原创 2015-07-24 16:42:49 · 424 阅读 · 0 评论 -
POJ1142 暴力质因数分解+素数测试
#include #include "stdio.h"#include "stdlib.h"#include "string.h"#include "math.h"using namespace std;#define N 50005typedef long long int ll;int primelist[1000]={0};int isprime(in原创 2015-09-17 20:08:54 · 565 阅读 · 0 评论 -
POJ 2653 线段相交问题
题意: 按顺序给出一堆线段的端点坐标 求最后没被覆盖的线段的序号 被覆盖(即后放入与先放入的相交) 利用叉积判断即可#include #include "stdio.h"#include "stdlib.h"#include "string.h"#include "math.h"#include "algorithm"#include using namespace原创 2015-08-15 15:44:40 · 382 阅读 · 0 评论 -
POJ2985 (线段树+并查集)
题目链接:http://poj.org/problem?id=2985题意:输入n(猫的数量)和m(操作的总数),求分组以及合并操作后,第K大的组的规模大小解题思路:并查集+线段树Source Code/*以分组的规模作为划分线段的标准有n只猫则可能存在的分组中规模最大的为n,规模最小的为1tree[k]表示规模为tree[k].left---tree[原创 2015-07-12 16:30:04 · 690 阅读 · 0 评论 -
POJ 1228 求多边形重心
题意给出多边形的各个点 求多边形重心 将多边形拆解成多个三角形 求解出每个三角形的面积和重心 三角形重心为((x1+x2+x3)/3,(y1+y2+y3)/3) 面积叉积/2可得 最后根据积分的方法可得多边形重心#include #include "stdio.h"#include "stdlib.h"#include "string.h"#include "math原创 2015-08-15 15:40:05 · 436 阅读 · 0 评论 -
hdu 1069 dp
题意:给出n个砖块(长,宽,高) 砖块有很多摆法比如10*20*30的砖块 有(10 20 30)(10 30 20)(20 10 30)(20 10 30 )等种摆法利用这些砖块叠出塔形建筑 即下面的砖块长和宽一定要比上面的大 求满足条件的塔形建筑的最大高度思路:进行排序按照砖块的长和宽进行升序排序 然后利用DP逐一推倒即可#include #i原创 2015-08-14 20:20:35 · 292 阅读 · 0 评论 -
POJ 2352 Stars(树状数组)
链接:http://poj.org/problem?id=2352/*刚学完树状数组 采用树状数组做 c[i]记录的是 i管辖区域内元素的个数 level[i] 记录的是左下角星星个数为i的点的个数总和 因为输入是按照Y的递增输入的 如果输入的Y的大小相同,那么后者输入的X一定比前者大 按照这个规律所以后者输入的不可能会出现在前者的左下角区域原创 2015-07-08 13:32:36 · 414 阅读 · 0 评论 -
poj 3253 Fence Repair(哈夫曼+二叉堆)
题意:He wants to cut a board of length 21 into pieces of lengths 8, 5, and 8. The original board measures 8+5+8=21. The first cut will cost 21, and should be used to cut the board into pieces measur原创 2015-07-07 23:28:12 · 460 阅读 · 0 评论 -
hdu1102 克鲁斯卡尔+并查集
#include #include #include #include "algorithm"using namespace std;int n,pos;int op[10000];int ed[10000];int dis[10000];int tmp[10000];int father[110];int cmp(int a,int b){return原创 2015-09-08 19:04:48 · 374 阅读 · 0 评论 -
匈牙利算法模板
#include #include "stdio.h"#include "stdlib.h"#include "string.h"#include "math.h"#include using namespace std;int result[400];//记录v2中点匹配的点的编号int state[400];//记录v2中的每个点是否被搜索过int dat原创 2015-09-17 20:05:54 · 320 阅读 · 0 评论 -
红黑树的插入创建(左旋 右旋)
红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。除了二叉查找树的性质,同时还有以下的五大性质:性质1. 节点是红色或黑色。性质2. 根节点是黑色。性质3 每个叶节点(NIL节点,空节点)是黑色的。性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)性质5. 从任一节点到其每个叶子的所有路径都包含相同数原创 2015-07-06 20:56:54 · 2180 阅读 · 0 评论 -
hdu-multi-university contest 4
1001 hdu-5327:原创 2015-07-31 16:26:44 · 348 阅读 · 0 评论 -
hdu5289-multi-university contest 1 -1002
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5288求连续区间范围内最大值最小值差值小于K的个数,当然区间为[x,x],只有一个元素也为1个我的思路是开三个数组low[i],max1[i],min1[i]分别记录该点可向左连通满足条件的最远的点的下标,该点到最远点的区间内的最大值的下标,该点到最远点区间内最小值的小标,然后边输入边统计并维护原创 2015-07-22 09:32:48 · 342 阅读 · 0 评论 -
hdu 5339 暴力枚举
题意:BC上有中文版的题思路: 降序排序一次 暴力即可 时间复杂度为O(2 ^n)#include #include "stdio.h"#include "stdlib.h"#include "string.h"#include "math.h"#include "algorithm"#include using namespace std;#define m原创 2015-08-15 15:23:00 · 461 阅读 · 0 评论 -
BC round 50
题意:给出一些整点点 判断这些点中是否可以构成正三角,正四边,正五边形,正六边形 输出答案的总数被题解秀智商了 整点不可能构造出正三角 正五边 正六边 因此暴力直接判断构成正四边形的个数即可!#include #include "stdio.h"#include "stdlib.h"#include "string.h"#include "math.h"#i原创 2015-08-15 14:14:57 · 335 阅读 · 0 评论 -
hdu5301-multi-university contest 2 -1002
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5301欢迎参加——BestCoder周年纪念赛(高质量题目+多重奖励)BuildingsTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe原创 2015-07-24 11:29:34 · 448 阅读 · 0 评论 -
线段树模板&&树状数组模板
线段树模板#include #include "stdio.h"#include "stdlib.h"#include "string.h"#define N 50005using namespace std;struct node { int date,left,right;};struct node tree[Nvoid build(int k原创 2015-07-12 13:30:56 · 342 阅读 · 0 评论 -
poj2395(最小生成树最大边)
水题 最小生成树求最大边 表示并查集+kruskal真的好用Source Code#include #include "stdio.h"#include "stdlib.h"#include "string.h"#include "math.h"#include using namespace std;#define inf 99999999int a[1原创 2015-07-29 16:23:50 · 540 阅读 · 0 评论 -
POJ 3264(线段树求区间内最大值和最小值)
题目链接:http://poj.org/problem?id=3264题意:求解区间【a,b】内最大值和最小值的差值解题思路:建立线段树,每个节点包含max和min,再按照一般线段树的方法即可#include "stdio.h"#include "stdlib.h"#define N 50005int man,mnn;int maxn(int a,int b){retur原创 2015-07-12 13:34:58 · 965 阅读 · 0 评论 -
hdu 1166(线段树或者树状数组)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1166可以采用线段树也可以是树状数组树状数组:#include #include "stdio.h"#include "stdlib.h"#define maxn 50005using namespace std;int c[maxn]={0};int lowbit(int x)原创 2015-07-09 16:30:13 · 600 阅读 · 0 评论 -
快速幂模板
int B_pow(int a,int b) //快速幂 { int ans=1; while(b) { if(b&1) ans*=a; a*=a; b>>=1; } return ans; }POJ 3070(矩阵快速幂)#include #include "原创 2015-09-17 20:03:56 · 329 阅读 · 0 评论