自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 zoj3422Go Deeper(2-sat + 二分)

题目请戳这里题目大意:go(int dep, int n, int m) begin output the value of dep. if dep < m and x[a[dep]] + x[b[dep]] != c[dep] then go(dep + 1, n, m) end 读上面程序段,yy出函数功能。数组a,b,c长度为

2013-09-30 18:42:51 1040

原创 hdu4095 Very Boring Homework(笛卡尔树+模拟)

题目请戳这里题目大意:给一个数字序列1-n,按输入次序建一颗BST,然后按照题目描述,输出任意给定矩形的树。给了5条描述,感觉很复杂的样子,然后看这样例自己yy了一下,就那么回事吧。设树高d,n个点,那么这棵树在n*(2d-1)的矩形区域内。n是列,2d-1是行。每个节点只能在一列出现。具体不好描述,还是自己拿笔画画吧。题目分析:首先要画出这棵树,先要建树。此题的n有100000,如果直接

2013-09-29 19:24:36 1403

原创 2013 ACM/ICPC Asia Regional Changchun Online Problem J & hdu4768 Flyer(二分)

题目请戳这里题目大意:给n个三元组(ai,bi,ci),那么对于y = ci*x + ai(ai = 0),求所有三元组产生的y中,出现次数为奇数的数以及出现次数。数据保证最多存在一个数出现奇数次。如果没有数出现奇数次,输出一句话。题目分析:从出现奇数次作为突破口。首先对于某个三元组(ai,bi,ci),yi = ci * x + ai,yi 这个数可能很大,给每个整数开个计算器显然不

2013-09-28 22:01:29 1009

原创 hdu4096Universal Question Answering System(乱搞)

题目请戳这里题目大意:给t组数据,每组为不超过1000行的文本,每行是一个陈述句或者疑问句或者感叹句。感叹句表示一组case结束。陈述句给定一组关系,疑问句表示一个询问。陈述句分2种句式,疑问句相应的也有2种疑问句式。具体看input。题目分析:对于每个陈述句,可以抽象出一对关系。比如a are b,那么a->b建边。每个陈述句就有一个关系。这样边读入句子就边建图。对于每个疑问句,相当于一

2013-09-26 20:56:37 1315

原创 hdu4756 Install Air Conditioning(MST + 树形DP)

题目请戳这里题目大意:给n个点,现在要使这n个点连通,并且要求代价最小。现在有2个点之间不能直接连通(除了第一个点),求最小代价。题目分析:跟这题一样样的,唉,又是原题。。先求mst,然后枚举边,对于生成树上的边替换,用树形dp O(N^2)求出每条生成树边的最小替代边。然后替换后的最大值。详情请见代码:#include #include#include#include

2013-09-26 09:12:42 1222

原创 hdu4126Genghis Khan the ConquerorGenghis Khan the Conqueror(MST+树形DP)

题目请戳这里题目大意:给n个点,m条边,每条边权值c,现在要使这n个点连通。现在已知某条边要发生突变,再给q个三元组,每个三元组(a,b,c),(a,b)表示图中可能发生突变的边,该边一定是图中的边。c表示该边新的权值,c只可能比原来的权值大。给的q条边发生突变的概率是一样的。求突变后连通n个点最小代价期望值。题目分析:如果没有那条突变的边,就是求一个mst。但是因为有一条边要突变,每条边

2013-09-25 23:13:06 1445

原创 hdu4122Alice's mooncake shop(单调队列 | 线段树)

题目请戳这里题目大意:一个月饼店开m个小时(24小时营业),只在整点做月饼,做月饼的能力非常强。现在只需要考虑成本的问题。给m个cost值,cost[i]表示第i个小时做1个月饼的代价。再给n个时间,从2000年1月1日0时开始计算。表示订单的截止时间。当然为了节约成本,可以提前趁成本不高的时候做月饼。但是月饼有保质期,t天,月饼放冰箱保存也需要代价,一天花费s。现在求完成n个订单最小代价

2013-09-25 13:02:09 1076

原创 poj1330Nearest Common Ancestors(LCA小结)

题目请戳这里题目大意:意如其名。题目分析:本题只有一个查询,所以可以各种乱搞过去。不过对于菜鸟而言,还是老老实实练习一下LCA算法。LCA有很多经典的算法。按工作方式分在线和离线2种。tarjan算法是经典的离线算法。这篇博客讲的太好懂了,我也不好意思班门弄斧,具体戳进去看看就会明白。重点是那个插图,一看秒懂。在线算法主要有倍增算法和转RMQ算法。另外LCA还有2种更为

