自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 欧拉函数求法与应用

欧拉函数在OI中是个非常重要的东西,不知道的话会吃大亏的.欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数.对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数(包含1).

2016-07-23 10:34:04 33597 7

转载 格点和最大公约数

给定线段起点和终点,问这条线段上有多少个格点。我们知道,把它平移到原点不会对这个问题有影响。一个线段(x1,y1) (x2,y2)平移到源点就变成了(0,0) (|x2-x1|,|y2-y1|)。对于线段上每一个点的坐标,相当于  ( k*|x2-x1|, k*|y2-y1| ) (0要想让它是格点,就需要这两个都是整数,也就是需要k是它们公约数分之一所以答案应该是最大公约数减去1

2016-07-22 21:37:24 654

转载 差分约束系统 poj 3169

来源:http://blog.csdn.net/xuezhongfenfei/article/details/8685313来源:http://www.cnblogs.com/void/archive/2011/08/26/2153928.html差分约束系统详解概述一直不知道差分约束是什么类型题目,最近在写最短路问题就顺带看了下,原来就是给出一些形如x-y

2016-07-22 16:46:20 368

转载 次短路问题

基本的想法:删掉最短路上的一条边,然后不断寻找最短路,这样每次的复杂度是O(n^2),删掉边是O(n)次,所以总的是O(n^3)Dijkstra的想法:记录最短路和次短路,每次用这个最短路和次短路更新周围的点。(这样做的想法是:次短路要么是u-v的次短路加上v到e的最短路,或者是到某个点的最短路加上次短路)#define N 100000+10  #define INF 1

2016-07-22 15:03:39 1293

原创 poj3273 最大生成树

刚开始的想法:用数组usedman和usedwoman来检查顶点的使用情况对边进行排序,然后检查这条边的from和to,如果from和to都没有使用,那么ans+=20000-costr如果from使用了 那么used【to】=true,ans+=10000-cost   to同理WA了。。#include #include #include #include usin

2016-07-22 14:12:30 272

原创 dp 硬币找零问题

集训队题目:给出的硬币是一个三角形数字,用最少的硬币,同时输出最少硬币情况下硬币的最大面值。用简单地一维dp就可以了dp[i]表示表示面值i最少需要多少个硬币。所有的硬币找零问题基本都可以用dp来解决,并且复杂度基本在O(n根号n级别)因为没有打表,所以最后超时了。。。。。#include #include #include #include using nam

2016-07-19 19:07:36 500

原创 dijkstra + heap 优化

spfa和bellman-ford复杂度是同阶的。虽然据说spfa复杂度是O(K*E)(k为某个常数,2~3),但是最坏情况下为O(N*E),卡spfa的题目无法通过。所以有正边的时候最好用dikstra+heap优化,并且有priority queue代码量不会很大1.bellman-ford算法:bellman-ford算法的核心是松弛操作:用一个while(true)

2016-07-19 15:58:56 1006

转载 线段树 (坑)

z

2016-07-19 15:11:24 218

转载 动态规划的优化技巧

动态规划算法的优化技巧福州第三中学   毛子青 [关键词] 动态规划、 时间复杂度、优化、状态 [摘要]动态规划是信息学竞赛中一种常用的程序设计方法,本文着重讨论了运用动态规划思想解题时时间效率的优化。全文分为四个部分,首先讨论了动态规划时间效率优化的可行性和必要性,接着给出了动态规划时间复杂度的决定因素,然后分别阐述了对各个决定因素的优化方法,最后总结全文。 [正

2016-07-19 11:40:30 7274

转载 一名程序媛的IT资源整理

来源:http://www.jianshu.com/p/3356f7f7150e#平时会浏览各种IT网站,这里做个备忘录,以便自己随时查询。一、可以找到好的开发实践项目的地方:1、开源中国国内开源社区,里面有很多开源文档或者项目可以供大家学习,也有交流的地方;2、GitHub最大的开源中心,项目也五花八门,应有尽有,不过需要自己慢慢挑选;3、实验

2016-07-19 11:31:38 714

原创 带权并查集 poj 1182

带权并查集和普通并查集最大的区别在于带权并查集合并的是可以推算关系的点的集合(可以通过集合中的一个已知值推算这个集合中其他元素的值)。而一般并查集合并的意图在于这个元素属于这个集合。带权并查集相当于把“属于”的定义拓展了一下,拓展为有关系的集合。

2016-07-18 15:48:01 329

原创 poj 2431

关键不是学习数据结构,而是利用数据结构。根据题目自己先思考,数据结构只是为了降低复杂度的一个工具思考:先考察不加油能到达的最远距离,并且把路上的加油站(未利用的)都包括进来。当邮不够的时候,就选取最大的加油站点加油,并且再次前行。#include #include #include using namespace std;int N,P,L;int dis[10020];int n

2016-07-18 11:56:06 203

转载 优先队列-stl

priority_queue 默认顶部是最大值1) 优先队列的定义包含头文件:"queue.h", "functional.h"可以使用具有默认优先级的已有数据结构;也可以再定义优先队列的时候传入自定义的优先级比较对象;或者使用自定义对象(数据结构),但是必须重载好2) 优先队列的常用操作优先级队列支持的操作q.empty()

2016-07-18 11:26:47 286

原创 塞奇威克-符号表

符号表要实现的功能就是一个键和一个值对应起来,在c++的stl中由map类来实现在符号表中,每个键只对应一个值,我们应该能实现高效地插入,寻找,删除操作。有序符号表:键都是可以比较的对象。(在stl中,常用的顺序容器是set,其内部维持一个红黑树)1.BST 二叉查找树

2016-07-15 19:15:35 472

转载 KMP-字符串匹配

kmp

2016-07-14 16:45:34 451

