知识点
文章平均质量分 74
wyg1997
恰如猛虎卧荒丘,潜伏爪牙忍受。
展开
-
计算几何算法概览
点击打开链接这篇文章总结的非常详细,转载供以后学习使用。谢谢原作者的分享。转载 2016-08-17 08:49:32 · 436 阅读 · 0 评论 -
字典树学习小结
写了几道字典树的基础题了,现在写一个总结吧。其实动态建树和静态建树都一样,只是动态建树省空间费时间,静态建树省时间费空间。那么如果碰上数据很大的题的时候,还是选择静态建树吧,毕竟内存没有那么容易超。那下面先说动态建树吧:变量:struct Trie{ Trie *next[10]; int v; void init() { v = 0; for原创 2016-08-04 18:26:28 · 467 阅读 · 2 评论 -
【杭电oj】1166 - 敌兵布阵(线段树,树状数组)
敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 68664 Accepted Submission(s): 28868Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国原创 2016-04-01 17:25:10 · 586 阅读 · 0 评论 -
母函数(生成函数)
此文章为转载,此为原链接:点击打开链接母函数又称生成函数。定义是给出序列:a0,a1,a2,.......ak,......,那么函数G(x)=a0+a1*x+a2*x2+......ak*xk称为序列a0,a1,a2,.......ak,......的母函数(即生成函数)。例如:序列1,2,3.......n的生成函数为:G(x)=x+2x2+3x3+..转载 2016-07-21 08:41:33 · 4416 阅读 · 0 评论 -
母函数小模板
还是先给出定义:生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。(跟没说一样)母函数在组合数学的问题中很有用,我也只知道一些皮毛,即:解决方案数的组合问题。还是举例子说明,这样说着比较清晰:(例子不是oj上的题,纯属自己虚构)有1元、2元、5元钱无限个,问要组成8元钱有几种方案?首先我们来构造一元钱的多项式:1+x+x2+x3+x4原创 2016-08-15 18:05:39 · 473 阅读 · 0 评论 -
组合数学 - 放苹果问题
点击打开原文章今天重新看整数划分想到了poj1664,写一下解题报告,免得总忘。归结为各种分配问题:M个苹果放入N个盘子里【1】M相同,N相同,可为空:允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【其实这跟将一个整数m分成n个整数之和是类似的】:贴上自己当时的代码转载 2016-07-30 10:23:19 · 2789 阅读 · 0 评论 -
【HDU】2157 - How many ways??(矩阵快速幂)(从i到j经过k个点有多少种走法)
#include #include #include using namespace std;#define MAX 20#define CLR(a,b) memset(a,b,sizeof(a))#define MOD 1000struct Matrix{ __int64 m[MAX+4][MAX+4]; int w,h;}ori,pr,res;void init(int原创 2016-07-29 16:32:05 · 422 阅读 · 0 评论 -
【HDU】1757 - A Simple Math Problem(矩阵构造方法 & 快速幂)
点击打开题目A Simple Math ProblemTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4161 Accepted Submission(s): 2506Problem Descr原创 2016-07-29 10:55:51 · 448 阅读 · 0 评论 -
【51Nod】1264 - 线段相交(计算几何)
点击打开题目1264 线段相交基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交)。 如果相交,输出"Yes",否则输出"No"。Input第1行:一个数T,表示输入的原创 2016-08-17 10:41:29 · 353 阅读 · 0 评论 -
KMP算法学习记录
好不容易看到了一个讲KPM算法的好文章,总算是差不多看懂了。我觉得我没法写的比他好,转过来分享一下吧:点击打开链接前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导论,32章 字符转载 2016-08-09 10:38:18 · 443 阅读 · 0 评论 -
中国剩余定理(CRT)学习小结
①设正整数两两互素,则同余方程组 有整数解。并且在模下的解是唯一的,解为 其中,而为模的逆元。代码如下:__int64 GCD(__int64 a,__int64 b){ retu原创 2016-08-01 20:36:26 · 665 阅读 · 0 评论 -
IDEA中Git的配置(转)
因为这两天配置git的时候问题出问题,别人一顿操作搞定的事,到我这各种意外。今天又找到了两篇博客才成功的配置上传好了,希望更多后来者不要走弯路,就贴出来记录下。 如果原博主认为我有侵权行为,请私聊我删除哈~首先看这篇文章:点击打开链接其中用命令的操作我感觉不太方便,就再参考了这篇文章:点击打开链接然后就成功啦~...转载 2018-06-11 23:36:16 · 184 阅读 · 0 评论 -
OpenGL常用图形
绘制方式 解释 GL_POINTS 点 GL_LINES 线段 GL_LINE_STRIP 多段线 GL_LINE_LOOP 线圈 GL_TRIANGLES 三角形 GL_TRIANGLE_STRIP 三角形条带 GL_TRIANGLE_FAN 三角形扇原创 2017-10-09 18:41:16 · 1821 阅读 · 0 评论 -
【杭电oj】1060 - Leftmost Digit(数学好题)
Leftmost DigitTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15463 Accepted Submission(s): 6000Problem DescriptionGiven a po原创 2016-01-13 17:18:56 · 676 阅读 · 0 评论 -
【周练2016.3.5】序列的区间操作(对区间的操作,好题)
序列的区间操作时间限制: 1 Sec 内存限制: 256 MB提交: 33 解决: 5[提交][状态][讨论版]题目描述给你[1, N]共N个数,和Q次操作,每次操作将区间[x, y]里面的数全加v。要求你按顺序输出Q次操作后这N个数。 输入有多组测试数据,请处理到文件结束。每组数据给定两个整数N和Q,接下来有Q行,表示Q次操作。每行有三个整原创 2016-03-05 21:28:19 · 1247 阅读 · 2 评论 -
【51Nod】1021 - 石子归并(区间dp & 四边形不等式优化)
点击打开题目1021 石子归并基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 取消关注N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。例如: 1原创 2016-08-11 17:55:14 · 461 阅读 · 0 评论 -
LCS小模板
#include #include #include using namespace std;#define CLR(a,b) memset(a,b,sizeof(a))#define INF 0x3f3f3f3f#define LL long longchar a[1011];char b[1011];int dp[1011][1011];int d[1011][1011];原创 2016-08-10 09:18:10 · 293 阅读 · 0 评论 -
编辑距离 - 科普 & 记录
这个概念好神奇啊,具体的还是看百度百科的介绍吧。定义:编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。算法:自然语言表达比如要计算cafe和coffee原创 2016-08-09 20:06:42 · 524 阅读 · 0 评论 -
Lucas定理 & 逆元学习小结
上星期六比赛出了个这个,当时真心静不下来去看,然后玩了一下午萝卜=。=逆元等会穿插在Lucas定理里面再说,可能我现在做题还少,理解的不够透彻,巨巨们看了给点指导。这个Lucas定理是解决组合数的时候用的,当然是比较大的组合数了。比如C(1000000,50000)% mod,这个mod肯定是要取的,要不算出来真的是天文数字了。对于一个组合数C(n,k),它等于 n! / (原创 2016-08-08 15:59:25 · 1571 阅读 · 0 评论 -
矩阵的构造方法
点击打开原文章Fibonacci数列:F(0)=1 , F(1)=1 , F(n)=F(n-1)+F(n-2)我们以前快速求Fibonacci数列第n项的方法是 构造常系数矩阵(一) Fibonacci数列f[n]=f[n-1]+f[n-2],f[1]=f[2]=1的第n项快速求法(不考虑高精度)解法:考虑1×2的矩阵【f[n-2转载 2016-07-29 08:58:23 · 1145 阅读 · 0 评论 -
STL - string型学习小结
#include #include //头文件 #include //c++输入输出流 // cin >> a cout << a#include using namespace std; int main(){ string str; while (getline(cin,str)) //带空格读入 { str.begin(); str.end();原创 2016-06-20 14:01:39 · 317 阅读 · 0 评论 -
0x7FFFFFFF 是long int的最大值
可以算一下 0x7FFFFFFF 是多少每个十六进制数4bit,因此8位16进制是4个字节,刚好是一个int整型F的二进制码为 11117的二进制码为 0111这样一来,整个整数 0x7FFFFFFF 的二进制表示就是除了首位是 0,其余都是1就是说,这是最大的整型数 int(因为第一位是符号位,0 表示他是正数)用 INT_MAX 常量可以替代转载 2016-03-22 16:01:16 · 1893 阅读 · 0 评论 -
【周练3016.3.5】QAQ的问题(排列与组合,好题)
QAQ的问题时间限制: 1 Sec 内存限制: 128 MB提交: 11 解决: 3[提交][状态][讨论版]题目描述有M个不同的阵地,每个阵地上可以留守任意个士兵(为非负数)。现在QAQ有N个士兵,他需要选择至少一个阵地才可以获得胜利。QAQ的一贯原则——让所有士兵留守在他选择的阵地上。问有多少种安排方案使得QAQ获得胜利。为了降低难度,QAQ在选择的阵地上不留守士兵原创 2016-03-05 21:21:49 · 552 阅读 · 0 评论 -
N!末尾有多少个0?
int ans=0;while (n){ ans+=n/5; n/=5;}原创 2016-03-05 19:45:51 · 452 阅读 · 0 评论 -
【杭电oj】5053-the Sum of Cube(立方和)
the Sum of CubeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1984 Accepted Submission(s): 811Problem DescriptionA range is原创 2015-12-17 12:58:03 · 852 阅读 · 2 评论 -
对9取余
任何一个数对9取余,等于该数的所有位数的和再对9取余。原创 2016-01-13 14:57:32 · 2320 阅读 · 0 评论 -
gcd以及ex_gcd的总结
gcd以及ex_gcd的总结转载连接:http://www.xuebuyuan.com/552599.htmlex_gcd()---表示扩展欧几里得算法gcd()---表示最大公约数,常用方法是欧几里得算法定义1:a和b是两个不全为0的整数,称a与b的公因子中最大的为a和b的最大公约数,用gcd(a,b)来表示转载 2016-01-11 19:20:40 · 1677 阅读 · 1 评论 -
欧拉函数(求与n互质的数的个数)
求解与n(1-n-1)互质的质因子的个数 解析:(转)定义:对于正整数n,φ(n)是小于或等于n的正整数中,与n互质的数的数目。 例如:φ(8)=4,因为1,3,5,7均和8互质。性质:1.若p是质数,φ(p)= p-1. 2.若n是质数p的k次幂,φ(n)=(p-1)*p^(k-1)。因为除了p的倍数都与n互质 3.欧转载 2016-01-13 14:44:39 · 5139 阅读 · 0 评论 -
栈和队列
使用标准库的栈和队列时,先包含相关的头文件#include#includeusing namespace std;定义栈如下:stack stk;定义队列如下:queue q;栈提供了如下的操作[cpp] view plain copys.empty() 如果栈为空返回true,否则返回fa转载 2016-01-19 19:43:30 · 581 阅读 · 0 评论 -
【POJ】2506 - Tiling(递推,高精度)
TilingTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8687 Accepted: 4183DescriptionIn how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles?原创 2016-03-23 23:12:34 · 442 阅读 · 0 评论 -
数轴上一个点到其他点距离之和最小问题
这是一类问题,好多题要用到这个知识。问题让求数轴上的一个点到其他点的距离之和,使这个和最小。当然这里可以用 [-sum,sum] 来枚举求解,但是这里有更简单的方法,就是取这些点的中位数。原创 2016-03-24 10:29:45 · 7718 阅读 · 2 评论 -
RMQ问题的ST算法
1. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍。2.RMQ算法对于该问题,最容易想到的解决方案是遍历,复杂度是O(n)。但当数据量非常大转载 2016-04-27 07:12:55 · 320 阅读 · 0 评论 -
【杭电oj】2067 - 小兔的棋盘(卡特兰数(注意精度))
点击打开题目小兔的棋盘Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9066 Accepted Submission(s): 4705Problem Description小兔的叔叔从原创 2016-06-22 08:42:10 · 5857 阅读 · 1 评论 -
STL - vector用法介绍
介绍这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。 Vector总览vector是C++标准模板库中的部分内容,它是一个多功能转载 2016-06-21 08:42:23 · 348 阅读 · 0 评论 -
【HDU】3501 - Calculation 2(欧拉函数,互质数之和公式)
点击打开题目Calculation 2Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3564 Accepted Submission(s): 1484Problem Description原创 2016-07-23 16:23:33 · 556 阅读 · 0 评论 -
求某年某月某日是星期几的公式
蔡勒(Zeller)公式w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下,w:星期;c:世纪;y:年(两位数); m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。原创 2016-06-30 18:34:06 · 2551 阅读 · 0 评论 -
容斥原理 —— 求1~n有多少个数与k互质(二进制算法详细解释&模板)
这里有一道经典的例题,可以看一下:点击打开链接这里的n可能要大于k的,所以不能用欧拉函数去做。我们首先把k分解质因数,储存到p数组中,num表示质因子的数量。void pr(int k) //求k的质因子{ num = 0; for (int i = 2 ; i * i <= k ; i++) { if (k % i == 0) { p[num++] = i;原创 2016-07-22 20:38:14 · 4916 阅读 · 0 评论 -
【HDU】4135 - Co-prime(容斥原理)
点击打开题目Co-primeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3495 Accepted Submission(s): 1381Problem DescriptionGiv原创 2016-07-22 20:30:04 · 1395 阅读 · 0 评论 -
【杭电oj】2057 - A + B Again(16进制输入输出)
A + B AgainTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 22142 Accepted Submission(s): 9569Problem DescriptionThere must be原创 2016-05-21 22:31:54 · 539 阅读 · 0 评论 -
背包问题博文收藏
以下有两个很好的讲背包问题的博文,转载过来学习学习,感谢巨巨们:http://www.wutianqi.com/?p=539http://www.cnblogs.com/jbelial/articles/2116074.html转载 2016-04-22 20:59:22 · 351 阅读 · 0 评论