2013-09-24 19:59:45 928

原创 2013 ACM/ICPC Asia Regional Changsha Online-Problem C:Color Representation Conversion(模拟)

题目大意:给颜色的三种定义,再给一种颜色的参数,要求转换成另一种颜色。题目分析:模拟。比赛的时候一直在卡精度,转rgb的时候应该乘255,结果乘了256。。。然后样例怎么都相差1。后来发现错误,但是没有考虑同种颜色的转换。。详情请见代码:#include #include#include#include#include#include#include#include

2013-09-23 19:06:54 1191

原创 zoj2588 Burning Bridges(无向图的桥)

题目请戳这里题目大意:给一张无向图,现在要去掉一些边,使图仍然连通,求不能去掉的边。题目分析:就是求无向图的桥。tarjan算法跑一遍,和无向图割点十分类似,这里要找low[v] > dfn[u]的边(u,v)便是割边,因为v是u的孩子,但是v无法访问到u的祖先,那么断开这条边原图必不连通,因此这是桥。这题会有平行边,平行边必定不是桥。所以dfs的时候要判断一下。详情请见代码:

2013-09-21 11:01:04 1075

原创 poj1144Network(无向图割点数)

题目请戳这里题目大意:给一张无向图,求割点数量。题目分析:tarjan算法求割点。关于无向图割点,这里说的很清楚了。直接建图跑一遍tarjan算法即可。详情请见代码:#include #include#include#includeusing namespace std;const int N = 101;int adj[N][N];bool flag[N][N]

2013-09-20 20:33:40 1122

原创 poj1966Cable TV Network(无向图最小点割集 ISAP+邻接矩阵)

题目请戳这里邻接表的ISAP被卡了一天。。。TLE。。。。终于被卡了。。。好忧桑啊啊啊。。。题目大意:给一张无向图,求最少去掉几个点使图不连通。题目分析:求无向图的点连通度,拆点建图跑最大流。具体做法是:将一个点i拆成2个点:i和i+n,分别表示从第i个点出去和进入第i个点。那么i+n->i建边,边权1,对于每一条边(a,b),建边a->b + n,b->a+n,边权无穷。然后枚举没有

2013-09-20 18:25:16 1433

原创 poj1523SPF(求图的割点)

题目请戳这里题目大意:给一个网络,求所有割点,并且求出去掉这个割点后原图增加了多少个连通分量。题目分析:tarjan算法。dfs遍历一遍,求出dfs树(森林),dfn[i]表示点i的访问时间戳,low[i]表示i能追溯到的最早的节点。点i为割点的充要条件是:1:i为dfs树的根,并且i至少有2个孩子。这个比较好理解,如果i是根并且有2个以上的孩子,那么#include #incl

2013-09-19 18:34:13 1333

原创 2013 ACM/ICPC Asia Regional Chengdu Online&hdu4735Little Wish~ lyrical step~(DLX解重复覆盖)

好吧,其实这题把这题代码改一点也能过。。。。说好的没有原题呢题目请戳这里题目大意:给一颗树,有n个点,每个点代表一个性别,两点之间的边上有边权w,表示2点之间的距离。现在已知如果某个点是男的,那么与他距离不超过D的点都被他罩着。现在要使所有的女的都至少被一个男的罩,求最少要交换几对男女的位置。题目分析:求最小点支配集。跟这题区别大么。不过多了点约束条件而已。用dancingling

2013-09-19 00:17:23 1598

原创 hdu3498whosyourdaddy(DLX+A*解重复覆盖问题)

谨以此题,献给中秋夜还在默默刷题的孩纸们。。题目请戳这里题目大意:给n个点,m个关系(a,b),表示点a和点b相邻。每个点最多4个相邻点。现在如果消灭某个点,就可以同时消灭与之相邻的点。现在问最少要消灭几个点,能使每个点都至少被消灭一次。题目分析:最小点支配集的求解。NP难问题。好在数据规模不大,搜索可以解决。不过要用dancing links+A*优化。重复覆盖和精确覆盖的区别仅

2013-09-18 21:25:36 1891 2

原创

