自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 弄了个空间,买了个域名,装了个wordpress

<br />http://blog.acmol.com

2011-04-29 14:05:00 567

原创 【POJ 1986】Distance Queries 最近公共祖先

<br />题意:<br />给你一棵树,这棵树上任意边长已知,问你这棵树上任意两个点之间的距离,询问的次数很多,所以每次查询都深搜会超时。<br />思路:<br />以任意结点为根,用LCA的经典算法求出所有查询的两个结点的最近公共祖先,dfs求出任意一点到根结点的距离,则两个结点到最近公共祖先的距离可之和即为所求。<br /> <br />下面写的是用Tarjan算法求LCA的实现<br />#include<iostream>#include<cstdio>#include<cstring>

2011-04-11 13:52:00 905

原创 【POJ 1984】Navigation Nightmare (并查集)

并查集的题,说是图论也算是吧。题目中较易出错的两个地方:一、index不一定是升序的,要注意按原题中的顺序输出结果。比如:8 71 2 1 S3 4 5 S5 6 8 S7 8 2 S3 2 3 N7 6 13 N5 4 7 N61 3 11 4 53 4 24 5 71 8 61 8 7应该输出的是-1957-139二、注意查询时可能一个时间查询多次。(如果出现这个错误的话,上面的那组数据中的最后一组估计不会得到正确的结果)#in

2011-04-11 10:14:00 735

原创 【POJ 3295】Tautology 前缀式计算

用K表示“且",A表示"或",N表示"非",C表示"推导"(相当于a->b相当于!a||b),E表示"等值"问你一个式子是否是重言式(永真式)。方法就是枚举各种取值计算式子的值。#include#include#include#include#includeusing namespace std;bool state[5];int start=-1;char str[110]="p";bool val(){ int p,q; switch(str[++star

2011-04-09 11:07:00 1152

原创 【POJ3615】Cow Hurdles 多源多点,Floyd扩展

<br />题目大意:<br />有一些奶牛要进行一些跨栏训练,训练场地共有不超过300个站点,有的两个站点之间有一条有向路,这条路中有一个跨栏,现在要求你找出从某一号站点到另一个指定站点中的所有路中,所能遇到的最高的栏最低的一条路(有点绕)。。<br />用Floyd-warshall算法,把缩边条件大致改一点点就OK了,这种题直接看代码可能更清楚。<br />#include<iostream>#include<cstdio>#include<cstring>#include<algorit

2011-04-09 09:22:00 640

原创 【POJ1201】Intervals 差分约束系统

原来有个更好的方法,不知道为啥有错,在改。。改好之后再好好写报告 。#include#include#include#include#include#includeusing namespace std;const int MAX=500010;int Head[MAX],Next[MAX],Tonum[MAX],top=0,Len[MAX],Q[MAX],inQ[MAX];int Rlen[MAX],maxb=0,INF=0x3fffffff;int n;set

2011-04-08 17:30:00 488

原创 【POJ 3159】 Candies 差分约束系统

题目意思(题意摘抄自其它博客):flymouse是幼稚园班上的班长,一天老师给小朋友们买了一堆的糖果,由flymouse来分发,在班上,flymouse和snoopy是死对头,两人势如水火,不能相容,因此fly希望自己分得的糖果数尽量多于snoopy,而对于其他小朋友而言,则只希望自己得到的糖果不少于班上某某其他人就行了。比如A小朋友强烈希望自己的糖果数不能少于B小朋友m个,即B- AA、B小朋友的分得的糖果数。这样给出若干组这样的条件,要使fly最后分得的糖果数s1和snoopy最后分得的糖果数s2差别取

2011-04-07 11:09:00 636

原创 【POJ2135】Farm Tour 最小费用最大流

<br /><br /><br />题目大意:给你n个点(n <= 1000)和m条边(m <= 10000),现在从点1出发经过一些边后到点n,然后再经过一些边回到点1,每一条边只能走一次,每条边花费的时间不同。求最小路径。<br /><br /><br />解题思路:最小费用最大流。加一个源点S和一个汇点T,源点S与点1连一条容量为2费用为0点边,点n与汇点T也连一条容量为2费用为0的边,对于题目给定的那些边。每条边的容量为1,费用为每条边花费的时间。注意这是双向边。然后求最小费用。<br /><br

2011-04-06 13:24:00 727

转载 【海盗问题】500名海盗分金子

<br />先来看看此难题原先的形状。10名海盗抢得了窖藏的100块金子,并打算瓜分这些战利品。这是一些讲民主的海盗(当然是他们自己特有的民主),他们的习惯是按下面的方式进行分配:最厉害的一名海盗提出分配方案,然后所有的海盗(包括提出方案者本人)就此方案进行表决。如果50%或更多的海盗赞同此方案,此方案就获得通过并据此分配战利品。否则提出方案的海盗将被扔到海里,然后下一名最厉害的海盗又重复上述过程。所有的海盗都乐于看到他们的一位同伙被扔进海里,不过,如果让他们选择的话,他们还是宁

