![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
POJ
cadongllas
这个作者很懒,什么都没留下…
展开
-
【计算几何入门】poj 1269
嗯终于决定开始补计算几何了 从最基础的题目开始做 这题意思就是判断线段的三种位置关系没什么可说的 因为输出double用了 lf 调试了很长时间。。 哦对有个问题,那就是这个题目好像没有考虑两个线段首尾相连且斜率相同的情况? 本题的收获:计算几何因为对精度的要求很高,所以不能用解析几何的办法求斜率什么的 ,必须化除法为乘法,这样才能保证精度。 其次,能用叉乘的地方尽量用原创 2016-04-06 22:59:29 · 250 阅读 · 0 评论 -
poj 3026 最小生成树
题意:在一个y行 x列的迷宫中,有可行走的通路空格’ ‘,不可行走的墙’#’,还有两种英文字母A和S,现在从S出发,要求用最短的路径L连接所有字母,输出这条路径L的总长度 最小生成树 #include #include #include #include #include #include #include #define rep(i, j, k) for(int i =原创 2016-09-03 20:01:52 · 196 阅读 · 0 评论 -
poj 2031 Building a Space Station
题意: 就是给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通。如果两个球有重叠的部分则算为已连通,无需再搭桥。求搭建通路的最小费用 还是最小生成树。。 #include #include #include #include #include #include #define rep(i, j, k) for(int i = j; i <= k; i原创 2016-09-03 15:46:23 · 147 阅读 · 0 评论 -
poj 1251 最小生成树
题意:用桥把n个岛屿连接起来 直接最小生成树就行 #include #include #include #include #include #define rep(i, j, k) for(int i = j; i <= k; i++) #define maxn 200009 using namespace std; int n, m, tt, father[1009];原创 2016-09-03 15:32:26 · 300 阅读 · 0 评论 -
poj 2825 蜜汁构造
题意:给定n,让找一个n的排列,值得序列abs(ai - i)构成的新的序列是0~(n - 1)的一个新的排列 蜜汁构造题,首先写两列数,第一行表示下标,第二行表示ai,然后第一行1-n第二行n-1倒着写,然后分成四段,前两段是差值为正,后两段因为绝对值的原因取负 然后把前两段的尾部改变位置以得到0-(n -1)之间的每个值,得到序列2k+1, [4k ~ 3k+2], [3k ~ 2原创 2016-09-03 11:04:03 · 765 阅读 · 0 评论 -
poj 3579 二分
题意:给出N个数,对于存有每两个数的差值的序列求中位数,如果这个序列有偶数个元素,就取中间偏小的作为中位数。N 然后每次二分一个差值,进行判断 判断的时候每次o(n)遍历,总的复杂度nlogn #include #include #include #include #define rep(i, j, k) for(int i = j; i <= k; i++) using原创 2016-09-03 10:18:26 · 211 阅读 · 0 评论 -
poj 3111 二分水题
题意:有n个物品的重量和价值分别是w[i]和v[i],从中选出K个物品使得单位重量的价值最大 贪心的反例是显然的,nyoj的样例就是 本题是个二分的很好例子,可以理解成二分得到一个阈值,然后判断是否够k个,以此得到最优解,而这个正确性也是显然的 #include #include #include #include #define rep(i, j,原创 2016-09-02 23:08:01 · 249 阅读 · 0 评论 -
poj 3122 二分水题
题意不难:有n块高度都为1但底面半径为r不等的圆柱体奶酪,作者邀请了f个朋友参加了他的party,他要把这些奶酪平均分给f+1人,每个人分得奶酪的体积必须相等(这个值是确定的),形状就没有要求。现在要你求出所有人都能够得到的最大块奶酪的体积是多少 直接二分即可 下界为0,即每人都分不到pie 上界为MaxSize,每人都得到整个pie,而且那个pie为所有pie中最大的 注意下原创 2016-09-02 22:54:32 · 356 阅读 · 0 评论 -
POJ 2289 Jamie's Contact Groups 二分图多重匹配
给定一个规模为n的名单,要将名单中的人归到m个组中,给出每个人可能的分组号,需要确定一种分配方案,是的最大规模的组最小 建图之后,算是一个匈牙利算法的改进,看着kuangbin的模板写的 #include #include #include #include const int M=2010; int bmap[M][M]; bool bmask[M]; int nx,ny; int原创 2016-09-11 23:23:31 · 532 阅读 · 0 评论 -
POJ 1459 Power Network 网络流
给几个发电站,给几个消耗站,再给几个转发点。 发电站只发电,消耗站只消耗电,转发点只是转发电,再给各个传送线的传电能力。 问你消耗站能获得的最多电是多少 很明显电能跟流是类似的,点能从中转站流走可以看出网络流的影子 所以就增加一个超级源点,和超级汇点再把所给的发电站都和超级源点相连,把所给的消耗战都和超级汇点相连最后求最大流即可 #include #include #incl原创 2016-09-11 21:36:28 · 213 阅读 · 0 评论 -
POJ 3080 Blue Jeans
求n个长度为60的字符串的最长连续公共子串 直接暴力枚举第一个串的每个子串,然后判断是否是后面串的子串即可 kmp的简单应用 #include #include #include #include #define rep(i, j, k) for(int i = j; i <= k; i++) using namespace std; int nex[100];原创 2016-09-11 21:04:32 · 248 阅读 · 0 评论 -
POJ 2752 Seek the Name, Seek the Fame
给定一个字符串s,从小到大输出s中既是前缀又是后缀的子串的长度 从最后一位开始回溯,若s[next[n-1]] == s[n-1],则子串s[0,1,2,...,next[n-1]]是满足条件的子串。然后判断s[next[next[n-1]]] == s[n-1]是否成立,这样一直回滚,直到next[next[.....next[n-1]]] == -1停止,就可以算出所有符合条件的解原创 2016-09-11 21:01:33 · 184 阅读 · 0 评论 -
POJ 2406 Power Strings
给定一个字符串,让你求出他最多由几个相同的连续子串连接而成 还是用n - next[n]求出循环节,但是有个比较坑的地方就是一定要判断循环节的长度能否整除总长度 #include #include #include #include #define rep(i, j, k) for(int i = j; i <= k; i++) #define maxn 1000009原创 2016-09-11 20:48:28 · 274 阅读 · 0 评论 -
poj 2421
题意:还是给你n个点,然后求最小生成树。特殊之处在于有一些点之间已经连上了边 最小生成树直接做#include #include #include #include #include #define rep(i, j, k) for(int i = j; i <= k; i++) #define maxn 200009 using namespace std; int n,原创 2016-09-03 20:15:40 · 180 阅读 · 0 评论