- 博客(17)
- 收藏
- 关注
原创 HDU 5336 XYZ and Drops(十滴水游戏) 模拟
题目链接:hdu5336题意:十滴水游戏,具体细节见http://www.4399.com/flash/6356_2.htm给出所有已固定大水滴 的位置和大小问在(x,y)处发生爆裂 的T秒后,所有已固定水滴的状态解题思路:大水滴会分裂,每一秒保存所有正在飞溅的小水滴(x,y,dir),每个小水滴有三种情况
2015-07-31 09:50:27 1014
原创 HDU5335 Work Out 层次遍历
题目链接:HDu5335题意:1000X1000的地图, 问通过四个方向从(1,1)走到(1000,1000)所经过的最小二进制序列是多少.解题思路:首先应该通过bfs找到 (1,1)能走到的值为0且最接近右下角的位置 (x+y值最大 ,有多个全部保存)这样就能保证接下来找的序列是最短的接下来每一步的
2015-07-30 20:55:56 941
原创 poj1637 混合图欧拉回路的求解 网络流
题目链接:POJ1637题意:一幅图 ,给出有向边和无向边,问是否有经过所有边仅一次的欧拉回路解题思路:混合图欧拉回路的求解需要用到网络流,具体的建模方法如下:1、先给所有无向边定向,然后统计所有点的入度和出度,2、如果某点 入度-出度=奇数 那么一定不能构成欧拉回路 //入度+x 出度-x 度数差奇偶性不变3、如果
2015-07-28 16:47:29 1353
原创 poj 3436 ACM Computer Factory 最大流拆点+输出路径
题意:每台ACM 计算机包含P 个部件,当所有这些部件都准备齐全后,计算机就可以组装了,组装好以后就可以交给竞赛队伍使用了。计算机的生产过程是全自动的,通过N 台不同的机器来完成。每台机器从一台半成品计算机中去掉一些部件,并加入一些新的部件(去除一些部件在有的时候是必须的,因为计算机的部件不能以任意的顺序组装)。每台机器用它的性能
2015-07-28 09:14:32 1035
原创 POJ2391 Ombrophobic Bovines 网络流拆点+二分+floyed
题目链接:poj2391题意:有n块草地,每块草地上有一定数量的奶牛和一个雨棚,并给出了每个雨棚的容(牛)量.有m条路径连接这些草地 ,这些路径是双向的,而且很宽敞,可以容下无限条牛并排走, 给出经过每条路径所需要消耗的时间问:所有牛都到达雨棚下的最小时间解题思路:类似 牛与挤奶器的问题http://blog.
2015-07-27 17:38:32 932
原创 Hdu 2236 无题II 最大匹配+二分
题目链接:Hdu 2236解题思路:将行和列理解为二分图两边的端点,给出的矩阵即为二分图中的所有边,如果二分图能完全匹配,则说明 不同行 不同列的n个元素 区间为(min_edge,max_edge),这些edge是指构成完全匹配的那些边题目需要求解最小区间长度我们 可以 二分区间长度(0~100),每次枚举区间的下界最后得到的maxl 即为
2015-07-25 09:41:30 1084
原创 Hdu5303 Delicious Apples 贪心
题目链接:HDU5303题意:有一条环形的长为L的路,仓库在位置0处,这条路上有n棵苹果树,给出每棵苹果树的位置和苹果数量,问用 一次最多能装K个苹果的篮子 把这条路上所有苹果采回仓库最少需要走的距离解题思路:这条路是环形的,先把果树分为两部分,圆的左半边算一部分,圆的右半边算另一部分对所有苹果根据距离排序 , 用
2015-07-24 20:55:32 817
原创 Hiho1186/ 第五十五周 连通性·四 点双连通分量
题意:给出一幅n个点m条边的连通图 求图中有几个点双连通分量并输出每条边所在点双连通分量中所有边的编号最小边的编号代码:#include#include#include#define maxn 20050#define maxm 200050using namespace std;struct node{ int id,t
2015-07-20 14:45:33 972 2
原创 PAT 1095 Cars on Campus 模拟
题目链接:PAT1095题意 :有一个学校,每天会有很多车进出;给出N条车辆进出情况和M条询问每条询问输出当前校园有多少辆车,时间从0点24点 最后输出停留最久的车的车牌号和停留时间, 如果有多个,则按字典序输出车牌号注意 必须要使得所有数据保证以下情况,否则为无效数据:1 最开始校园里是没车的2 最后不能有车停留3 同一辆车连续多次进入 只有
2015-07-17 17:47:45 1987
转载 C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a = 100;int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include using namespace std;class CExample {private: in
2015-07-12 11:42:46 509
原创 POJ3592 Instantaneous Transference 强连通+最长路
题目链接:poj3592题意:给出一幅n X m的二维地图,每个格子可能是矿区,障碍,或者传送点 用不同的字符表示;有一辆矿车从地图的左上角(0,0)出发,只能往右走或往下走,或者通过传送点 选择是否 传送到特定地点采过的矿的格子 矿会消失;问这辆矿车最多能采多少矿解题思路:首先重新建图,将图中二维的顶点压缩成一维的顶点
2015-07-10 17:40:52 930
原创 POJ1236 Network of Schools 强连通+缩点
题目链接:poj1236题意:给出一幅有向图,给出图中所有的边。问:1.要遍历完图的所有顶点,需要遍历多少次(可以从不同起点)2.要想只遍历一次,经过图中所有顶点(强连通)最少 需要增加多少条边题解思路:首先就是缩点重新建图对于问题1:要遍历整个图,只需要从图的所有起点开始遍历这里图中的起点就是入度为0的点,起点个
2015-07-09 17:49:51 866
原创 POJ2762 Going from u to v or from v to u? 强连通+缩点
题目链接:poj2762题意:给出一幅单向图,问这张图是否满足 任意两点ab 都能 从a到达b 或 从b到达a题解思路:判断一幅图是否满足弱连通 首先想到的是将图中的 强连通分量(能互相到达的顶点集) 进行缩点然后再根据原有边 重新建图如果缩点后的图是一条单链(回路,通路都可以) 则一定
2015-07-09 11:54:40 1002
原创 POJ3694 Network 割边+LCA
题目链接:Poj3694题意:给出一个N(1 ≤ N ≤ 100,000)个点 和 M(N - 1 ≤ M ≤ 200,000)的连通图.有Q ( 1 ≤ Q ≤ 1,000)个询问 每次询问增加一条边(累加下去)输出每增加一条边后剩下的桥的数量题解:10W点加1000次询问 每次询问都用Tarjin算法求一次肯定会超时的
2015-07-06 19:46:23 782
原创 POJ 3177 Redundant Paths 边双连通分量+缩点
题目链接:poj3177题意:给出一张连通图,为了让任意两点都有两条通路(不能重边,可以重点),至少需要加多少条边题解思路:分析:在同一个边双连通分量中,任意两点都有至少两条独立路可达,所以同一个边双连通分量里的所有点可以看做同一个点。缩点后,新图是一棵树,树的边就是原无向图桥。现在问题转化为:在树中至少添加多少条边能
2015-07-03 18:21:29 878
原创 ZOJ 2588 Burning Bridges 割边的求解
题目链接:ZOJ2588题意:给出一个无向的连通图,问去掉图中的哪些边,都会使图将不连通题解思路:割边的求解:1、需要用到Tarjan算法的框架,首先求出dfn low 两个数组 当递归返回时 判断dfn[u]和low[v]的关系 只有当dfn[u] < low[v] 的情况下u-v是一条割边(u是关
2015-07-02 08:39:47 880
原创 点双连通分量的求解 Tarjan算法的拓展
问题描述:给出一张连通的无向图 输出图中的所有连通分量代码:#include#include#include#define maxn 1050using namespace std;struct node{ int from,to,next,vis; int equall(node b) { if((from
2015-07-01 11:38:00 926
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人