自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

转载 白话经典算法系列之六 快速排序 快速搞定

原文链接:白话经典算法系列之六 快速排序 快速搞定快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想—-分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下

2016-10-07 08:40:33 453

转载 SGU 219 Synchrograph tarjian找环,理解题意,图论 难度:3

原文链接:Synchrograph 题目大意:如果指向某个点的边权全都为正数,那么这个点就是可点燃的,点燃操作把入弧权值-1,出弧权值都+1,如果在某种点燃序列之后还可以再点燃一些点使得这个点还可以点燃,那么这个点在这种点燃序列之后存活如果在任何点燃序列之后都还可以再点燃一些点使得这个点还可以点燃,那么这个点可存活现在求所有点是否可存活思路:考虑不可存活的点:对于某个状态,对于不可存活的点,要想使

2016-09-28 20:28:25 596

原创 有向图强连通分支的Tarjan算法

做一遍DFS,用dfn[i]表示编号为i的节点在DFS过程中 的访问序号(也可以叫做开始时间)。在DFS过程中会形成 一搜索树。在搜索树上越先遍历到的节点,显然dfn的值就 越小。dfn值越小的节点,就称为越“早” 。 ◦ 用low[i]表示从i节点出发DFS过程中i下方节点(开始时 间大于dfn[i],且由i可达的节点)所能到达的最早的节点的 开始时间。初始时low[i]=dfn[i

2016-09-27 21:41:47 493

转载 受保護的(protected)成員

原文链接:受保護的(protected)成員 在之前的範例中,類別的資料成員多設定為private成員,也就是私用成員,私用成員只能在類別物件中使用,不能直接透過物件來呼叫使用,而即使是繼承 了該類別的衍生類別也是如此,您只能透過該類別所提供的public函式成員來呼叫或設定私用成員。 然而有些時候,您希望繼承了基底類別的衍生類別,能夠直接存取呼叫基底類別中的成員,但不是透過public函式成員,

2016-09-27 20:13:38 455

转载 C++之运算符重载(1)

C++中运行时的多态性主要是通过虚函数来实现的,而编译时的多态性是由函数重载和运算符重载来实现的。这一系列我将主要讲解C++中有关运算符重载方面的内容。在每一个系列讲解之前,都会有它的一些基础知识需要我们去理解。而运算符重载的基础就是运算符重载函数。所以今天主要讲的是运算符重载函数。  1.运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用域不同类型的数据导致不同行为的发生。比如

2016-09-27 11:48:16 369

转载 C++_运算符重载

原文链接:C++_运算符重载 什么是运算符的重载? 运算符与类结合,产生新的含义。 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义)怎么实现运算符的重载?方式:类的成员函数 或 友元函数(类外的普通函数)规则:不能重载的运算符有 . 和 .* 和 ?: 和 :: 和 sizeof友元函数和成员函数的使用场合:一般情况下,建议一元运算符使用成

2016-09-26 21:42:01 421

原创 运算符重载

原文链接:运算符重载

2016-09-26 19:02:27 269

转载 HDU5519 Kykneion asma (指数生成函数+快速数论变换模任意数+启发式合并思想)

原文链接:HDU5519 Kykneion asma (指数生成函数+快速数论变换模任意数+启发式合并思想)先说一下,这个不是正解。但是也可以过。 题意:有5个数字——0,1,2,3,4,每个数字分别有a0,a1,a2,a3,a4个。问这些数字能组成多少个n位数? 数据范围:a<=30000,n<=15000 时限:6s 分析: 首先n位数肯定是排列,每种数字有很多个,

2016-09-26 15:18:27 719

原创 傅里叶级数简介

维基链接:https://zh.wikipedia.org/wiki/%E5%82%85%E9%87%8C%E5%8F%B6%E7%BA%A7%E6%95%B0

2016-09-26 11:30:19 625

