学习随笔
文章平均质量分 50
Twenty_seven
这个作者很懒,什么都没留下…
展开
-
字符串hash ELFhash
ELFhash,一种对字符串求hash值的函数,使用原创 2014-11-18 20:37:37 · 534 阅读 · 0 评论 -
n的m划分 dp
计数问题的dp。 将n个无区别的物品,划分成不超过m组,求划分数。 如n=4,m=3,结果是4(1+1+2=1+3=2+2=4) 设dp[i][j]表示i的j划分,dp[i][j]=dp[i-k][j-1]. k∈[1,min(i,j-1)]. 理解为从i个物品中取走k个,剩下的i-k个物品组成j-1种划分。 但是,这个划分是错误的,会造成重复的划分不止记录一次。 我们原创 2015-08-03 18:48:12 · 968 阅读 · 0 评论 -
关于负数取模
我们知道,在不同的语言中,对负数执行取模运算,结果有可能会是不同的。例如,(-11)%5在python中计算的结果是4,而在C(C99)中计算的结果则是-1。 truncate除法 && floor除法 在大多数编程语言中,如果整数a不是整数b的整数倍数的话,那么a、b做除法产生的实际结果的小数部分将会被截除,这个过程称为截尾(truncation)。如果除法的结果是正数的话,那么一般的编程转载 2015-07-21 09:01:08 · 543 阅读 · 0 评论 -
最大流Dinic
#include #include #include #include #define min(a,b)(a #define INF 0x0fffffff using namespace std; #define MAX_V 1000 struct edge { int to,cap,rev; //rev代表反向边的to。G[e.to][e.rev] edge(){}原创 2015-04-01 10:41:51 · 361 阅读 · 0 评论 -
很有用的stl string类
要想使用标准C++中string类,必须要包含 #include // 注意是,不是,带.h的是C语言中的头文件 using std::string; using std::wstring; 或 using namespace std; 下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。 string和wstring的用法是一样的,以下只用转载 2015-07-12 18:29:26 · 279 阅读 · 0 评论 -
joseph环的数学解法
约瑟夫(Joseph)问题的解决方法 问题描述 最初Joseph问题是这样的:有n个人(分别编号1,2……n)围成一圈,这些人轮流数数(编号为1的人开始,从1开始数),当数到m的人就会被处决。接着,后面的人继续从1开始数数,如此下去直到最后剩下来的那个人才能活命。当然Joseph先生非常聪明,他总是选择能最后剩下的那个位置站位。 用图示来阐述Joseph问题更加直观:如下图,假如有A,B……转载 2015-04-20 22:21:53 · 676 阅读 · 0 评论 -
最大流Ford_Fulkerson
#include #include using namespace std; #define INF 0x0fffffff #define min(a,b)(a #define MAX_V 1000 struct edge { int to,cap,rev; //指向to的反向边的标号 edge(){} edge(int a,int b,int c):to(a),cap(原创 2015-04-01 10:43:30 · 408 阅读 · 0 评论 -
旅行商问题
给出一个n个顶点的带权有向图的距离矩阵d(i,j)(INF表示没有边)。要求从顶点0出发,经过每一个顶点恰好一次后再回到0.问最小权重。 #include #include #include using namespace std; #define MAXN 20 #define INF 0x3fffffff int n; int d[MAXN][MAXN]; int dp[1原创 2015-03-16 16:53:34 · 1025 阅读 · 0 评论 -
STL---ACM
高度优化的STL库对ACM很有用,使得很多基础结构不需要自己去实现。、、 原文地址:http://www.cnblogs.com/ACMan/archive/2012/05/30/2526927.html STL简介 1 概况.......................................................... 2 1.1 STL是什么....转载 2015-02-17 11:57:47 · 386 阅读 · 0 评论 -
vector 实现邻接表
1.边上有属性,比如权 #include #include using namespace std; #define MAXV 500 vectorG[MAXV]; /* struct edge { int from,to; }; vectorG[MAXV]; */ int main() { int V,E; cin>>V>>E;原创 2015-02-17 12:27:28 · 1077 阅读 · 0 评论 -
二分图判断
判断一个图是否可以由2种颜色染色。 #include #include using namespace std; #define MAXV 500 int V; int color[MAXV]; vectorG[MAXV]; int dfs(int v,int c) { color[v]=c; int i; for(i=0;i { if(G[v][i]原创 2015-02-17 13:44:43 · 448 阅读 · 0 评论 -
优先队列优化的dijsktra完整代码+路径记录
#include #include #include #include #include using namespace std; #define MAXV 500 #define inf 0x0fffffff int V,E; struct edge { int to,cost; edge(int a,int b) { to=a; cost=b;原创 2015-02-18 14:00:22 · 503 阅读 · 0 评论 -
优先队列优化的dijsktra
#include #include #include using namespace std; #define MAXV 500 #define inf 0x0fffffff typedef pairP; //最短距离,编号 struct edge { int to,cost; }; vectorG[MAXV]; int d[MAXV]; class cmp { p原创 2015-02-17 22:48:35 · 460 阅读 · 0 评论 -
C++库 全排列函数next_permutation
这是一个求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件 下面是以前的笔记 与之完全相反的函数还有prev_permutation (1) int 类型的next_permutation int main() { int a[3]; a[0]=1;a[1]=2;a[2]=3; do { cout } while (next_permutation(a转载 2015-02-13 19:57:10 · 562 阅读 · 0 评论 -
STL map&set
set和map最基本的使用方法,拥有2叉搜索树的性质和平衡二叉树的性质。使用它们来实现二叉搜索树。 #include #include #include using namespace std; #include int main() { mapm; m.insert(map::value_type(1,"one")); m.insert(map::value_type(原创 2015-02-16 00:49:28 · 407 阅读 · 0 评论 -
扩展gcd 以及线性同余模方程
欧几里得算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 证明略去了。 基本代码实现: view source 1 int gcd(int a,int b)转载 2015-02-12 22:31:33 · 506 阅读 · 0 评论 -
poj2823 单调队列
刚刚学习了单调队列,来练习一道,等会去试试多重背包。 如题:http://poj.org/problem?id=2823 Sliding Window Time Limit: 12000MS Memory Limit: 65536K Total Submissions: 47025 Accepted: 13585 Case Time原创 2015-08-04 10:19:44 · 347 阅读 · 0 评论