转载 树状数组

来源:http://blog.csdn.net/ljd4305/article/details/10101535来源:http://blog.csdn.net/int64ago/article/details/7429868树状数组的作用对于普通数组,其修改的时间复杂度是O(1),而求数组中某一段的数值和的时间复杂度为O(n),因此对于n的值过大的情况,

2016-07-13 15:24:58 257

转载 关于c++ 学习

c++ primer作者:匿名用户链接:https://www.zhihu.com/question/32087709/answer/55497335来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。对于工程性、技术性的知识,没有实践的感性认识作为基础,读也读不懂。那么问题来了,没有实践就没法读懂,没法读懂自然也就没法去做正确且高质量

2016-07-13 10:49:59 298

原创 网络流-最小费用最大流

(在最小费用最大流中,最大流量是唯一的,但是最大流不唯一,在保证最大流的条件下,加上一些参数,确定最小费用最大流的唯一性) 最小费用流其实是线性规划的一种特殊类型。所以解决最小费用流的方式其实可以为解决线性规划问题提供一个解决方法。我们知道,寻找最大流是通过不断寻找增广路对原图进行增广。现在,我们考察一下顺着一条增广路增加一个单位流量会造成费用的什么变化。`flow’=flow+1;`此时`co

2016-07-12 15:40:27 2001

转载 线段树(坑)

https://comzyh.com/blog/archives/452/

2016-07-12 11:54:12 240

原创 ACM注意

1.包含标准库额头文件#include这个头文件包含以下等等C++中包含的所有头文件:#include #include #include #include #include #include #include #include #include #include #include #include #include

2016-07-11 10:11:33 346

转载 POJ归类

转自:http://blog.sina.com.cn/s/blog_90c5a1ad01013oax.html初期:一.基本算法:(1)枚举. (poj1753,poj2965)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法.(4)递推.(5)构造法.(poj3295)(6)模拟法.(poj1068,poj26

2016-07-10 14:13:32 530

转载 spfa

粗略讲讲SPFA算法的原理,SPFA算法是1994年西安交通大学段凡丁提出是一种求单源最短路的算法算法中需要用到的主要变量int n;  //表示n个点,从1到n标号int s,t;  //s为源点,t为终点int d[N];  //d[i]表示源点s到点i的最短路int p[N];  //记录路径(或者说记录前驱)queue q;  //

2016-07-09 16:21:24 222

转载 网络流初步-最大流

来源:http://blog.csdn.net/qiankun1993/article/details/6782838来源:http://blog.csdn.net/y990041769/article/details/21026445网络流首先来看一下基本的网络流模型。    有n个点,有m条有向边,有一个点很特殊,只出不进,叫做源点,通常规定为1

2016-07-09 15:07:50 2256 1

转载 二分图的最大匹配

这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。二分图的定义和判断方法:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:

2016-07-09 12:34:32 2554

原创 第四天补题

签到题:卡字符的读取给定一个字符矩阵,判断是否对角线上字符全部相同,对角线外字符全部相同,且它们不同这里主要考察字符矩阵的读取如果直接用scanf("%c")会读入空格和换行换成整数:cin>>c 会导致cin错误 scanf(“%d”)也会导致scanf错误(不能直接从字符读入转换成整数,只有printf的时候可以有多种转换方式)最后的解决:while(cin>>a)

2016-07-08 10:03:40 228

原创 拓扑排序的几种方法

拓展到拓扑排序中,结果具有唯一性的条件也是其所有顶点之间都具有全序关系。如果没有这一层全序关系,那么拓扑排序的结果也就不是唯一的了。在后面会谈到,如果拓扑排序的结果唯一,那么该拓扑排序的结果同时也代表了一条哈密顿路径。拓扑排序的关键:找到入度为0的点(意

2016-07-06 16:38:40 3384

原创 最小生成树 hdoj1233 nyoj38

Minimum Spanning Tree1.Prim算法是不断增加顶点的算法isadded[i]:表示点i是否加入lowcost[i]:表示以i为终点的边的最小权值,当lowcost[i]=0说明以i为终点的边的最小权值=0,也就是表示i点加入了MSTprim是以任意边为起始点,用一个lowcost[i]数组来维护到顶点i的最小距离,每次加入lowcost最小

2016-07-06 10:56:18 308

原创 并查集 hdoj1232 NOIP 2010

1.hdoj 1232http://acm.hdu.edu.cn/showproblem.php?pid=1232首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条

2016-07-05 23:45:21 288

原创 第一天集训补题目

1.树形dp题目描述:每个公司开party,但是开party的时候,和老板呆在一起会很不自在(每个人仅有一个老板,自己老板的老板不是老板),现在给出员工关系.Now your task is to find the maximum number of employees that may attend the party with the above conditions and the

2016-07-05 22:55:22 278

转载 map使用方法更新

map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有

2016-07-05 22:48:07 1343

原创 poj 3069 贪心 寻找满足某个要求的最大元素

和离散中的灯塔问题还不太一样,是要求必须要放在石子的位置上。但是其实思想是一样的,同样是找到最右边的点,但是这里涉及到一个怎么实现的问题。我们的目标是,对于每个点,如果它没有被覆盖,从这个点开始,找到它最右边能覆盖到它的点。对于实现问题:后来才发现其实和快排差不多。第一次的代码#include #include using namespace std;const int maxn

2016-07-05 14:45:57 247

原创 fill 函数

一般来说,一位数组可以用fill来填充,而二维比较麻烦。

2016-07-04 19:00:31 409

原创 递推 HDOJ2045

Problem Description人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题:有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同

2016-07-04 18:33:19 285

原创 pair (c++)

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

2016-07-04 17:39:58 251

空空如也

空空如也

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

TA关注的人

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