转载 hihoCoder #1388 : Periodic Signal ( 2016 acm 北京网络赛 F题) _循环卷积

原文链接:http://www.cnblogs.com/smartweed/p/5903838.html时间限制:5000ms单点时限:5000ms内存限制:256MB描述Profess X is an expert in signal processing. He has a device which can send a particular 1 second signal repeatedly

2016-09-25 21:22:41 1120

转载 hihoCoder 1391 Countries 【预处理+排序+堆】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)

原文链接:http://www.cnblogs.com/Coolxxx/p/5904454.html1391 : Countries时间限制:1000ms单点时限:1000ms内存限制:256MB描述There are two antagonistic countries, country A and country B. They are in a war, and keep launching

2016-09-25 19:42:39 884

转载 HDU 5895 Mathematician QSC(矩阵乘法+循环节降幂+除法取模小技巧+快速幂)——2016 ACM/ICPC Asia Regional Shenyang Online

原文链接:http://blog.csdn.net/queuelovestack/article/details/52577212 解题思路: 【题意】 已知f(0)=0,f(1)=1,f(n)=f(n−2)+2∗f(n−1)(n≥2) 给你n,y,x,s的值 求的值 【类型】 矩阵乘法+循环节降幂+除法取模小技巧+快速幂 【分析】 一开始想简单了,对于a^x mod p这种形

2016-09-21 21:12:15 541

转载 __int64 与long long 的区别

原文链接:http://blog.csdn.net/shiwei408/article/details/7463476zz from http://www.byvoid.com/blog/c-int64/在C/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位整型的定义方式有long long和_

2016-09-21 20:53:39 728

转载 HDU 5894 hannnnah_j’s Biologica(lucas定理求组合数+乘法逆元)——2016 ACM/ICPC Asia Regional Shenyang Online

原文链接:http://blog.csdn.net/queuelovestack/article/details/52579555 解题思路: 【题意】 n个位置围成环,m个人坐,要求相邻两个人之间必须至少隔k个位置 问有多少种坐法,结果对1e9+7取模 【类型】 lucas定理求组合数+乘法逆元 【分析】 其实此题可以这么理解 假定一个人已经坐在了某个位置,如图所示 那还剩

2016-09-20 21:07:41 529

转载 Lucas定理与大组合数的取模的求法总结

首先给出这个Lucas定理:A、B是非负整数,p是质数。AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]。则组合数C(A,B)与C(a[n],b[n])*C(a[n-1],b[n-1])*...*C(a[0],b[0])  modp同余即:Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p) 

2016-09-20 11:07:41 396

转载 Dijkstra 算法

原文链接:http://www.cnblogs.com/pengyingh/articles/2396421.html 一、Dijkstra 算法的介绍Dijkstra 算法,又叫迪科斯彻算法(Dijkstra), 算法解决的是有向图中单个源点到其他顶点的最短路径问题。 举例来说, 如果图中的顶点表示城市,而边上的权重表示著城市间开车行经的距离, Dijkstra 算法可以用来找到两个城市

2016-09-17 09:32:20 553

转载 HDU 5876 Sparse Graph(bfs求解补图中的单源最短路)——2016 ACM/ICPC Asia Regional Dalian Online

原文链接:http://blog.csdn.net/queuelovestack/article/details/52504425 题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5876 解题思路: 【题意】 给你一个n个结点,m条边的无向图G 再给你G的补图H上的一个点S 要求求出在补图H上,点S到其他n-1个结点的最短路【类

2016-09-16 21:16:48 384

转载 STL源码学习----lower_bound和upper_bound算法

