自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (2)
  • 收藏
  • 关注

原创 hdu 2448 Mining Station on the Sea(最短路径+KM)

<br /> <br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=2448<br /> <br />题目大意:海上有M个油田,有N个的船只和港口,N<=M,N艘船停在N个油田,油田和油田之间有距离,油田和港口之间也有距离。现在呢要你把船开会港口,每个港口只能停一艘船,问你怎么停可以使船只行驶的距离最短呢。<br /> <br />解题思路:先把船只所停的油田作为起点,做N次的最短路径,分别求出,从源点到港口的最短路径,这个就作为它们的权值,之后KM算

2010-08-18 22:18:00 1990

原创 hdu 2451Simple Addition Expression(排列组合)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=2451<br /> <br />题目大意:有一个关于 简单加法表达式  的定义告诉你,就是  选一个数字i  如果    i+  (i+1) +(i+2) 它的和,没有任何一位进位的话,那就是 一个ie简单加法表达式。<br /> <br />例如:11+12+13就是,而 13+14+15就不是,因为它个位进位了。<br /> <br />现在给你一个n,叫你求出小于n的值中有多少个i可以构成简

2010-08-18 15:17:00 1334 1

原创 hdu 2446 Shell Pyramid(数学的东西)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=2446<br /> <br />题目大意:这道题说的是叠金字塔啦,最顶层是1,第二层是3,之后每一层的数量都是上面一层的数量加当前层数的值啦。所以呢,一层金字塔有1个球,两层金字塔有1+3 = 4个球,三层金字塔就有1+3+6 = 10个的球。现在给你一个编号s,问你它在金字塔中的第几层,第几行,第几列。例如19,它就在第四层,第四行,第三列。<br /> <br />解题思路:输入的编号太大,2

2010-08-17 20:59:00 1984

原创 pku 1151 Invitation Cards(单源最短路径 SPFA)

<br /> <br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1511<br /> <br />题目大意:在有向图中有n个结点,求从开始结点S(题中默认为1)到各其它各结点的距离和dist1和其它各结点到起点S(1)的距离和dist2之和sum最小.<br /> <br />解题思路:这道题点跟边都非常的大,达到1000000,所以就不能用Dj算法啦(因为只会朴素的Dj),就用SPFA来做啦,构建两个邻接表,正向的list1,反向的list2。起点到其他

2010-08-16 22:39:00 888

原创 pku 3259 Wormholes(SPFA判负环)

<br /> <br />http://acm.pku.edu.cn/JudgeOnline/problem?id=3259<br /> <br />题目大意:一个famer有一些农场,这些农场里面有一些田地,田地里面有一些虫洞,田地和田地之间有路,走一条路有时间花费,虫洞有这样的性质: 时间倒流。如果你走的是虫洞路径,那么时间花费为负值,问你这个农民找出一条路径能看到他自己,也就是说,有没有这样一条路径,能利用虫洞的时间倒流的性质,让这个人能在这个点出发前回去,这样他就是能看到他自己了<br />

2010-08-16 16:09:00 1776 1

原创 hdu 1059 Dividing(多重背包)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=1059<br /> <br />解题思路:给你6种价值不一样的东西,并且每种物品都有一定的数量,现在问你,你可以把他们平均分成两份价值一样的吗??<br /> <br />解题思路:多重背包问题<br /> <br />比较笨拙的代码<br /> <br />#include <stdio.h>#include <string.h>#include <math.h>#define Ma

2010-08-15 21:18:00 3125 2

原创 pku 1442 Black Box(优先队列)

<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1442<br /> <br />题目大意:给你两个序列a,b,一个长度为N,一个长度为M。b中每个元素值c表示a序列中前c个数中,已经输入进来了,求输入进来的C个数中第k小的数。这个k就是c在序列b中的下标。<br /> <br />解题思路:优先队列做它。定义一个极大优先队列,用来保存前k个小的数,定义一个极小优先队列,用来保存后面剩下的c-k个数。最后输出极大队列的top值就好。<br /> <br

2010-08-15 10:29:00 1101

转载 STL 容器 priority_queue(优先队列)

priority_queue在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的优先队列的第一种用法,也是最常用的用法: priority_queue qi;通过故示例1中输出结果为:9 6 5 3 2第二种方法:在示例1中,如果我们要把元素从小到大输出怎么办呢?这时我们可以传入一个比较函数,使用functional.h函数对象作为比较函数。 priority_queue, greater >qi2;其中第二个参数为容器类型。第二个参数为比较函数。故示例2中输出

2010-08-14 15:54:00 779

原创 pku 2250 Compromise(LCS)

