摘要: 想了好久都没想到怎么去判断当分类dp的时候大于或者等于要求的 值时应该怎么半 后来经过停了 qlx的想法 然后就 敲了出来这题说的是 一个整数 分解成几个素数的和 按这个数的含有的最大素数 进行排列给定的一个数 小于200 求这个数的 第k大的数是什么,然后让你计算出 第k大是组成数是什么.分类进行dp比如起始位进行dp 分类进行的dp可以按照从小到大的排列进行 大的数 只能用比他小的数 进行dp 类似于完全背包,这样在查找的时候也分类进行查找记得从大到小查找ok[cpp] view plaincopyprint?#include #include #include usingnamesp.. 阅读全文
posted @ 2013-12-19 19:50 来自大山深处的菜鸟 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 叉积的运用 ,不断的用叉积去判断 最小的拼图, 刚开始对点进行排序,每个人的排序规则不同做法可能不同,我是按照点的x轴进行x轴相同用y小的在前面,然后每个点按照最下的点开始进行查找 每次从一个点出发然后结束后无论找不找到都得 将出发的那条边删掉,ok然后就可以不断的去瓜分这张大的图,#include #include #include#include#include#include#includeusing namespace std;struct point{ double x,y; point(double a=0,double b=0) {x=a;y=b;}}node[... 阅读全文
posted @ 2013-12-19 19:45 来自大山深处的菜鸟 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 动态规划:...翻牌FAFU 1395 动态规划 阅读全文
posted @ 2013-12-08 19:43 来自大山深处的菜鸟 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 转载 http://blog.csdn.net/niushuai666/article/details/6960985一.简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int pos ){/* 若串 S 中从第pos(S 的下标0≤posS[0]!= S[1],S[1] != S[2],所以S[1]!= T[0],S[2] != T[0].还是从理论上间接比较了。有人疑问又来了,你分析的是不是特殊轻况啊。假设S不变,在S中搜索T=“abaabd”呢?答:这种情况,当比较到S[2]和T[2]时,发现不等,就去看next[2 阅读全文
posted @ 2013-12-06 22:09 来自大山深处的菜鸟 阅读(173) 评论(0) 推荐(0) 编辑
摘要: http://acm.fafu.edu.cn/problem.php?id=1136根据dp建边,建边的时候记得判断如果原本数的大小就ok了 好久没在自家OJ上刷了#include #include#include#include#include//称这个机会吧EK 和DINIC都写一遍复习一下;using namespace std;int dp[1105],a[1105],n,max_val,NUM;int map[1105][1105],flow[1105][1105];int first[1105],next[1000000],v[1000000];int dist[1105];voi 阅读全文
posted @ 2013-12-06 20:38 来自大山深处的菜鸟 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 字符串简单的有 LIS (最长递增子序列的三种方法)LCSLDS嘎嘎 搞了一早上 阅读全文
posted @ 2013-12-03 12:20 来自大山深处的菜鸟 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 转载的弱校ACM奋斗史九月 15th, 2011 | Posted by diaorui in 故事杂谈 欢迎转载,转载请注明出处。55这是一篇老文章,不过由于无法找到最初的发文地址,这里就不能粘贴原文网址了。本站转载此文与ACMer们共勉。感谢acmerfight供稿。题解:还记得2年前的一个晚上,我和一个女孩一起写完了这篇文章。写完后,她哭了,我笑了。然后,她走了,我哭了。2年后,我又找到她,这次,我没有让她走掉,她成了我的新娘。不知道什么时候,开始知道ACM;也不知道什么时候,开始喜欢上ACM。但是,我知道,我喜欢上了,而且不会后悔。我是大一的时候进的学校ACM队,那个时候,一切都是冰冷 阅读全文
posted @ 2013-12-02 15:56 来自大山深处的菜鸟 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 计算两个凸包之间的最小距离,旋转卡壳法详解在旋转卡壳的用法之计算两个凸 包上的最近距离#include #include#include#includeusing namespace std;const double eps=1e-10;const double INF=1e10;struct point{ double x,y; point (double a=0,double b=0) { x=a; y=b; }};double min_val(double a,double b){ return a>b?b:a;}int dcmp... 阅读全文
posted @ 2013-12-01 21:15 来自大山深处的菜鸟 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 以POJ的2420为例来说明一下,我感觉这个应该算得上是二分吧.先进行点的变换,确定当前最优,在二分距离,这样应该就能得出答案了吧!#include #include#include#includeusing namespace std;struct point{ double x,y; point (double a=0,double b=0){x=a;y=b;}}p[105];double work1(point a,int n){ int i; double ans; ans=0; for(i=0;i0.1) { f... 阅读全文
posted @ 2013-12-01 10:45 来自大山深处的菜鸟 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 与POJ1226为例要知道在一个格点多边形内 知道期内部的点数 Q,边上的点数L,就可以知道他的面积pick定理及 S=Q+L/2-1;然后 还有边上的点数除了多边形的顶点外,还有一些点该怎么求呢,嘎嘎,记得之前欧几里得吗?两个点的差值,及X轴的差值和Y轴的差值,然后很自然的想到了最大公约数为什么最大公约数就是经过的整格点的个数呢?当时我是这么想的,当X与Y增长相同的时候,他们的经过的整格点数无疑是X个,当其中一个n倍数式的增加的时候同样,因为之前的1:1的增长现在只不过变成了1:n罢了.那当两个同时增长的时候分别增长n,和m倍.的时候只不过比变成了n:m罢了嘎嘎现在应该明白了好了#inclu 阅读全文
posted @ 2013-11-30 21:27 来自大山深处的菜鸟 阅读(366) 评论(0) 推荐(0) 编辑