2011-04-06 12:47:00 936

原创 【POJ 1149】 Pigs 最大流

<br /><br />大意是这样的:<br />· 有 M 个猪圈(M ≤ 1000),每个猪圈里初始时有若干头猪。<br />· 一开始所有猪圈都是关闭的。<br />· 依次来了 N 个顾客(N ≤ 100),每个顾客分别会打开指定的几个猪圈,从中买若干头猪。<br />· 每个顾客分别都有他能够买的数量的上限。<br />· 每个顾客走后,他打开的那些猪圈中的猪,都可以被任意地调换到其它开着的猪圈里,然后所有猪圈重新关上。<br />    问总共最多能卖出多少头猪。<br /><br /><br

2011-04-05 16:11:00 682

原创 【POJ 1637】Sightseeing tour 混合图欧拉回路 最大流

<br />题意就是求混合图的欧拉回路是否存在。<br />题中说明了是连通图,并且任意一点都可由其它点达到。所以,不必再判断连通性了,直接最大流就OK.<br /> <br />看了看黑书,没看懂,看了看网上的解释,依然没看懂。。<br />后来,只好自己想啊想,想啊想,终于给A了。。<br /> <br />我是先把每个边都当成向边判断是否存在奇度顶点,如果存在肯定不存在欧拉回路了。<br />同时用一个数组d2只统计有向边获取每个点的有向的度(出度记为正,入度记为负)。<br />然后,建立出如下的图

2011-04-04 21:52:00 669

原创 第一次写最小费用最大流

写了POJ3281...那个题是求最大流的,我直接用它来验证一下最大流求得对不对。。。#include#include#include#include#include#include#include#define CLR(arr, val) memset(arr,val,sizeof(arr))using namespace std;const int MAX=200,INF=100000000;class MinCostMaxFlow{public: i

2011-04-02 11:27:00 405

原创 纠结的各种最大流算法

<br />会了一种又一种,发现不会的还有一种又一种。。纠结啊纠结。。

2011-04-01 13:30:00 383

原创 【POJ3281 Dining 】最大流

构图比较巧妙,数据量不大,直接用EK就能过构图时源->食物->牛->牛->饮料->汇任意边容量都是1不能构成“源->食物->牛->饮料->汇”,因为这样构图不能保证每头牛都只吃一份。#include#include#include#include#includeusing namespace std;const int MAX=410;int cap[MAX][MAX],flow[MAX][MAX];bool visited[MAX];//0序图下方可正常工作int

2011-03-30 14:27:00 661

原创 POJ1975 Median Weight Bead

<br />和POJ3660主要思想是一样的<br /><br />用1表示a>b,用2表示a<b,用0表示关系无法确定,然后,把FLoyd的缩边改成:if(g[j][i]==g[i][k] && g[j][i]) g[j][k]=g[j][i];<br />最后的g数组就表示了任意两个点之间的关系。<br />最后如果哪一个点有(n+1)/2个以上的点比该点大或者比有(n+1)/2个以上的点比该点小,则说明该点不可能为中间重量的点。<br />#include<stdio.h>#include<str

2011-03-24 11:28:00 652

原创 POJ3660 Cow Contest Floyd算法

<br />初看起来是拓扑排序,DFS了一会儿之后发现不对头。。<br />仔细想想才看出原来是Floyd..<br />用1表示a>b,用2表示a<b,用0表示关系无法确定,然后,把FLoyd的缩边改成:if(Graph[j][i]==Graph[i][k] && Graph[j][i]) Graph[j][k]=Graph[j][i];<br />最后的Graph数组就表示了任意两个点之间的关系。<br />然后,就可以判断一下是不是某点与其它点之间的关系都是确定的(Graph数组中对应值不是0)。<b

2011-03-23 20:06:00 535

原创 POJ1511 Invitation Cards

<br />//题意:求志愿者早上从总站分别到各站和晚上回到总站的最少总路费#include<iostream>#include<algorithm>#include<vector>#include<queue>#include<algorithm>#include<numeric>#include<cstdio>using namespace std;const int MAX=1000010;int Len[MAX];const int INF=1000000

2011-03-23 19:49:00 470

原创 POJ1502 MPI Maelstrom 基本最短路

<br />最基本的最短路径问题,求出到各个点的最短路,然后输出Len数组中的最大值即可,我用的SPFA<br />#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cstdio>#include<string>#include<sstream>#include<algorithm>#define getint(var) scanf("%d",&var)using name

2011-03-23 15:37:00 580

转载 盗梦空间续集: A Programmer’s Perspective