两个关于树的小故事:1:海贼历公元前八百多年,有一个非常强大的国家——D之国。这个国家有一颗树,叫恶魔树,这颗树有着十分强大的能量,它结出的果实交恶魔果实,吃了这种果实的人会获得某种特殊的能力——恶魔的力量,但因此也会受到大海的诅咒——不能游泳。有人发现了恶魔树的秘密,于是勾结其他国家,将D之国抹杀了,一同抹杀的还有D之国那100年辉煌的历史,但是聪明的D之国的人用古代文字将这段历史刻在了石碑

2013-09-13 11:33:10 1081

原创 poj2125Destroying The Graph(最小割+输出方案)

题目请戳这里题目大意:给一张有向图,现在要选择一些点,删掉图中的所有边。具体操作为:选择点i,可以选择删除从i出发的所有有向边或者进入i的所有有向边,分别有个代价ini和outi,求最小的代价删掉所有边。并输出删除方案。题目分析:最小割。因为每次删除的是一个点的所有入边或者所有出边。那么就很明显了,拆点,将i拆成i和I+n2个点,分别表示第i个点的入度点和出度点。源点到每个i连边,表示从i

2013-09-13 00:41:51 2764

原创 poj3308Paratroopers(最小割)

题目请戳这里题目大意:给一个n*m的矩阵,给一些点(ri,ci)表示该点在第ri行第ci列。现在要覆盖所有的点,已知覆盖第i行代价为Ri,覆盖第j列代价为Cj。总代价是累乘的,求最小总代价能覆盖所有的点。题目分析:最小割。增加一个超级源点和超级汇点,源点到行连边,边权为覆盖行的代价,每列到汇点建边,边权为覆盖该列的代价。对于给定的点对,ri->cj连边,边权无穷大。求一个最小割即可。因为根

2013-09-12 17:29:03 1424

原创 便利店选址

题目描述:     某小区决定在小区内部建一家便利店,现小区内部共有八栋楼,它们的地理坐标分别为:(10,20) (30,34) (19,25) (38,49.1) (9,38.1) (2,34) (5,8) (29,48)。同时,其中的住户人数分别为:30, 45, 28, 8, 36, 16, 78, 56。为了方便更多的住户购物,要求实现总体最优,请问便利店应该建立在哪里?【

2013-09-12 15:27:42 2069 5

原创 hdu4725The Shortest Path in Nya Graph(拆点 + 最短路dijkstra | SPFA)

题目请戳这里题目大意:给n个点,m条无向边,边权w,为走这条路的代价。每个点属于某一层,从某层到隔壁层代价都是固定的c,求1到n最短路。题目分析:最短路。比赛的时候硬上SPFA,结果T出翔了。还是太年轻了啊。因为每个点可以借助层的属性,到达其他点就有了其他的路径。所以有必要把每层也抽象出额外的点。因为每层的点也是不连通的,就是说如果点i和点j在同一层,并不代表他们之间距离就是0。所以对

2013-09-12 12:28:49 1669 1

原创 poj1637Sightseeing tour(混合图欧拉回路)

题目请戳这里题目大意:求混合图欧拉回路。题目分析:最大流。竟然用网络流求混合图的欧拉回路,涨姿势了啊啊。。其实仔细一想也是那么回事。欧拉回路是遍历所有边一次又回到起点的回路。双向图只要每个点度数为偶数即可,有向图要保证所有点入度等于出度。求路径的话,dfs即可。混合图的话,就比较复杂。首先将有向边定向,求出所有点的入度和出度,如果某个点入度和出度之差为奇数,则一定不存在欧拉回路,因

2013-09-11 00:43:15 1860

原创 poj3436ACM Computer Factory(不用拆点+最大流)

题目请戳这里题目大意:一台电脑有p个零件组成,有n个电脑组装机,每个组装机只能组装特定机器。即第i台组装机只能组装必含某些零件或者不能含有某些零件的半成品,通过这台组装机可以组装成另一台半成品/成品。每个组装机每个小时能组装的台数一定,给定n个组装机和组装条件,求每小时最多能装配多少台电脑,并输出效率最高时的一些可行方案。题目分析:最大流。每个组装机为一个点,对于每个组装机,如果组装条件没

2013-09-10 21:17:37 1258

原创 poj2391Ombrophobic Bovines(floyd+二分+拆点+最大流)

题目请戳这里题目大意:n块草地,每块草地有一些牛,每块草地有雨棚,可以容纳一定量的牛。草地间有路,可以无限通过牛,牛通过某条路有一定的时间。现在求最短的时间让所有的牛都能到雨棚。题目分析:最大流。题目给的是无向图,所以先跑一遍floyd,求出任意2块草地之间最少的时间。因为牛通过路的时间是累加的,所以要把无向图改成有向图,保证牛走某条路后时间是累加的。方法是拆点,将草地i拆成i和i+n

