2013年8月19日
摘要: 链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1136题意:裸的最长上升子序列。复杂度O(n^2).#include#include#include#include#include#include#includeusing namespace std;const int maxn=1005;int n;int a[maxn],dp[maxn];int LIS(){ dp[0]=1; int ans=1; for(int i=1;is && a[j]ans) ans=dp[i];... 阅读全文
posted @ 2013-08-19 11:21 ∑求和 阅读(190) 评论(0) 推荐(0)
2013年8月18日
摘要: Retrievedfrom "http://wiki.codeblocks.org/index.php?title=Keyboard_Shortcuts"Keyboard ShortcutsEditor FunctionShortcut KeyUndo last actionCtrl + ZRedo last actionCtrl + Shift + ZCut selected textCtrl + XCopy selected textCtrl + CPaste text from clipboardCtrl + VSelect all textCtrl + ASwap 阅读全文
posted @ 2013-08-18 18:15 ∑求和 阅读(379) 评论(0) 推荐(0)
摘要: 链接:http://www.cnblogs.com/54zyq/p/3222818.html题意:中文题~思路:线段树点修改,求区间中的最大值。#include#includeusing namespace std;#define lson l,m,rt>1; build(lson); build(rson); PushUP(rt);}void update(int p,int s,int l,int r,int rt){ if(l==r) { MAX[rt]=s; return; } int m=(l+r)>>1; ... 阅读全文
posted @ 2013-08-18 16:45 ∑求和 阅读(184) 评论(0) 推荐(0)
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4666题意:给出若干个n维的点,求它们的最远曼哈段距离。参考:http://www.cnblogs.com/lmnx/articles/2479747.htmlPOJ 2926 Requirements:http://poj.org/problem?id=2926#include#includeusing namespace std;const int maxn=60000+5;int a[maxn][7];int q,k,w;multiset m[40];void solve(int s,int fl 阅读全文
posted @ 2013-08-18 11:23 ∑求和 阅读(192) 评论(0) 推荐(0)
2013年8月17日
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681题意:给三个串a,b,c,要求找到一个最长的d串,满足d是a和b的字串,c是d的子序列。思路:大体是把a,b串分为三个部分,中间一部分是包含c的子串,要想要d最长,所以中间这一截长度要最小,所以这一截的开始要是c[0],结尾要是c[n-1],枚举出这些个位置。假设这个串在a,b中的首尾位置分别为ai,aj,bi,bj,再求出ai,bi之前最长公共子序列的长度dp[i-1][j-1],ai,bi之后最长公共子序列的长度dp[i+1][j+1],答案为这两个公共子序列的长度加上c的长度的最大值。 阅读全文
posted @ 2013-08-17 19:29 ∑求和 阅读(127) 评论(0) 推荐(0)
2013年8月16日
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4667题意:给n个圆m个三角形,求包住它们所需的最小长度。思路:比赛的时候只想到了三角形用凸包围一下,圆不知道怎么处理。暴力一点的方法呢,把圆均分成了2000个整点,然后求凸包,圆弧上的弧线也用折线替代,这样对精度有损,一开始分成1000个点的时候精度就不够,wa掉了,如果圆上的弧线还是算弧长的话,可能还是可以过的。解题报告上说的是求任意两圆的外切线,得到所有切点,三角形顶点和圆的切点,三角形的顶点来求凸包。暴力:#include#include#include#include#include#incl 阅读全文
posted @ 2013-08-16 09:37 ∑求和 阅读(751) 评论(0) 推荐(0)
2013年8月9日
摘要: 题意:给出两个凸多面体行星,求出二者重心的最近距离。行星密度均匀分布,可以旋转与平移。思路:由于行星可以任意放,所以要想他们重心距离最近,那么两个行星必然有两个面贴在一起。所以题目转换成求凸多面体的重心到面的最近距离。由于题目给出的是点,所以先求三维凸包,求出面,再算重心到面的距离。多面体重心的计算,先把多面体分解成若干个四面体,重心C=( ∑ Ai*Ci ) / A, Ci=(四面体四个顶点坐标和)/4, Ai是四面体体积,用混合积除以6,A是多面体总体积。 阅读全文
posted @ 2013-08-09 19:17 ∑求和 阅读(214) 评论(0) 推荐(0)
2013年8月8日
摘要: 题意:给若干无限长的圆柱,知道圆柱轴心上的一个点和同平面上的另外两个点,还有半径,判断是否有圆柱相交,不相交则输出最小距离。思路:由于已知同平面上的三个点,其中一个点还是轴线上的点,所以可以确定出一个平面,然后求出法向量,法向量和轴心上的点就可以确定出轴心直线了。然后计算任意两条空间直线间的距离,由于只有30个圆柱,暴力嘛,用距离减去两圆柱的半径和,小于等于0则相交,大于0就不相交。空间直线的距离d=|AB*n| / |n| (AB表示异面直线任意2点的连线,n表示法向量,法向量为两条异面直线方向向量的叉积,|n|表示模。#include#include#include#include#inc 阅读全文
posted @ 2013-08-08 21:48 ∑求和 阅读(345) 评论(0) 推荐(0)
摘要: 链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=538&page=show_problem&problem=2250题意:判断两个空间三角形是否相交思路:恩恩,就判断一下。#include#include#include#include#include#include#includeusing namespace std;const int maxn=1000;const double eps=1e-8;struct Point3{ double x 阅读全文
posted @ 2013-08-08 21:19 ∑求和 阅读(328) 评论(0) 推荐(0)
2013年8月7日
摘要: 链接:http://poj.org/problem?id=3384题意:一个凸多边形,用两个半径相等的圆来覆盖,要求覆盖面积最大时的圆心坐标。思路:把凸多边形每条边向内移r的距离,用半平面交求出新的多边形,由于要使覆盖面积最大,所以两个圆心应该是多边形的顶点中距离最远的两个。要注意当这个多边形退化为一个点时,此时两个圆心是重合的。一直wa,内伤,最后发现是模板,的问题。。。《训练指南》上的半平面交模板,当半平面交退化为点和线段时返回值都是0,不适合此处,然后改了一下onleft()函数,如果最后的结果其实只有一个点,返回的m不为1,而是重复的个数,虽然这道题过了,但是算法有问题,或可用增量法求 阅读全文
posted @ 2013-08-07 15:53 ∑求和 阅读(206) 评论(0) 推荐(0)