自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr.ProphetK

全栈_搞笑艺人_(:зゝ∠)_。。_(:зゝ∠)_。。_(:зゝ∠)_。。_(:зゝ∠)_。。_(:зゝ∠)_。。_(:зゝ∠)_。。_(:зゝ∠)_。。_(:зゝ∠)_。。。。。。。。。。。。。

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

原创 算法整理1--Hash表

用途我们可以高度概括一下:维护集合 举个例子,我手上有n个整数(可能有一大堆,比如1000个),想知道这些数里有没有10086和2333,我要怎么做? 办法当然有很多: 如果我们简单地将这些数字存在一个数组里,那我们大概只能把整个数组都找一遍,查询1000次,看看有没有我们想要的数字,这显然并不是什么好主意。我们都知道,计算机通过下标索引一个数组消耗的时间是很短的。利用这一点,如...

2018-07-30 14:36:33 235

转载 编写高性能的Lua代码

原文地址:wuzhiwei 的博客编写高性能的Lua代码Posted on2014/04/18 · 10 Comments前言Lua是一门以其性能著称的脚本语言,被广泛应用在很多方面,尤其是游戏。像《魔兽世界》的插件,手机游戏《大掌门》《神曲》《迷失之地》等都是用Lua来写的逻辑。所以大部分时候我们不需要去考虑性能问题。Knuth有句名言

2016-03-22 17:35:58 386

原创 【图论】【桥】【HDU4612】Warm up

