- 博客(23)
- 资源 (1)
- 收藏
- 关注

原创 状态压缩DP 题目目录
POJ 1170IOI95的题目了,比较简单。题目大意是说要买一些商品,而商店提供了一些组合购买的打折方案,你不能多买东西,问怎样购买最省。怎样表示状态呢?其实很自然想到把当前你要买哪些东西,并且它们分别要买多少作为状态,那么方程就写成:F(S)=min[for each i in 合法购买方案](F(S’)+cost(i)]现在的问题就成了如何在实现的时候来表示S。由于只买5种不同商品,每种的数量最多为5件,于是考虑用6进制表示状态,其中权位及表示商品种类,系数就是商品数量,然后再把这个数压缩成一个10进
2010-08-07 23:33:00
668

转载 树状数组 OJ题目大汇总----czyuan原创
先提个注意点,由于Lowbit(0) = 0,这会导致x递增的那条路径发生死循环,所有当树状数组中可能出现0时,我们都全部加一,这样可以避免0带来的麻烦~~ 简单: POJ 2299 Ultra-QuickSort http://acm.pku.edu.cn/JudgeOnline/problem?id=2299 求逆序数,可以用经典的归并排序做,也是基本的树状数组题目。 POJ 2352 Stars http://acm.pku.edu.cn/J
2010-08-07 15:45:00
2500