<br /> <br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2250<br /> <br />题目大意:给你两段话,叫你找出它们最长公共子序列<br /> <br />解题思路:LCS,只是字母换单词罢了<br /> <br />#include <stdio.h>#include <string.h>struct words { char s[35];}a[105],b[105];int dp[105][105];int

2010-08-13 19:58:00 653 1

原创 pku 2239 Selecting Courses(二分图最大匹配)

<br /> <br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2239<br /> <br />题目大意:一个学生想要选课程去上课,一周有7天上课,每天都是12节课。一门课程每天只会上一次,并且每一天上课的班级并不一样。这个学生可以自由选课去哪个班级去上课,只要时间不冲突就好,问你他最多可以选几门课。<br /> <br />解题思路:课程作为X集合,(day-1)*12+班级号  作为Y集合,表示某个时间段,上某门课程。然后套模板就是了<br /> <

2010-08-13 16:52:00 982

原创 hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=1087<br /> <br />解题思路:求最长上升子序列和的最大值<br /> <br />#include <stdio.h>#define GetMax(a,b) a>b?a:b#define Big __int64Big dp[1005]={0};int main(){ Big Max; int i,j,n,val[1005]={0}; while (sc

2010-08-12 10:30:00 864

原创 hdu 2159 fate(二维完全背包)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=2159<br /> <br />/*<br />dp[j][l] = Max(dp[j][l],dp[j-c[i]][l-1]+w[i])<br />它表示  用掉了j点的忍耐度,并且杀了l个怪后,所获得的最大经验数。<br />*/<br /> <br />/*dp[j][l] = Max(dp[j][l],dp[j-c[i]][l-1]+w[i])它表示 用掉了j点的忍耐

2010-08-11 20:13:00 2153 1

原创 hdu 1203 I NEED A OFFER!(01背包变型)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=1203<br /> <br />题目大意:有个人想找个工作,所以呢他就要报名是吧?报名一份工作,需要付出一定的钱,同时报了这份工作你还只是有一定的概率获得这份工作。现在呢,他手头上有n元钱,问你怎么安排报名,能够使得得到一份工作的概率最大。<br /> <br />解题思路:01背包,n作为容量,概率作为价值,dp[i]为花了i元钱后,他得不到工作的概率最小。所以最后输出的结果为1-dp[n]<b

2010-08-11 09:14:00 1340

原创 hdu 最大报销额(01背包)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=1864<br /> <br />解题思路:将报销上限设为背包容量,可报销的发票的金额扩大100倍作为价值做01背包问题求解。<br /> <br />#include <stdio.h>#include <string.h>#define max(a,b) a>b?a:bint dp[3000010];int main(){ int N,i,j,m,flag,len;

2010-08-10 19:17:00 1210 1

原创 [转]动态规划入门练习题

<br /> [转]动态规划入门练习题<br />一月 5, 2010 by 玉 逍遥   <br /><br />HDU 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】<br /> <br />Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955<br />背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程

2010-08-09 10:16:00 11155 2

原创 hdu 2955 Robberies(01背包)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=2955<br /> <br />题目大意:有一个小偷要偷银行的钱,可是他偷没家银行总是有一定的概率被抓,现在给了你一个概率P,只要他被抓的概率乘积不大与P,他就是安全的。问你在他安全的情况下,他最多可以偷多少钱。<br /> <br />解题思路:容量为银行钱的总和,价值就是偷到的钱,花费就是被抓的概率。<br /> <br />dp[j] = Max(dp[j],dp[j

2010-08-09 10:14:00 2087 1

原创 hdu 1532 Drainage Ditches(最大网络流)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=1532<br /> <br />解题思路:网络流模板<br /> <br />#include <stdio.h>#define Max 205int N,M;int Graph[Max][Max];int pre[Max];/*记录前驱点*/bool visited[Max];void InitGraph(){ int i,j; for(i=1;i<=M;i+

2010-08-07 16:53:00 722

原创 pku 1469 COURSES(二分匹配)

<br /> <br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1469<br /> <br />题目大意:学生要选修选修课,给你P个选修课,每个选修课如果都被选中了,就输出YSE,否则NO。<br /> <br />解题思路:二分匹配入门题<br /> <br />#include <iostream>#include <vector>#include <string.h>#include <stdio.h>#define Max 100

2010-08-06 09:26:00 735

原创 hdu 1068 Girls and Boys(最大独立集,二分匹配)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=1068<br /> <br />题目大意:n个人,叫你求最大独立集,所以就是要求最大二分匹配了。    最大独立集 = 顶点数-最大匹配数<br /> <br />#include <iostream>#include <vector>#define SIZE 1005using namespace std;bool visited[SIZE];int Match[SIZE];

2010-08-05 17:04:00 760

原创 hdu 1754 i hate it(线段树入门)

解题思路:线段树啦#include #include #define GetMax(a,b) a>b?a:b#define size 200001struct seg_tree { int left,right; int max;}tree[size*4];int val[size],N,M;void build(int num,int left,int right){ tree[num].left = left; tree[num].right = ri

2010-08-04 20:34:00 549

原创 hdu 2254 奥运(矩阵降幂+二分求和)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=2254<br /> <br />解题思路:求t1->t2天内,v1->v2一共有多少条的路径。就是要用到离散数学的可达矩阵的n次幂各元素的值就是经过n条路可以到达该点。所以说这道题说白了就是叫你求 A^t1+a^(t1+1)+……A^(t2),输出  v1v2该元素的值模2008(注意负数的处理).所以就是要用到矩阵降幂+二分求和。<br /> <br />#include <stdio.h>

2010-08-04 17:12:00 2063

原创 hdu 2842 Chinese Rings

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=2842<br /> <br />题目大意:有n个环在一条线上,叫你把他们通通取下来最少要做几步操作,结果mod 200907.要拿下环来是有条件的,i-th环的前面的环如果通通拿下来了,那么(i+1)-th这个环,你可以放进去,也可以取下来.注意,第一个环,可以随意拿进取下,其他环就是要按照规则才能进行取下和拿进操作。<br /> <br />解题思路:构造矩阵乘法,首先要推出公式<br /> <

2010-08-03 21:06:00 1278

转载 二分图匹配

<br />二分图:二分图是这样一个图,它的顶点可以分类两个集合X和Y,所有的边关联的两个顶点恰好一个属于集合X,另一个属于集合Y。<br />二分图匹配:给定一个二分图G,在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,则称M是一个匹配。<br />最大匹配:图中包含边数最多的匹配称为图的最大匹配。<br />完美匹配:如果所有点都在匹配边上,则称这个最大匹配是完美匹配。<br />二分图匹配基本概念:<br />未盖点<br />设VI是G的一个顶点,如果VI不与任意一条属于

2010-08-03 20:11:00 7273 1

转载 矩阵乘法算法

矩阵运算是属于线性代数里的一个重要内容,上学期学完后只觉得矩阵能解线性方程,不过高中的时候听说过矩阵能优化常系数递推以及将坐标上的点作线性变换,于是找了些资料研究了一下,并把许多经典题以及HDU shǎ崽大牛总结的矩阵乘法的题目[1]、[2]和开设的矩阵乘法DIY Contest给做完了,感觉收获颇丰。    一个矩阵就是一个二维数组,为了方便声明多个矩阵,我们一般会将矩阵封装一个类或定义一个矩阵的结构体,我采用的是后者:    最特殊的矩阵应该就是单位矩阵E了,它的对角线的元素为1

2010-08-03 19:51:00 15834 3

原创 hdu 2276 Kiki & Little Kiki 2(矩阵构造乘法)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=2276<br /> <br />题目大意:有n盏灯,0表示不亮,1表示亮,如果 i-th的灯的左边灯是亮的,那么下一秒钟,i-th灯的状态要改变,0变成1,1变成0。问你在第t秒时,灯的状态时什么样的,输出来。<br /> <br />解题思路:<br /> <br />a1 = (a1+an)%2,a2 = (a1+a2)%2,a3 = (a2+a3)%2,……an = (an+an-1)%2<

2010-08-02 22:31:00 1178

原创 hdu 1575 Tr A(矩阵乘法快速求幂)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=1575<br /> <br />#include <stdio.h>#define size 12struct node { int map[size][size];}unit/*单位矩阵*/,init/*初始矩阵*/;int n,m;/*矩阵相乘*/node Mul(node a,node b){ int i,j,k; node c; for (i

2010-08-02 11:17:00 2556

原创 hdu 1757 A Simple Math Problem(矩阵乘法)

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=1757<br /> <br /> <br />题目大意:给你一个公式f(x),叫你输出 f(k) % m的值<br /><br />解题思路:矩阵快速求幂<br /> <br />#include <stdio.h>#define size 10int n,m;struct node { int map[size][size];}unit,init,a;node Mul

2010-08-02 11:15:00 1192

原创 hdu 1698 Just a Hook(线段树求总区间和)

http://acm.hdu.edu.cn/showproblem.php?pid=1698#include struct Seg_tree { int left,right; int val,sum; Seg_tree(){val = 0;}}tree[400010];void CreateTree(int locate,int left,int right){ tree[locate].left = left; tree[locate].right = r

2010-08-01 22:27:00 619

DWR实用中文文档(实用型)

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

2011-08-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除