模板
Modiz
这个作者很懒,什么都没留下…
展开
-
[逆序数]用归并排序求逆序数。时间复杂度(n*logn)
首先解释下什么是归并排序吧。就是有两个原创 2014-05-12 20:22:20 · 1413 阅读 · 0 评论 -
扩展欧几里得模板,求正整数解。
#include using namespace std;int x,y,q;int exgcd(int a,int b){ if (b==0) { x=1; y=0; q=a; return 0; } else { exgcd(b,a%b); int t=x; x=y; y=t-a/b*y; } return 0;}int main(){原创 2014-10-09 21:37:47 · 876 阅读 · 0 评论 -
判断平面上两线段是否相交,顺便解释判断点在直线的位置...
首先引出计算几何学中一个最基本的问题:如何判断向量在的顺时针方向还是逆时针方向?把p0定为原点,p1的坐标是(x1,y1),p2的坐标是(x2,y2)。向量的叉积(cross product)实际上就是矩阵的行列式:当叉积为正时,说明在的顺时针方向上;叉积为0说明两向量共线(同向或反向)。当同时满足:(1)和在的两侧(即一个顺时针方向上,一个在逆时针方向上)(2)和在的两侧转载 2013-08-12 16:03:12 · 1535 阅读 · 0 评论 -
判断线段是否相交...并求出交点。
判断直线是否相交,貌似很容易,直接用一个向量叉乘公式:x1*y2-x2*y1.如果结果为0,则直线是平行或者重合,否则必然相交...但如何判断两条线段是否相交呢?我们给出了两条线段的四个端点,这两条条线段必须跨过另一条线段则必然相交,所以只需要算出两个端点分别在一条线段的两侧就OK了,至于怎么算是否在端点两侧还是用到上面的叉乘公式,两个端点的结果的积为负数,则在两侧,当然这里有种特殊情况需要处原创 2013-08-05 07:55:25 · 1780 阅读 · 0 评论 -
【模板】链表
#include #include #include typedef struct Node{ int data; struct Node *next;}*LinkList;LinkList L;LinkList InitList(){ int e; scanf("%d",&e); while(e!=-1) { Nod原创 2014-10-03 12:59:07 · 647 阅读 · 0 评论 -
拓扑排序。
拓扑排序用来解决有向无环图原创 2014-07-11 18:31:38 · 666 阅读 · 0 评论 -
hihoCoder 最长回文子串(manacher算法:马拉车)
http://hihocoder.com/problemset/problem/1032原创 2014-09-10 21:07:39 · 962 阅读 · 0 评论 -
1的平方加到n的平方
#include #include #include #include #include #include #include #include #include #include #include #include #define LL __int64#define eps 1e-8using namespace std;int main(){ LL n; wh原创 2014-12-01 17:09:16 · 3566 阅读 · 0 评论 -
poj3348(求凸包的面积)graham算法。
CowsTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 7157 Accepted: 3285DescriptionYour friend to the south is interested in building fences and turnin原创 2015-03-20 11:58:14 · 497 阅读 · 0 评论 -
Modiz 《几何模板》
#include#include#include#include#include#include#define eps 1e-9#includeusing namespace std;const double PI = acos(-1.0);int dcmp( double x ){ if( abs(x) < eps ) return 0;else return x < 0?-原创 2014-09-26 19:01:45 · 714 阅读 · 0 评论 -
poj2420(模拟退火)
A Star not a Tree?Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3965 Accepted: 1962DescriptionLuke wants to upgrade his home computer network from 1原创 2015-03-21 19:15:03 · 1273 阅读 · 0 评论 -
求解次方的次方。pow(a,pow(b,c))%p
其解释是pow(a,pow(b,c)%phi[p])%p.// 求pow(a,pow(b,c)) % p #include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include原创 2015-03-30 21:08:57 · 1416 阅读 · 0 评论 -
【模板】母函数(生成函数)
什么是母函数呢?原创 2014-09-19 17:33:07 · 732 阅读 · 0 评论 -
poj1753高斯消元法和位运算枚举法。
Flip GameTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 32829 Accepted: 14348DescriptionFlip game is played on a rectangular 4x4 field with two-sided原创 2015-04-02 18:33:08 · 643 阅读 · 0 评论 -
卢卡斯定理 解决大数组合数求余。
【卢卡斯(Lucas)定理】Lucas定理用来求C(a,b)mod p的值,其中p为素数。数学表达式为:Lucas(a,b,q)=C(a%q,b%q)*Lucas(a/p,b/p,p);Lucas(a,0,q)=0;通过这个定理就可以很方便的把大数的组合转化成小数。但其中还是要求C(a%q,b%q)%p,所以这里引入逆元来求。转载 2014-07-22 14:26:34 · 1439 阅读 · 0 评论 -
暑假第一天,很久没写代码了。求阶乘的位数。
有用到斯特林公式: n!=sqrt(2*Pi*n)+(n/e)^n 然后用log10(n!),取整+1就OK。 e=1+1+1/2!+1/3!+…+1/n!+….e=exp(1.0);#include #include #define P 3.1415926int main(){ int t,n; double E; E=exp(1.0); scanf("%d",&t)原创 2013-07-13 09:02:05 · 603 阅读 · 0 评论 -
<模板>Hdu4869 Turn the pokers 组合数求余 费马小定理
Turn the pokersTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1115 Accepted Submission(s): 418Problem DescriptionDuring summ原创 2014-07-25 15:29:56 · 1057 阅读 · 0 评论 -
<模板>zoj3696 Alien's Organ 概率论:泊松分布
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3696 文章转自:http://www.cnblogs.com/Duahanlang/archive/2013/05/07/3065472.htmlThere's an alien whose name is Marjar. It is an univers转载 2013-05-07 22:14:51 · 1121 阅读 · 0 评论 -
(CF) D. A Lot of Games
D. A Lot of Gamestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputAndrew, Fedor and Alex are inventive guys.原创 2014-08-09 19:04:48 · 685 阅读 · 0 评论 -
hdu4927 Series 1(大数加减乘除)
Series 1Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 691 Accepted Submission(s): 256Problem DescriptionLet A be an integ原创 2014-08-08 14:37:30 · 714 阅读 · 0 评论 -
高精度abcdefg加减乘除模板。
#include #include using namespace std;inline int compare(string str1, string str2){ if(str1.size() > str2.size()) //长度长的整数大于长度小的整数 return 1; else if(str1.size() < str2.siz原创 2014-08-07 19:42:48 · 723 阅读 · 0 评论 -
isstreamstream 头文件#include <sstream>
http://blog.csdn.net/modiz/article/details/9464309原创 2014-09-06 11:14:06 · 3052 阅读 · 0 评论 -
hiho一下第三周 kmp算法。
题目1 : KMP算法时间限制:1000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一只河蟹,于是河蟹就向小Hi和小Ho提出了那个经典的问题:“小Hi和小Ho,你们能不能够判断一段文字(原串原创 2014-07-24 09:25:12 · 829 阅读 · 0 评论 -
最长公共子列和最长公共子串。LCS && LCSL
最长公共子串:在两个字符串中找到一个最长的公共子串,要求子串在原串中是连续的。最长公共子序列:在两个字符串中找到一个最长的公共子串,不要求子串在原串中是连续的。原创 2014-07-19 10:51:34 · 955 阅读 · 0 评论 -
矩阵快速幂+符号重载。
这本应该是昨天写的原创 2014-07-11 11:26:12 · 946 阅读 · 0 评论 -
HDU4919 Exclusive or(Java大数推公式)
题意:求题目中的式子 - -b思路:推递推公式 比赛时候队友就说数字上有关系 but没推出来 - -b 题解有过程:推的过程中最巧妙的就是利用异或的性质 相邻两个数字相当于修改二进制最后两位 不过这样做通过异或出来的结果是相同的题目中数字太大 用java比较好写 处理递推的问题常用记忆化搜索代码:原创 2014-08-11 10:50:29 · 1046 阅读 · 0 评论 -
<模板> Hdu 1402 A * B Problem Plus 大数乘法
A * B Problem PlusTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 12315 Accepted Submission(s): 2157Problem DescriptionCalcul原创 2014-08-11 21:48:10 · 668 阅读 · 0 评论 -
<模板>米勒拉宾素数判定 题目是hdu4910
#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL __int64LL qpow(int a,int b,int r)//快速幂 { LL ans=1,bu原创 2014-08-11 16:18:08 · 1019 阅读 · 0 评论 -
<模板> 矩形分割
描述N个不同的颜色的不透明的长方形(1 [编辑]格式PROGRAM NAME: rect1INPUT FORMAT:(file rect1.in)按顺序输入放置长方形的方法。第一行输入的是那个放在底的长方形(即白纸)。第 1 行: A , B 和 N由空格分开 (1 第 2 到N+1行: 为五个整数 llx, lly, urx,原创 2014-08-13 21:26:20 · 1414 阅读 · 0 评论 -
<模板>poj2031 Building a Space Station(最小生成树)
题目链接:http://openoj.awaysoft.com:8080/judge/contest/view.action?cid=384#problem/D#include #include #include double f[110][110];int vist[110];struct node{ double x,y,z,r;}p[110];doub原创 2013-05-09 14:26:07 · 645 阅读 · 0 评论 -
求两条直线(线段)的交点
原文转载自:点击打开链转载 2014-04-24 16:01:43 · 1744 阅读 · 0 评论 -
(HDU2080)给出两个点,求出两点与原点连线的形成的角度
利用高中的知识:cosθ=a^2+b^2-c^2/(2ab)然后有个数学函数acos,求出cosθ的弧度值,在把这个值乘上180除以PI就是结果...#include #include #include #include #include #include using namespace std;#define pi 3.1415926int main(){ int T原创 2013-10-31 21:46:10 · 1331 阅读 · 0 评论 -
unique函数,获得相邻序列不重复的个数。
unique函数存在于#include 头文件中。作用是去除相邻原创 2014-07-06 20:25:14 · 1175 阅读 · 0 评论 -
poj2243(A*算法)
A*算法:http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/a-pathfinding-for-beginners-r2003看起来不错,屌屌的。各种游戏寻路。想到星际争霸,帝国时代那些单位恢宏的寻路方式,不得不点赞啊。Knight MovesTime Limit:原创 2015-04-16 20:45:43 · 859 阅读 · 0 评论