转载 线段树经典题目(一定要做完)
http://www.notonlysuccess.com/?p=59这几天陆陆续续更新了下边几道我所能找到得具有一些代表性的线段树题目从最最简单的区间求和到对区间的各种操作都包涵在这些题目里了相信对一些准备学习线段树的人有一定得帮助突然发现自己对数据结构的题目非常有感觉,所以在刷下边的题的同时也生出灵感出了好几道线段树题目等比赛结束后也会陆续加进里边快半年过去代码风格也有很大的改变,感觉以前写的代码很不规范,用自己在预定义中定义的一些函数,但后来感觉作用不是很大,所以又删去了,所以现在看代码可能找不到以前
2010-08-06 16:50:00
20175
1
原创 bellman_ford
bellman_ford(贝尔曼-福特)算法:因为dijkstra算法不能处理带负权边的图,这时候就可以利用bellman_ford算法。( 设想从我们可以从图中找到一个环路(即从v出发,经过若干个点之后又回到v)且这个环路中所有路径的权值之和为负。那么通过这个环路,环路中任意两点的最 短路径就可以无穷小下去。如果不处理这个负环路,程序就会永远运行下去。 而Bellman-Ford算法具有分辨这种负环路的能力)时间复杂度:O(ne)——n是点数,e是边数。如果是邻接阵的话应该就是O(n^
2010-11-02 19:49:00
1586
原创 SPFA + 静态邻接表 模板
<br /> SPFA — shotest path faster algorithm,是一个效率很高的求最短路径的算法,也可以说是bellman-ford算法的优化版。<br /> 具体做法是先把起点放入一个队列中。每次取出队顶元素,并pop,看跟该点相邻的其他点是否能够松弛,如果可以松弛,改变数值,如果该点不在队列中,则把能该点push到队列中,直到队列为空。<br /> <br /> 为了速度更快,可以用邻接表来存储,这样,找与起点相邻的点的速度就会很快!<br /> <
2010-11-01 10:00:00
1933
原创 静态邻接表
上次比赛的时候有一道题目要用到最小生成树,用动态邻接表存储边的结构,结果MLE。实际上很多次了,没有学会用静态邻接表,吃亏不小。 今天趁着Lost大牛来这请客并教育我一番的劲头下,到它(哦,不,是他)的blog上偷盗了他的邻接表代码,花了一个晚上的时间,自己加上了自己的注释,并且加上了权的情况,终于把它搞懂了!<br /> <br />#include <iostream>#include <queue>using namespace std;const long edg
2010-10-31 20:38:00
1962
原创 第一次TC
<br /> 现在已经是晚上12:21了,按常理确实该睡觉了,但今天第一次做了TC,不说点什么的确实不太好,俗话说的好,人生能有几个第一次啊!<br /> 晚上先跟zz玩了3个小时的街机,好无语,不过玩的很开心啊!再后来想去打几个怪鸟的耳朵,在此我不得不批评我自己两句了,最近玩怪物猎人很凶啊,好多时间都花在这上面了,我是一个对任何东西很容易上瘾的人,而且一玩就很难再停下来。但是痛苦的是,我又是任何东西都没有长性的人,不管什么好玩的游戏,一遇到困难的关卡,我就能很快放弃。玩游戏玩到我这个地
2010-08-28 00:42:00
753
原创 hdu 3501
<br /> http://acm.hdu.edu.cn/showproblem.php?pid=3501<br /> 一道数学题,不是很难,老题了。但从中学到了不少东西。<br /> 1:if gcd(n,i) == 1 then gcd(n,n-i) == 1<br /> so sum(n) = n * phi(n) / 2; //sum(n): 比n小的和n互质的数的和 phi(n): 比n小的跟n互质的数的个数<br /> <br /> 2:n = P1
2010-08-23 14:35:00
1029
原创 二分图最佳匹配 题目
<br />POJ 2195<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2195<br />第一道二分图最佳匹配题,简单题,会二分最佳的这题也就会。就建图的时候要把距离算出来!<br />#include <iostream>#include <cmath>using namespace std;int n,m;int num1,num2;char map[150][150]; //初始输入int mat[150][15
2010-08-22 08:31:00
708
原创 hdu3546 Calculator
<br /> 8月19号在杭电DIY上做的一题,题意不难理解,十个存储器,起始值都为1,经过一系列运算之后,求最终值!<br /> 问题就是该题是大数,一开始用吉林大学的模板,敲了很久,交了以后TLE(听说浙大大模板也许可以过,它是4位一体的),没办法,尝试着用JAVA。<br /> 第一次在比赛中用JAVA写题目,而且是在杭电OJ被雷劈了以后(小汗一把)。状况很多,写起来磕磕碰碰的,很是纠结,总算到最后写好了,也算可以吧。<br />/** * @(#)Main.java
2010-08-19 09:34:00
643
原创 二分图最大匹配--入门题(适当的写一些)
HDU 1150:http://acm.hdu.edu.cn/showproblem.php?pid=1150 两台机器,有n和m个工作模式,起始工作模式都为0,现在有k件工作,第i件工作可分别在两个机器上用各自的模式工作,但换模式要重启,问重启的最小次数。 写的时候因为是找二分最大匹配的题目时找到写的,想到了二分上去,也知道是求最小覆盖点 == 最大匹配数,但不是很能理解,先把代码写了再说。 写的时候注意起始模式是0,所以换模式时把0的排除再外。(因为这个原因错了很多次)一:
2010-08-16 08:54:00
766
转载 DP 46 自己写的代码
Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j]表示在概率j之下能抢的大洋); 正确的方程是:f[j]=max(f[j],f[j-q[i].money]*q[i].v) 其中,f[j]
2010-08-13 15:54:00
493
原创 HDU 1506
http://acm.hdu.edu.cn/showproblem.php?pid=1506 一道写了很久的题,以前看过,都没什么感觉,今天终于把它搞懂了。很多人都说是DP,但我没感觉出来,好像就是YY题了。 题目中叫求一个最大的区域,则第i个矩形对应的面积是ave[i] = (r[i] - l[i] + 1) * a[i];
2010-08-10 15:42:00
1035
原创 8.8号比赛总结
http://info.zjfc.edu.cn/acm/contest/contest_problemList.aspx?cid=48 很久没怎么做题了,也没怎么比赛了,昨天,暑假集训的第一场比赛终于开始,在杭航大牛来讲过一节课之后,这是庄牛和杭牛出的一套题,比较老的一套题,但质量还是很不错的。有8题,过了5题,修总过了7题。总体来说还好,但有点可惜,感觉再做一题还是可以的。 一开始心里比较急,没怎么状态,看题很慌,都没什么感觉,直到有人出了1007,然后看了一下,感
2010-08-09 22:07:00
572
原创 十个利用矩阵乘法解决的经典题目(转)
不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符。在数学中,一个矩阵说穿了就是一个二维数组。一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和。比如,下面的算式表示一个2行2列的矩阵乘以2行3列的矩阵,其结果是一个2行3列的矩阵。其中,结果的那个4等于2*2+0*1: 下面的算式则是一个1 x 3的矩阵乘以3 x 2的矩阵,得到一个1 x 2的矩阵: 矩阵乘法的
2010-07-30 19:17:00
877
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人