自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Miracle_ma的专栏

马天猫重新起航

  • 博客(15)
  • 收藏
  • 关注

原创 HDU 4612 and 4607 (tarjan求桥+树形dp求树的直径)

HDU 4612题意:给你一个无向图,里面有桥,问你连给它加一条边,桥变为多少题解:很明显是先求出桥的数量,然后缩点成一棵树,然后求树的直径,答案就是桥-直径但是这题有20W点100W边,而且有重边,我重边处理的不太好,一直不太会,特别是20W点,我都不知道如何记录,看了题解之后学了个比较屌的方法,而且可以一边求桥一边用树形dp求直径,而不需要缩点后用连通分量做,代码顿时短了很多#

2015-07-31 16:57:30 474

原创 kuangbin带你飞 专题十二 基础DP1

好久没做DP了,虽说是基础DP1吧,第一题就把我海虐了感觉DP真是看脑洞,最近脑子各种混乱睡眠也不足,还是得要好好理解的HDU 1024题意:最大m段区间和啊题解:这题正常的方法都会MLE 啊TLE啊dp[i][j]这个数组表示前j个元素中取i段的最大值,并且取了a[j]自然是开不下二维的于是要用一维滚动数组(这方面我真是不行,滚动数组很久以前也学过,一碰到难题就想不出

2015-07-31 16:42:41 780

原创 楼教主男人八题 POJ 1741(树分治(我自然是看题解搞懂的))

题意就是求树上距离小于等于K的点对有多少个n2的算法肯定不行,因为1W个点这就需要分治。可以看09年漆子超的论文 http://wenku.baidu.com/view/e087065f804d2b160b4ec0b5.html###本题用到的是关于点的分治。一个重要的问题是,为了防止退化,所以每次都要找到树的重心然后分治下去,所谓重心,就是删掉此结点后,剩下的结点最多的树结点个数

2015-07-30 22:06:45 554

原创 树形dp入门 hdu 1520 and 2196

hdu 1520 题意:给定一棵关系树,每个节点有个权值,子节点和父节点不能同时选,问最后能选的最大价值是多少?题解:树形DP入门题。由于子节点与父节点不能同时选,有人可能会用贪心思想,二者选其一肯定最优。其实不然,有可能父节点和子节点都不选,而要选子孙节点。不过只要再往深点想下,就可以得出动态规划的解法。每个节点要么选要么不选,和大多数选不选动归一样,来个dp[i][2],0表示不选,1

2015-07-30 14:08:44 521

原创 BestCoder 1st Anniversary ($) 第三题 Sequence

这个题看上去是一个贪心, 但是这个贪心显然是错的.事实上这道题目很简单, 先判断1个是否可以, 然后判断2个是否可以. 之后找到最小的k(k>2), 使得(m−k)mod6=0即可.证明如下:3n(n−1)+1=6(n∗(n−1)/2)+1, 注意到n∗(n−1)/2是三角形数, 任意一个自然数最多只需要3个三角形数即可表示. 枚举需要k个, 那么显然m=6(k个三角形数的和)+k, 由于

2015-07-26 13:34:03 441

原创 poj 3723 Conscription (最小生成树)

题意:给你n个女的,m个男的,然后他们之间有r条边,权值是亲密度,然后现在要你招募他们(就是把他们连起来),如果直接招募是一个人10000,如果用关系招募(就是连边),花费是10000-这条边的权值题解:我开头没看懂题目,以为极难,其实就是给你n+m个点,然后把他们连起来的最小费用啊考虑到一些人可能是用10000招募的,一些人是用关系招募的,等于是有一个点(不是0-n+m),它到每个点的距

2015-07-22 21:45:00 307

原创 poj 3255 次短路算法(好)

题意:给你n个点,m条边,然后问你从1到n的次短路是多少(比最短路长,比其他路都短的路)题解:看书上用dij非常复杂,然后百度到了一个不错的题解,用spfa,先算出每个点到1的最短路dis[i],再算出每个点到n点的最短路disr[i]然后枚举m条边,计算次短路dis[u]+disr[v]+edge[u][v]#include #include #include #inc

2015-07-22 21:04:24 748

原创 线段树扫描线算法

这个扫描线算法是用线段树完成的,一开始理解有点难度http://www.cnblogs.com/scau20110726/archive/2013/04/12/3016765.html算法的思想请看这个blog然后最近做几个扫描线练习一下(代码还是挺难写的啊,而且变式比较难)HDU 1542题意:给你很多矩形,求矩形覆盖的面积题解:这个就是模板题,理解了思想之后撸一遍模

2015-07-22 17:18:03 1266

原创 **poj 3687 Labeling Balls (*拓扑排序)

今天刚学了一发拓扑排序,就想找个题水水,结果被这题海虐了。题意:给你n个球,给你m组关系,a题解:这题如果正向建图,然后先扫入度为0的点做排序,没法保证1所在的那个部分放在最前面。。。纠结了好久然后报警了看了题解说,反向建图,把入度(正向建图中的出度)为0的点放入优先队列中,然后取出,这样保证越是大的点质量越大,反过来就保证了越小的点质量越小(过于机智啊)然后就是把入度0的点放入优

2015-07-22 17:15:41 382

原创 kuangbin带你飞 专题六 最小生成树 1586(基本都是水题)

做了十来道了,基本都挺水的,主要自己傻,各种数组开小,RE了不少zoj 1586题意:貌似就是说给出了许多QS之间的路,然后QS每次只能用一次(每次都有花费)题解:就是边的权值还得加上两点的花费(都是题意难以理解)for(int i=1;i<=n;i++){ scanf("%d",&val[i]); pre[i]=i;

2015-07-10 11:42:50 668

原创 kuangbin带我飞 专题七 线段树专题(一波线段树水题,难题还不会做)

第一次学习线段树,树状数组RMQ等,努力学习,加油。HDU 1166题意:很清楚吧题解:用树状数组求连续和,非常快。#include #include #include #include #include #include #include #include #include #include #include #include #include #inc

2015-07-09 13:42:21 2151

原创 kuangbin带你飞 专题五 并查集

POJ 2236题意:给你n个点的坐标,然后修理几个点,然后问两点之间是否连同(连同的条件是边权小于d)题解:先edge存两点之间的边权,然后每次维修一个点之后,把所有与他相连的点中已经维修并且边权小于d的点放到一个并查集中,即可,数据有点大,一开始以为会T,结果很水。

2015-07-04 11:25:20 665

原创 kuangbin带我飞 专题四 最短路

poj 2387 全裸的最短路,随便什么算法都能过Poj 2253这题可以用最小生成树来做,kruskal搞一下,如果1-2连同,此时的边就是青蛙跳的最大距离while(scanf("%d",&n)&&n){ kase++; int xcount=0; for(int i=1;i<=n;i++) pre[i]=i; f

2015-07-02 10:11:33 521

原创 ***POJ 3349 Snowflake Snow Snowflakes(哈希)

第一次学习哈希,基本模仿题解写的思路:首先这题时间比较紧,所以只能用加法求余来构造哈希表,然后容易出现冲突,所以冲突之后还需要判断是否为同种。并且雪花有顺逆时针,所以需要两种时针方向,每种时针方向有6种情况都要讨论。并且用链表把冲突的情况连到一起。(感觉雪花有可能6个脚都一样长,那么同一种雪花的不同时针也会变成两种相同雪花?不知道题目里明确没,估计数据有点水)#incl

2015-07-01 18:30:15 674

原创 kuangbin带我飞 专题二 搜索进阶 第一题 HDU1043(双向BFS+康托展开)

双向BFS这题需要特判无法变换到得情况,我们发现每次变换8个数字的逆序数奇偶性都是不变的,所以找出给定的序列的逆序数可以特判不存在的情况。康托展开:http://www.cnblogs.com/hxsyl/archive/2012/04/11/2443009.html开个结构体node2存当前的string,并且存它的x出现在哪个位置,然后把string康托展开得到一个数p

2015-07-01 16:05:31 665

空空如也

空空如也

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

TA关注的人

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