算法模版
文章平均质量分 85
curson_
All in or nothing.
展开
-
bfs
copy#include #include #include #include #include using namespace std; int N, K; int vis[100010]; struct node { int pos; int minute;原创 2016-04-16 10:25:51 · 233 阅读 · 0 评论 -
简单dp算法——Sumsets
B -Sumsets点击打开链接http://acm.hust.edu.cn/vjudge/contest/123760#problem/BCrawling in process...Crawling failedTime Limit:2000MS Memory Limit:200000KB 64bit IO Format:%lld & %llu原创 2016-07-24 15:13:57 · 488 阅读 · 0 评论 -
简单dp算法——Cow Bowling
A -Cow Bowling点击打开链接http://acm.hust.edu.cn/vjudge/contest/123760#problem/ACrawling in process...Crawling failedTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld &原创 2016-07-24 15:18:05 · 326 阅读 · 0 评论 -
简单dp算法——百炼06:股票买卖
06:股票买卖点击打开链接http://bailian.openjudge.cn/2016acm/06/总时间限制: 1000ms内存限制: 65536kB描述最近越来越多的人都投身股市,阿福也有点心动了。谨记着“股市有风险,入市需谨慎”,阿福决定先来研究一下简化版的股票买卖问题。假设阿福已经准确预测出了某只股票在未来 N 天的价格,他希望买原创 2016-07-25 11:01:56 · 2985 阅读 · 0 评论 -
深度搜索dfs——百炼08:棋盘问题
08:棋盘问题点击打开链接http://bailian.openjudge.cn/2016acm/08/总时间限制: 1000ms 内存限制: 65536kB描述在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入输入含有多组测试数据。原创 2016-07-25 16:36:23 · 417 阅读 · 0 评论 -
广度搜索bfs——百炼10:迷宫问题
10:迷宫问题点击打开链接http://bailian.openjudge.cn/2016acm/10/总时间限制: 1000ms内存限制: 65536kB描述定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,原创 2016-07-27 11:44:00 · 529 阅读 · 0 评论 -
简单算法bfs——百炼11:鸣人和佐助
11:鸣人和佐助点击打开链接http://bailian.openjudge.cn/2016acm/11/总时间限制: 1000ms内存限制: 65536kB描述佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢?已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置。地图上的每个位置都可以走到,只不过有些位置上有大蛇丸的手下,需要先打败原创 2016-07-29 11:01:14 · 2751 阅读 · 1 评论 -
HDU1532——Drainage Ditches(网络流Dinic算法)
Drainage Ditches点击打开链接http://acm.hdu.edu.cn/showproblem.php?pid=1532Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 14961 Accepted Subm原创 2016-07-31 15:37:10 · 249 阅读 · 0 评论 -
HDU1068,POJ1466——Girls and Boys(二分图最大独立集)
Girls and Boys点击打开链接http://poj.org/problem?id=1466点击打开链接http://acm.hdu.edu.cn/showproblem.php?pid=1068Time Limit: 5000MSMemory Limit: 10000KTotal Submissions: 11996Accepted原创 2016-08-01 08:58:54 · 436 阅读 · 0 评论 -
HDU1754——I Hate It(线段树)
I Hate It点我点我点我http://acm.hdu.edu.cn/showproblem.php?pid=1754Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 64616 Accepted Submission(原创 2016-08-01 14:01:02 · 315 阅读 · 0 评论 -
POJ3468——A Simple Problem with Integers(线段树区间求和加减)
A Simple Problem with Integers点我看原题^_^http://poj.org/problem?id=3468Time Limit: 5000MSMemory Limit: 131072KTotal Submissions: 94280Accepted: 29370Case Time Limit: 2000M原创 2016-08-01 17:02:29 · 352 阅读 · 0 评论 -
HDU1011——Starship Troopers(树状dp)
Starship Troopers猿题库Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 17199 Accepted Submission(s): 4551Problem Description原创 2016-08-05 17:31:18 · 387 阅读 · 0 评论 -
HDU1007——Quoit Design(最近点问题)
Quoit Design今天从这里开始^_^Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 46707 Accepted Submission(s): 12187Problem Description原创 2016-08-06 11:10:42 · 404 阅读 · 0 评论 -
HDU1024——Max Sum Plus Plus(dp)
Max Sum Plus Plus点击获取最新情报Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25456 Accepted Submission(s): 8795Problem Descript原创 2016-08-08 11:32:24 · 457 阅读 · 0 评论 -
HDU1023——Train Problem II(卡特兰数)
Train Problem II你能发现我吗?Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8378 Accepted Submission(s): 4477Problem Description原创 2016-08-08 13:25:47 · 1300 阅读 · 0 评论 -
HDU1027——Ignatius and the Princess II(全排列)
Ignatius and the Princess II点击乘坐筋斗云Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6991 Accepted Submission(s): 4140Problem原创 2016-08-10 16:38:37 · 377 阅读 · 0 评论 -
简单dp算法——百炼05:切割回文
05:切割回文点击打开链接http://bailian.openjudge.cn/2016acm/05/总时间限制: 1000ms 内存限制: 65536kB描述阿福最近对回文串产生了非常浓厚的兴趣。如果一个字符串从左往右看和从右往左看完全相同的话,那么就认为这个串是一个回文串。例如,“abcaacba”是一个回文串,“abcaaba”则不是一个回文串。阿福现在原创 2016-07-24 09:03:53 · 1555 阅读 · 0 评论 -
dp整数划分问题——03:复杂的整数划分问题
整数划分 : 这道好题求: 1. 将n划分成若干正整数之和的划分数。 2. 将n划分成k个正整数之和的划分数。 3. 将n划分成最大数不超过k的划分数。 4. 将n划分成若干奇正整数之和的划分数。 5. 将n划分成若干不同整数之和的划分数。 1.将n划分成不大于m的划分法: 1).若是划分多个整数可以存在相同的: dp[n][m原创 2016-07-22 20:26:50 · 2045 阅读 · 1 评论 -
最短路
输入包括多组数据。每组数据第一行是两个整数N、M(N输入保证至少存在1条商店到赛场的路线。对于每组输入,输出一行,表示工作人员从商店走到赛场的最短时间。#include #include #include #define MAXN 1000000000 using namespace原创 2016-04-16 10:27:03 · 364 阅读 · 0 评论 -
最短路2
最短路模板,以9个路口为例。[cpp] view plain copy #define MAXN 1000000000 int a[9][9], d[9], p[9]; void spath(int v0) { int v, w, k, min; int vis[9];原创 2016-04-16 10:31:37 · 281 阅读 · 0 评论 -
栈
对栈有了一定得了解后,做了这道题: 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。转载 2016-04-16 10:33:12 · 396 阅读 · 0 评论 -
dfs
这道题还算简单,题意是求在这10*12的矩阵中有几个 联通的W区域。大概就是用dfs,深度搜索,从(0,0)开始,只要搜到W,就将计数变量自增,然后开始dfs,并将访问过的W变为。即可,最后的计数变量的值就是联通区域个数。代码如下:[cpp] view plain copy#include #include转载 2016-04-16 10:35:00 · 255 阅读 · 0 评论 -
最短路Dijkstra算法
Dijkstra算法(单源最短路径) 单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必定是从k到s的最短路转载 2016-07-04 19:12:17 · 553 阅读 · 0 评论 -
二叉树的建立与遍历方法
树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;深度转载 2016-07-07 09:47:07 · 471 阅读 · 0 评论 -
gcd
求最大公约数gcd(int a, int b){ return b==0 ? a : gcd(b, a%b);}最公小倍数: a*b/gcd(a,b);原创 2016-07-13 20:06:43 · 390 阅读 · 0 评论 -
判断素数
#includeint prime(int x){ if(x==2) return true; for(int i=2 ; i if(x%i==0) return false; reutrn true;}原创 2016-07-13 20:17:27 · 239 阅读 · 0 评论 -
后序中序——>前序
给定一棵二叉树的后序遍历和中序遍历,请你输出其前序遍历的序列。这里假设键值都是互不相等的正整数。输入格式: 输入第一行给出一个正整数N(输出格式: 在一行中输出该树的前序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:4 1 3 2 6 5 7代码实现#i原创 2016-07-14 16:43:18 · 231 阅读 · 0 评论 -
前序中序——>后序
给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式: 输入第一行给出一个正整数N(输出格式: 在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:74 1 3 2 6 5 71 2 3 4 5 6 7输出样例:2 3 1 5 7 6 4代码实现#inclu原创 2016-07-14 17:21:58 · 230 阅读 · 0 评论 -
L2-010. 排座位——>并查集
L2- 010. 排座位点击打开链接时间限制 150 ms内存限制 65536 kB代码长度限制 8000 B判题程序 Standard作者 陈越布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对原创 2016-07-14 18:02:19 · 421 阅读 · 0 评论 -
#include<algorithm>中的sort算法
1、sort函数的时间复杂度为n*log2(n),执行效率较高。 2、sort函数的形式为sort(first,end,method)//其中第三个参数可选。 3、若为两个参数,则sort的排序默认是从小到大,见如下例子#include#includeusing namespace std;int main(){ int a[10]={转载 2016-07-18 17:29:47 · 3606 阅读 · 0 评论 -
简单背包问题——百炼01:Charm Bracelet
点击打开链接http://bailian.openjudge.cn/2016acm/01/01:Charm BraceletBessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with原创 2016-07-21 09:06:11 · 483 阅读 · 0 评论 -
字典树 06:最短前缀
06:最短前缀一个字符串的前缀是从该字符串的第一个字符起始的一个子串。例如 "carbon"的字串是: "c", "ca", "car", "carb", "carbo", 和 "carbon"。注意到这里我们不认为空串是字串, 但是每个非空串是它自身的字串. 我们现在希望能用前缀来缩略的表示单词。例如, "carbohydrate" 通常用"carb"来缩略表示. 现在给你一组单词, 要原创 2016-07-21 10:30:04 · 480 阅读 · 0 评论 -
简单dp算法——百炼02:滑雪
02:滑雪点击打开链接http://bailian.openjudge.cn/2016acm/02/总时间限制: 1000ms内存限制: 65536kB描述Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长的滑坡。区域原创 2016-07-22 17:02:24 · 870 阅读 · 0 评论 -
huffman(哈夫曼)树的实现
哈夫曼树的实现概念:哈夫曼(Huffman)树又称最优二叉树或最优搜索树,是一种带权路径长度最短的二叉树。在许多应用中,常常赋给树中结点一个有某种意义的实数,称此实数为该结点的权。从树根结点到该结点之间的路径长度与该结点上权的乘积称为结点的带权路径长度(WPL),树中所有叶子结点的带权路径长度之和称为该树的带权路径长度.算法思想:(1) 以权值分别为W1,W原创 2016-12-21 00:12:29 · 2428 阅读 · 0 评论