自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 poj 炮兵阵地 状态压缩DP + 位运算

炮兵阵地Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 13278 Accepted: 4868Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平

2012-08-31 22:46:16 804

原创 位运算

位运算就是直接在内存中对二进制位进行操作。优点是:由于直接对二进制进行操作,而不用转化成十进制进行运算,所以运算速度特别快。位运算符号 :  1. 位移运算 : >                       原来是  01100101 左移一位后就是 11001010 最后补了一个0.              效果: 左移x位就是让原来的数字乘以2^x

2012-08-29 18:42:01 769

原创 查分约束

如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi求解差分约束系统,可以转化成图论的单源最短路径(或最长路径)问题。在单源最短路中,dis[ u ] 表示 从源点到 u 这个点的最短路,在有向图,如果把dis[ u ]看成每个点的一个属性的话,那么这个图中,对于u--> v 这条有向边,一定会有这么一个性质: dis[ v ]而查分约束正是根据 x

2012-08-26 16:55:21 1192

原创 spfa 算法 (单源最短路)

求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm。简单的说就是队列优化的bellman-ford在路径中存在负权边是 dijkstra 就没法使用了 ,这是就可以SPFA 了但是当有负权的环是 就没有最短路,spfa 可以判断是否有负权环,如果没有就可以求出最短路。。期望的时间复杂度O(ke), 其中k为所有顶点进队的平均

2012-08-24 22:07:51 4425 1

原创 floyd-warshall 算法分析 每对顶点之间的最短路

floyd 算法是基于DP(动态规划的一种算法),用于求每对顶点之间的最短路。floyd 算法是 三层 for 循环 ,复杂度是O(v^3) ,并且 隐藏在 O(v^3)下的常数也是非常小算法介绍:它需要用邻接矩阵来储存边从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,边权就是无穷大。对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得

2012-08-23 14:11:18 2509

原创 c++ 中 pair 的 使用方法

pair的类型:    pair 是 一种模版类型。每个pair 可以存储两个值。这两种值无限制。也可以将自己写的struct的对象放进去。。    pair p;    pair p;   pair p;  都可以。。。     应用:如果一个函数有两个返回值 的话,如果是相同类型,就可以用数组返回,如果是不同类型,就可以自己写个struct ,但为了方便就可以使用

2012-08-21 13:59:05 73390 8

原创 Prim 算法求最小生成树 O(n^2)

最小生成树: 给出一个无向图 G=(V ,E)  , V(vertex)表示 图上点的集合, E(edge)表示这个图上边的集合。对于图上每一条边(u,v)∈   E ,  都有一个权值 w(u,v)。我们希望找出一个不含有回路的自己T⊆E,它连接了所有的节点。(通俗的说:就是在一个无向图上选出一些边,是所有点连同,并且无环(因为生成的结果是一个树  ,树是无环的))。而最小生成树是 是取出的

2012-08-20 13:40:30 6334 1

原创 ZOJ 1203 Swordfish (最小生成树 prim算法)

关于prim 算法在我写的另一篇中做了详细解释。http://blog.csdn.net/oceanlight/article/details/7885941此题是裸的最小生成树,比较容易。不过第一次写,不熟,写错了一处,一直wa。。。。此题的图是个完全图 E = V*(V-1)/2;prim 朴素的算法是 O(V^2)而kruskal 算法 是 O(ElgE) ,因为是完全图

2012-08-19 23:39:38 990

原创 POJ 3601 Escape from Enemy Territory (二分+BFS+预处理)

原题:http://poj.org/problem?id=3501题意是: 有些士兵完成任务后要返回原地,区域被看成矩形,每个小区域有被看成小正方形。在地图上的某些方格内有敌人。。他们要返回原地,选择一条路使得路的点距离敌人最近的那个点 距离敌人最远,距离是曼哈顿距离|x-xi|+|y-yi|,如果有多条选择最近的。。输出 这条路上距离敌人最近的点到敌人距离 和 这条路的长度、、思

2012-08-18 21:56:08 1154

原创 POJ 3687 Labeling Balls 拓扑排序 优先队列实现

题意是:  有重量从1到N 的 球,和1- N的标签,对球进行标记。给出M个关系A B 表示  标签A的球的重量要求对其排序 ,重量从小到大,  同时使标签1 尽可能的 排在前边,满足标签1的球之后,在使得标有标签二的球尽可能的靠前,依次排序。。。 如果有这样的结果输出结果如果没有输出-1;这个题目很诡异。。。。 不仔细读题的话,很可能出错,For each test ca

2012-08-18 13:43:45 1572

原创 POJ 1094 Sorting It All Out 拓扑排序

题意是  给出你一个数N,(表示 从A 开始的N个大写字母) 以及这N字母 的M个关系 ,关系是 AN个字母的大小顺序,能否出现 矛盾。共三种结果 。思路:  每次读入后,拓扑排序。。  判断能否排好序或者出现矛盾。 只要在拓扑排序上稍加改动就行。。    一 。能否排好序:每次往队列添加一个数,在抛出一个,在添加一个 ,才能是拍好序的。。。 于是 每次往队

2012-08-17 01:01:53 718

原创 POJ 1465 Multiple BFS + 余数判重

题意是: 给出一个 0 - 4999 的数 N  ,在给出 M 个0-9的数,判断这M个数字能不能构成一个数是N的倍数,如果有输出最小的,如果没有输出0。   初次做的 时候犯了很多错误。。。CE TlE 等等各种,  初次做这个题目的时候用了 long long 结果就悲剧了。。。 想了想 long long 明显hold 不住 因为结果可能很大。不信的话 跑一下这组数据  4999

2012-08-15 23:34:38 2415

原创 HDU 3466 Proud Merchants DP 分享排序方式的证明。。

此题我纠结了一下午,最终。。。。。。还是没想出来。然后看了神牛的题解 说是 按  q-p 排序。。。 于是我就去想为什么按此排序。。在雨中漫步了一会,今晚的济南的正好下雨,但还是习惯性走出实验室,思考了十几分钟之后,终于想通了。。。。  于是就在这写题解。。。 我感觉这是一个好题。。。。。。。。Proud MerchantsTime Limit: 2000/1000 MS (J

2012-08-14 22:29:23 5723 2

原创 SGU 259 单机调度问题 +贪心 及此题解法的证明

259. Printed PR time limit per test: 0.5 sec.memory limit per test: 65536 KBinput: standardoutput: standardSmall PR-agency got an order to print a very big lot of agitational materials.

2012-08-13 23:34:46 4564

原创 HDU 4091 Zombie’s Treasure Chest (每日一题)

大意是: 一些战士来到了一个村庄,发现了两种宝石和一个宝箱,每种宝石的个数是无限的,给出了宝箱的大小 N 和两种宝石的 size 和 value ,即 N s1 v1 s2 v2 ,已知这五个两,求利用这个宝箱,战士能够带走多大价值的宝石。 五个数的范围是 int 。 也就是 10^9。如果范围比较小的话,就直接可以用多重背包的解法。 但是数据范围是 10^9 就没法用 多重背包来做了。。

2012-08-12 20:32:14 2371 2

空空如也

空空如也

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

TA关注的人

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