原题链接:点击打开链接题目大意为:给你一个n (n询问在图中添加一条边后,能够使得新图中的桥最少。事实上,在无向图中的一条路径上,如果路径中含有桥,则连接路径的两个端点,可以将路径中的桥取缔。因此,题目变为在图中的一条含有桥最多的路径。算法设计:利用塔尖算法标记出无向图中的所有桥。把图中所有的桥设置权值为1,非桥的边权值为0。此时,在途中给找出一条权值最大的路径。

2015-07-22 15:44:29 449

原创 【图论】Ural 1557

Ural 1557  题目大意为,两个黑客攻击一个相互连通的网络。网络中有n台计算机和m条链路。每一个人可以选择一条链路进行攻击并将其截断,问在这两个人攻击完成后,能够将这个网络分割成至少两个部分的方案由多少种。需要注意的是,两名黑客不会攻击同一条链路。这也就说明,如果网络中仅有两个节点和一条边,答案应该是0(黑客不会同时攻击这一条链路,所以没法完成任务)数据范围:1 ≤

2015-07-10 17:21:01 800

原创 【图论】割点,桥,边双联通

#include#include#include#include#includeusing namespace std;const int maxn=20010;struct Edge{ int from,to;// 不带边权可删除var int var; bool is_bridge;};vectorG[maxn];vectoredges;v

2015-07-08 13:40:23 503

原创 华东交通大学2014年ACM“双基”程序设计竞赛解题报告

华东交通大学2014年ACM“双基”程序设计竞赛与2014年11月29下午17点结束。现发布解题报告。

2014-12-01 17:25:19 1100

原创 hdu2883

再来一题最大流。这里的建模,与汇点连接的是时间区间。可以理解成在一段时间里总共可以制作多少个kebab。如何这段时间满足客人的要求,则可以将该区间与客人相连,弧的流量设为能够制作的上界,或者直接设为INF就行。其余的建模步骤和常规任务分配最大流建模方式类似。#include#include#include#include#include#include#define INF 0

2014-02-28 11:54:37 613

原创 [最大流] hdu 3572 Task Schedule

题目链接点击打开链接将所有任务和每一天都当作一个节点,通过如下规则可构成网络:1.设一个源点S与所有任务节点n1...n2......nn相连,每一条弧的容量为完成任务所需要的天数。2.如果第i个任务可以在第Si天开始,在第Ei天结束,则将Si到Ei间的每一天的节点,都与第i个任务节点相连接,弧的容量为1。3.最后,将所有的日期节点,与一个汇点相连,所有的弧的容量都为机器的数量M。

2014-02-27 19:19:04 471

原创 【BFS】迷宫寻宝(一)(nyoj-82)

题目链接点击打开链接BFS题,看下NYOJ的讨论区,感觉数据挺变态。不过居然一边就AC了......好吧,个人觉得这题比较恼人的地方就是,一扇门需要集齐地图中的所有钥匙才能够打开。这一点我刚写的时候没有仔细看(还以为是一把钥匙一扇门),结果对题目给的第二组测试数据纠结了很久.....我的思路是:开一个key数组,在录入地图的时候,每逢a-e的钥匙出现,就计数+1;在BFS过

2013-07-12 15:59:38 766

原创 【BFS+优先队列】Battle City(poj-2312)

原题链接点击打开链接其实现在仔细想想,对初学者而言,在BFS和DFS中,还真是BFS学起来更为容易(至少我是这么认为)。BFS不需要层层递归,不需要考虑搜索路径不符合条件时应该如何变换。它只是一步一步的扫描,然后把相关信息归纳一下而已。我们需要的知识少许的STL知识就行了。言归正传,这道题应该属于迷宫搜索题,而在搜索过程中,又要找出最少“消耗”的那一条路,从这点看,又有点像图论中的最短路了

2013-07-12 12:26:47 571

原创 【变形Floyd】HDU-1217 Arbitrage

原题链接点击打开链接 弗洛伊德用于求最短路。 但在有些情况下,由于弗洛伊德核心代码的判定条件十分开房和明朗,只要通过对弗洛伊德的结构进行一些变换,便可以解决除最短路之外的相应问题。 在本题中,交换利率可以形象地理解为在若干个点中的一条路径。该路径在经过几个点之后,返回起始点。 在路径a->b途中,用路径的权值代表a兑换b的利率,于是,只要将路径的权值相乘,即使该路径最后得到的兑换率。 通过该方法,

2013-07-10 12:13:18 485

原创 【次小生成树】POJ-1679 The Unique MST

题目连接:点击打开链接   题目大意为:判断给定的无向图最小生成树是否唯一,如果是,则输出最小生成数的值,如果不是,则输出Not Unique!  次小生成树的求法应该有多种。这里的解法是自己由Prim算法的基础上修改而来的。在POJ中已经AC,但是由于听说POJ上数据很弱(?),也不知道有没有什么漏洞。只能算是巩固一下Prim。大致思路:在Prim求取最小生成数的同时,新开一个变量,

2013-07-07 10:52:43 511

转载 系统API函数获取系统时间

#include #include using namespace std; int main() { //SYSTEMTIME是windows.h中定义的结构体类型 SYSTEMTIME sys; //GetLocalTime是windows.h中提供的方法 GetLocalTime( &sys ); cout << s

2013-06-11 11:26:49 819

原创 【分治】Quoit Design (HDOJ-1007最近点问题)

原题链接:点击打开链接参考了网上的各种资料,算是摸清了这题的思路。在坐标系中有许多个点,给出点的坐标,要求的是最近两点的距离。很明显,暴力虽然能得到结果,但是必然超时。因此,使用分治思想。简单的说,首先,将输入的点按照x轴的大小顺升序。将当前范围内的点均分为左右两个部分。此时,以两部分中间的点为界,当前区域内距离最小的点可能出现两种情况:1是两点被分于同一侧,2是两者分居中线两侧。

2013-05-20 21:40:05 783

原创 【Nim博弈】Hdu 1850 Being a Good Boy in Spring Festival

原题链接:点击打开链接标准的Nim游戏博弈题。两个人玩游戏,其中有n堆扑克牌(每一堆有任意张数的扑克牌),每人一轮行动,每一次行动可以从一堆牌中任意抽取想抽取的张数。当有人无牌可抽时,则该人失败。定理:对于nim游戏的某个时刻(假设只有三堆扑克,每堆的数量由xi表示)扑克数量为x1,x2,x3,当且仅当它各部分的“异或”等于0时(即x1⊕x2⊕x3=0),则当前位于必败点。

2013-05-03 20:40:42 491

原创 【并查集】HDU1272

#include#includeusing namespace std;const int maxn=100005;int bin[maxn];bool place[maxn];int find(int x){ int r=x; while(r!=bin[r]) r=bin[r]; return r;}void merge(int a,i

2013-04-25 21:12:21 526

原创 HDU-1232(并查集学习笔记)

原来在练最小生成树的时候,用prim写过这个题目。后面发现这个题用并查集做更好。不管是时间还是占用内存都是大大优化了。并查集实现:每个集合用一棵“有根树”表示定义数组 set[1..n]set[i] = i , 则i表示本集合,并是集合对应树的根set[i] = j, j程序代码:#include#includeusing namespace std;

2013-04-25 21:01:40 502

原创 hdu 1068 Girls and Boys 解题报告

链接:点击打开链接题目大意:在n个学生的配对组合中,找出没有配对的人数。也就是题目中所描述的与他人没有缘分的苦逼青年。首先,缘分是两个人的是,题目中两人配对之后,就不与其他人再次配对。例如1,2可以配对,1,3也可以配对,但是若1,2已经配对了,那么1将无法再和3配对。也就是说,1,2,3中至少有一个人与别人有缘无分。说白了,这题就是找二分图的最大独立集。(二分图的最大独立集=二分图节

2013-04-15 20:57:20 608

原创 hdu1151 学习笔记

这题是一道DAG图的最小路径覆盖问题。DAG图的最小路径覆盖:用尽量少的不相交简单路径覆盖有向无环图(DAG)G的所有顶点,这就是DAG图的最小路径覆盖问题。方法主体是:DAG图的最小路径覆盖数=节点数(n)- 最大匹配数(m)在题目中,将所有地点(1,2,3...n)都当做两份,形成共含有2n个节点的二分图。然后寻找到最大匹配,在以节点数n减去最大匹配数就可以了。匈牙利算

2013-04-15 20:01:51 489

原创 hdu 2063(二分图最大匹配)学习笔记

解法参考:点击打开链接数据结构书上的描述是:哈希表,又称散列表,是除顺序储存结构、链表存储结构和索引表存储结构之外的又一种存储线性表的存储结构。我的理解是,哈希表就是一种利用一个关键字和关键字对应的储存规则进行数据储存的结构。我们利用三个数组head[i],key[i],next[i]来描述这种关系;具体代码如下:#include#includeusing namesp

2013-04-15 19:56:23 501

空空如也

空空如也

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

TA关注的人

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