2013-09-10 17:42:49 1230

原创 poj1087&hdu1526A Plug for UNIX(最大流)

题目请戳这里题目大意:房间里有n个插座,每个插座都不一样。有m个不同的用电器,每个用电器有一个插头,每个插头只能插相对应的插座。再给k类转换器,每类转换器能把A插头转化成B插头,每类转换器无限个。求不能充电的用电器最少的个数。题目分析:最少不能充电的用电器就是最多能充电的用电器数量。最大流。设一个源点一个汇点,源点到每个用电器连一条权为1的边,因为每种用电器只有一个。每个插座到汇点连一条边

2013-09-10 11:30:53 1248

原创 poj1459Power Network(最大流)

题目请戳这里题目大意:好难读的题目。。有n个点,编号0~n-1,每个点可能是发电站,中转站或者用户。发电站i可以发pi的电,最大pmax,用户i消耗ci的电,最大cmax,中转站不发电也不消耗电。每两个站点之间有一条边,边权L,表示这条边最多能送L的电。求所有用户消耗最大的电量。题目分析:网络流。需要增加一个源点和汇点。发电站是供电者,所以对于每个发电站,源点与其建一条边,边权为该发电站最

2013-09-09 21:34:05 1017

原创 poj3469Dual Core CPU(ISAP求最小割)

题目请戳这里题目大意:n个工作,2个CPU,每个工作都可以工作在2个CPU上,并且对于工作i,在第一个CPU上工作的代价为ai,在第二个CPU上工作的代价是bi,再给m对工作,每对工作有数据交换,如果这2个工作工作在同一个CPU上,数据交换无代价,否则数据交换代价为w。求n个工作完成的最小代价。题目分析:有2个CPU,每个工作只能工作在一个CPU上,所以我们可以将所有的工作分成2类:工作在

2013-09-09 14:55:25 1242

原创 poj1149PIGS(最大流)

题目请戳这里题目大意:养猪场有许多猪,关在m个猪圈里,有n个顾客要来买猪,一个一个的来。每个顾客有一些猪圈的钥匙,这个顾客只会买这些猪圈里的猪。顾客买完猪后,养猪场老板可以将这个顾客打开的猪圈里的猪重新分配。求老板能卖出最大数量的猪。题目分析:网络流。对于菜鸟来说,此题的建图比较难。因为某个顾客打开一些猪圈买完猪后,老板可以将这些打开的猪圈的猪重新分配。所以每个猪圈的猪的数量是动态的,随着

2013-09-09 11:03:27 1236 4

原创 poj1273&hdu1523Drainage Ditches(ISAP)

题目请戳这里题目大意:略。题目分析:网络流模版题。不过数据很弱,只能测很烂的模版。第一道网络流详情请见代码:#include #include#include#includeusing namespace std;const int N = 205;const int M = 410;const int inf = 0x3f3f3f3f;struct node

2013-09-08 10:47:54 1050

原创 hdu4052Adding New Machine(线段树求矩形面积并)

题目请戳这里题目大意:给一个w*h的矩阵,给n个矩形,n个矩阵互不相交。再给一个1*m的矩形,要求与给定的n个矩形不相交,求能摆放的方案种数。题目分析:w和h很大,n有50000,所以离散化+线段树。因为要摆放的矩形是1*m的,所以这个矩形只有2种姿势:横着or竖着。所以从左向右扫描一遍,求出空地的面积并,从上向下扫描一遍,求剩余面积并相加即可。不过要对之前的n个矩形处理一下:对于第i个矩

2013-09-03 22:54:12 1170

原创 hdu4056Draw a Mess(线段树解法)

题目请戳这里题目大意:给一个n*m的矩形,有9中颜色,4种集合图形,q个操作,每个操作是将矩形中指定位置的某种几何形状的格子染相应的颜色。求最后9种颜色相应的数量。题目分析:第一眼感觉就是线段树,一开始想的是写个二维的线段树,然后就在想怎么更新比较快。发现二维线段树除了更新矩形外对于其他3个图形的更新毫无优势。如果一行一行的更新,太慢了。一直在纠结怎样快速成段更新其他3种几何图像。最后1个

2013-09-02 09:44:10 1047 2

空空如也

空空如也

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

TA关注的人

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