<br /> 转载自【RoBa】大神的博客<br /> <br />作为一个资深宅男,去电影院神马的那是不可想象的事情,所以直到前几天我才得以从网上下到了传说中的《盗梦空间》,看完觉得其实想象力可以再疯狂一点,比如按如下这个思路搞个续集:<br />电影开场延续前作结束时的场景,最后那个陀螺确实是停下来了,于是Cobb知道他确实是在现实中了。但是随着他继续进行各种盗梦的任务,他越来越怀疑所谓的现实只是一个更大更圆满的梦境。比如,Cobb知道在梦境里一个人经常回忆不起他是怎么来到这个场景的,而在现实里,虽然你

2011-03-23 14:34:00 888 1

原创 POJ1125 Stockbroker Grapevine SPFA或Floyd

我写的SPFA数据很水,0MS#include#include#include#includeusing namespace std;const int INF=1000000;struct GNode{ GNode(){} GNode(short num,short len):len(len),num(num){} short len,num;};const int MAX=110;int Len[MAX];int SPFA(const vector

2011-03-23 13:01:00 573

原创 ZOJ 3336 Friend Number II

<br /><br /><br />初看比较难写似的,仔细一分析,发现很简单:<br />先反转字符串<br />然后找到第一个非0数,该数--<br />从这里往后找到第一个非9数,该数++<br />然后,反转非9数前的所有数,<br />然后反转字符串<br /><br />#include<cstring>#include<algorithm>#include<cstdio>using namespace std;void getnext(char num[],int total)

2011-03-23 12:16:00 506

原创 我完成的图论题

POJ1062* 昂贵的聘礼 枚举等级限制+dijkstraPOJ2607,ZOJ1857,NYOJ210 Fire Station  最短路算法,除了在POJ之外,其它地方你都需要尽量考虑一下效率。。

2011-03-23 09:22:00 625

原创 POJ 2607 / ZOJ 1857 /NYOJ210 Fire Station

Fire Station//SPFA..//ZOJ上,0MS,192K.现在第3..POJ上64MS,15名//NYOJ上的数据量是ZOJ上的20倍。。认为自己程序写得好的可以去提交试试/NYOJ210#include#include#include#include#include#include#includeusing namespace std;vector fire;const short MAX=500;int INF=0x7fff;struct GNo

2011-03-23 09:18:00 738

原创 图论该努力的进阶一下了

不再乱搞其它方面了,近阶段多一搞些图论的题目了。

2011-03-22 08:31:00 390

转载 POJ图论总结【转载】

1062* 昂贵的聘礼 枚举等级限制+dijkstra1087* A Plug for UNIX 2分匹配1094 Sorting It All Out floyd 或 拓扑1112* Team Them Up! 2分图染色+DP1125 Stockbroker Grapevine FLOYD1135 Domino Effect 最短路1149* PIGS 网络流1161* Walls floyd1201 Intervals 差分约束1236* Network of Schools 强联通1251 Jung

2011-03-22 08:26:00 417

原创 【POJ3783 Ball】 动态规划

有m个相同的玻璃球,n层楼,你想知道这些玻璃球从第几层往下落的时候会摔烂。最坏情况下最少需要扔多少次玻璃球才能测出玻璃球的强度?

2011-03-20 16:55:00 1296 2

原创 POJ1111

<br />光棍节之题。。现在做得不是时候了。。<br />题意: 先输入一个矩阵,再输入一个X的位置,然后输出与这个X在八个方向能够连起来的所有X组成的图形的周长。<br />思路:搜索,过程中把该块上所有的X旁边有几个点是".",把所有的点旁边的"."数加起来就是总连长了。<br />#include<iostream>using namespace std;char Mp[30][30];int dir[8][2]={{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-

2011-03-20 13:05:00 1825

原创 POJ1062

<br /> <br />#include<iostream>#include<vector>#include<queue>using namespace std;struct Node{Node(){}Node(int num,int dis):num(num),dis(dis){}int dis,num;};struct Node2{Node2(){}Node2(int num,int dis,int maxlevel,int minlevel):nu

2011-03-20 10:19:00 499

原创 数论基础

一、大数求余#includeint Mod(char* bigint,int num){ int s=bigint[0]-'0'; for(unsigned i=1;bigint[i];i++) s=(s*10+bigint[i]-'0')%num; return s;}

2011-03-19 16:49:00 431

C语言不画图版扫雷程序及代码

C语言代码,我用的VC++6.0编译器,没有使用画图函数,全部字符的扫雷游戏。可以在代码里用#define设置扫雷区域大小与雷数。 和我的另一个资源“C语言不画图版五子棋”有大部分代码类似。(其实这个是用那个改过来的)

2009-10-10

空空如也

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

TA关注的人

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