STL中的每个算法都非常精妙,接下来的几天我想集中学习一下STL中的算法。  ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。 ForwardIter upper_bound(ForwardIter fi

2016-09-16 19:31:11 317

转载 C++ STL算法---unique , unique_copy函数

一.unique函数类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素。该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值范围得结束。// sort words alphabetically so we can find the duplicates sort(words.begin(), words.

2016-09-16 19:20:11 346

转载 HDU 5877(Problem 1010) (DFS+树状数组+离散化)

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5877题意:给定一颗树,然后对于每一个节点,找到它的任何一个祖先u,如果num[u] * num[v] <= k。则贡献加1题解:dfs搜索一遍树结构,树状数组记录路径上的数信息,由于数太大,所以需要离散化一下#include <cstdio>#include <iostream>#inc

2016-09-13 20:40:29 363

转载 HDU 5869(Problem 1002)GCD+树状数组

题意:长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种.题解:考虑固定左端点的不同GCD值,只有不超过logA种, 所以事件点只有nlogA个. 那么离散化处理, 按照区间右端点排序从小到大处理询问,用一个树状数组维护每个GCD值的最大左端点位置即可. 复杂度是O(nlogAlogn).这份题解里有两个难点:1、如何快速的离散化处理出固定的左端点的gcd;2

2016-09-13 10:01:52 446

转载 STL之pair类型详细分析

pair定义于头文件utility中,主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。pair类型提供的操作:pair p1;pair p1(v1,v2);make_pair(v1,v2);p1 < p2;p1 == p2;p.first;p.second;创建和初始化:pair name;pair> data;以上全部调用pair类

2016-09-13 09:48:00 525

原创 POJ 3259_SPFA_判断是否含负权环

题目链接:http://poj.org/problem?id=3259#include<iostream>using namespace std;#include<vector>#include<queue>#include<algorithm>#include<cstring>int F,N,M,W;const int INF=1<<30;struct Edge{ int

2016-09-09 11:07:11 302

原创 POJ 3259_Bellman Ford_判断是否含负权环

Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 44853 Accepted: 16530 DescriptionWhile exploring his many farms, Farmer John has discovered a number of amazing wormh

2016-09-09 10:02:56 379

原创 POJ 1273&Dinic解决

题目链接 http://poj.org/problem?id=1273#include<iostream>using namespace std;#include<queue>#include<vector>#include<cstring>#include<algorithm>#include<deque>#define INFINITE 0x7fffffint G[300][30

2016-09-08 19:55:25 365

原创 POJ 1273 网络流基础题

Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 70082 Accepted: 27205 DescriptionEvery time it rains on Farmer John’s fields, a pond forms over Bessie’s favor

2016-09-08 19:53:28 324

转载 POJ 1182食物链_DisjointSet并查集

原文链接:http://blog.csdn.net/freezhanacmore/article/details/8767413 食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 33805 Accepted: 9820 Description 动物王国中有三类动物A,B,C,这三类动物的食

2016-09-02 11:32:21 259

原创 POJ 1258的Kruskal做法

Kruskal算法伪代码:KRUSKAL-FUNCTION(G, w)1 F := 空集合2 for each 图 G 中的顶点 v3 do 將 v 加入森林 F4 所有的边(u, v) ∈ E依权重 w 递增排序5 for each 边(u, v) ∈ E6 do if u 和 v 不在同一棵子树7 then

2016-09-02 10:57:38 250

原创 POJ 1258生成树模板题

(题解来自北大2016 ACM/ICPC竞赛训练暑期课讲义) 题目链接:http://poj.org/problem?id=1258 题意:输入图的邻接矩阵,求最小生成树的总权值 (多组数据) 输入样例: 4 0 4 9 21 4 0 8 17 9 8 0 16 21 17 16 0 输出样例: 28prioirty_queue实现 Prim + 堆 #include<iostr

2016-09-02 09:55:43 307

转载 POJ 1182 食物链【经典并查集应用】

博客链接:http://blog.csdn.net/freezhanacmore/article/details/8767413

2016-09-01 21:38:29 268

原创 POJ 1988 Cube Stacking 并查集

(题解来自北大2016 ACM/ICPC竞赛训练暑期课讲义) 题目链接:http://poj.org/problem?id=1988 题意:有N(N<=30,000)堆方块,开始每堆都是一个 方块。方块编号1 – N. 有两种操作:  M x y : 表示把方块x所在的堆,拿起来叠放 到y所在的堆上。  C x : 问方块x下面有多少个方块。  操作最多有 P (P<=100

2016-09-01 21:17:44 504

原创 POJ 1611 DisjointSet

(题解来自北大2016 ACM/ICPC竞赛训练暑期课讲义) 题目链接:http://poj.org/problem?id=1611 题意: n个学生分属m个团体,(0 < n <= 30000 , 0 <= m <= 500) 一个学生可以属于多个团体。 一个学生疑似患病,则它所属的整个团体都 疑似患病。已知0号学生疑似患病,以及每个 团体都由哪些学生构成,求一共多少个学生 疑似患病。n个学生

2016-09-01 16:51:21 331

转载 HDU 1006区间取交

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1006 Tick and TickTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17570 Accepted Submi

2016-08-30 19:36:00 380

原创 hdu 1213 求连通分支个数

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1213对这个问题抽象之后,就是要求进行若干次union操作之后,还会剩下多少颗树(或者说还剩下多少Connected Components)。反映到这个例子中,就是要求有多少“圈子”。其实,这也是社交网络中的最基本的功能,每次系统向你推荐的那些好友一般而言,会跟你在一个“圈子”里面,

2016-08-26 17:14:55 1194

转载 hdu 1856求集合中元素个数

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1856 这道题目的目的是想知道经过一系列的合并操作之后,查询在所有的子树中,秩的最大值是多少,简而言之,就是最大的那颗子树包含了多少个节点。 很显然,这个问题也能够同时使用两种优化策略,只不过因为要求最大秩的值,需要有一个变量来记录。那么在哪个地方来更新它是最好的呢?我们知道,在按秩进行合

2016-08-26 17:12:21 861

转载 hdu 3635 Disjoint并查集+路径压缩

原题链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3635 题意: 起初球i是被放在i号城市的,在年代更迭,世事变迁的情况下,球被转移了,而且转移的时候,连带该城市的所有球都被移动了:T A B(A球所在的城市的所有球都被移动到了B球所在的城市),Q A(问:A球在那城市?A球所在城市有多少个球呢?A球被转移了多少次呢?)#include<

2016-08-26 16:27:47 524

转载 hdu 3635题意分析

其实这就是一个并查集的应用。每个龙珠对应一个并查集的初始节点,然后用每个连通分量的根节点来维护num[i](即当前分量中的节点总数),fa[i]表第i个节点的父节点编号。dist[i]表第i个节点到其父节点的距离(即第i个节点一共被转移了几次才连接上它当前的父节点的)       龙珠被转移的次数就是该龙珠距离根节点的距离。初始dist[i]为0.每当合并两个连通分量的时候,被合并的连通分量的

2016-08-26 16:25:24 485

转载 并查集(Union-Find) 应用举例 --- 基础篇

原文链接:http://blog.csdn.net/dm_vincent/article/details/7769159并查集介绍:https://zh.wikipedia.org/wiki/%E5%B9%B6%E6%9F%A5%E9%9B%86

2016-08-26 15:14:37 601

转载 汉诺塔问题递归算法分析

递归实现了某种类型的螺旋状while循环。while循环在循环体每次执行时必须取得某种进展,逐步迫近循环终止条件。 递归函数也是如此,它在每次递归调用后必须越来越接近某种限制条件。当递归函数符合这个限制条件时,它便不在调用自身。递归算法的特点   递归算法是一种直接或者间接地调用自身的算法。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。   递归

2016-08-25 17:25:36 562

转载 (转载)关于next_permutation()

原文链接:http://www.cnblogs.com/TonyNeal/archive/2013/05/11/next_permutation.html

2016-08-23 17:10:42 307

空空如也

空空如也

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

TA关注的人

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