自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

星梦的博客

梦想虽远,但路在脚下.

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

原创 C++竞赛编程技巧

· 二进制集合枚举子集举一个二进制集合的子集,可以看做原集合忽略0之后不断-1 就有了这样一种算法:for (int i = s; i; i = (i - 1) & s)i - 1使得末尾的0全部变成1,但是由于&s,原来是0的位无论如何也不会变成1,但是原来是1的位就形成了不断-1的模式...

2018-08-03 22:27:39 822

原创 51Nod-1259-整数划分 V2

51Nod-1259-整数划分 V2将N分为若干个整数的和,有多少种不同的划分方式,例如:n = 4,{4} {1,3} {2,2} {1,1,2} {1,1,1,1},共5种。由于数据较大,输出Mod 10^9 + 7的结果即可。Input输入1个数N(1 <= N <= 50000)。Output输出划分的数量Mod 10^9 + 7。Input示例4Outp...

2018-10-22 21:47:12 315

原创 洛谷P3616 富金森林公园题解(树状数组)

P3616 富金森林公园题目描述博艾的富金森林公园里有一个长长的富金山脉,山脉是由一块块巨石并列构成的,编号从1到N。每一个巨石有一个海拔高度。而这个山脉又在一个盆地中,盆地里可能会积水,积水也有一个海拔高度,所有严格低于这个海拔高度的巨石,就会在水面下隐藏。由于地壳运动,巨石的海拔高度可能会随时变化,每次一块的巨石会变成新的海拔高度。当然,水面的高度也会随时发生变化。因为有这样奇妙的地质...

2018-10-21 16:41:59 285 1

原创 Luogu P4115Qtree4 P2056[ZJOI2007]捉迷藏 题解

题目链接[ZJOI2007]捉迷藏 P4115 Qtree4题解动态点分治+堆点分树 : 我们把分治过程中遍历过的重心都连起来 上一层的重心连接下一层的重心 可以得到一棵新的树然后在这颗树上乱搞先对于每个点弄两个大根堆q1[x] 存x的所有白点后代到x的父亲 的原树上的距离q2[x] 存x的每个子树中到x 的原树上的最大距离显然, q2为x所有儿子q1的根节点然后再弄一...

2018-10-10 19:16:02 201

转载 OI知识体系

2018-09-25 19:25:29 395

原创 POJ 3734 Blocks

题目链接递推 + 矩阵快速幂优化/*题意,有n个块,用 0, 1, 2, 3来染色求0, 1块数为偶数的方案数a[i] 表示前i个0,1块都为偶数的方案数b[i] 表示前i个0,1块一奇一偶的方案数c[i] 表示前i个0,1块都为奇数的方案数a[i] = 2*a[i-1] + b[i-1]b[i] = a[i-1] + b[i-1]*2 + c[i-1]c[i] ...

2018-08-24 17:32:37 169

原创 Vijos1683 有根树的同构问题

题目链接题目讲了这么多,其实就是让我们从k个树中找到“一样”的树 上图两棵树就是同构的也就是说,两棵树通过交换树链位置可以变成完全相同的树,这两棵树就是同构的于是算法就出来了,我们可以把每棵树按一定规则交换树链位置,判断是否完全相同*怎么做呢?1、首先用括号表示法表示每棵树,()代表一个节点 例如: 1->2 1->3 表示为 (()()) 2、对于每...

2018-07-22 17:03:10 712

原创 洛谷 P1484 种树

题目链接题目描述cyrcyr今天在种树,他在一条直线上挖了n个坑。这n个坑都可以种树,但为了保证每一棵树都有充足的养料,cyrcyr不会在相邻的两个坑中种树。而且由于cyrcyr的树种不够,他至多会种k棵树。假设cyrcyr有某种神能力,能预知自己在某个坑种树的获利会是多少(可能为负),请你帮助他计算出他的最大获利。输入输出格式输入格式: 第一行,两个正整数n,k。第二行,n...

2018-06-23 22:54:35 564 1

原创 洛谷P3388 【模板】割点(割顶)

题目链接题目背景 割点题目描述 给出一个n个点,m条边的无向图,求图的割点。输入输出格式 输入格式: 第一行输入n,m下面m行每行输入x,y表示x到y有一条边输出格式: 第一行输出割点个数第二行按照节点编号从小到大输出节点,用空格隔开输入输出样例 输入样例#1: 复制 6 7 1 2 1 3 1 4 2 5 3 5 4 5 5 6 输出样例...

2018-05-08 20:39:06 312

转载 浅谈用极大化思想解决最大子矩阵问题

【摘要】 本文针对一类近期经常出现的有关最大(或最优)子矩形及相关变形问题,介绍了极大化思想在这类问题中的应用。分析了两个具有一定通用性的算法。并通过一些例题讲述了这些算法选择和使用时的一些技巧。【关键字】 矩形,障碍点,极大子矩形【正文】一、 问题最大子矩形问题:在一个给定的矩形网格中有一些障碍点,要找出网格内部不包含任何障碍点,且边界与坐标轴平行的最大子矩形。这是近...

2018-02-27 22:24:31 325

原创 最大子矩形问题模板

浅谈用极大化思想解决最大子矩阵问题算法1:时间复杂度O(s^2)s为障碍物个数 题目:奶牛浴场#include<bits/stdc++.h>using namespace std;struct node{ int x, y;}a[5010];bool cmp1(node x, node y){ return x.y < y.y;}bo...

2018-02-27 21:15:48 288

原创 洛谷 P3387 【模板】缩点

P3387 【模板】缩点题目链接题目背景 缩点+DP题目描述 给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次。输入输出格式 输入格式: 第一行,n,m第二行,n个整数,依次代表点权第三至m+2行,每行两个整数u,v,表示u->v有...

2018-02-26 23:21:46 337

原创 Tarjan算法详解

强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly connected components)。Tarjan算法:求解有向图强连通分量的线性...

2018-02-26 23:13:26 5416 1

原创 洛谷P3379 【模板】最近公共祖先(LCA)

P3379 【模板】最近公共祖先(LCA)题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。输入输出格式输入格式:第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。接下来N-1行每行包含两个正整数x、y,表示x结点和y结点之间有一条直接连接的边(数据保证可以构成树)。接下来M行每行包含两个正整数a、b,表示询问a结点和...

2018-02-25 19:06:38 311

转载 C++ 运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符:算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。...

2018-02-25 16:29:25 124

原创 洛谷P3457 [POI2007]POW-The Flood

题目链接题意翻译Description 你手头有一张该市的地图。这张地图是边长为 m∗n 的矩形,被划分为m∗n个1∗1的小正方形。对于每个小正方形,地图上已经标注了它的海拔高度以及它是否是该市的一个组成部分。地图上的所有部分都被水淹没了。并且,由于这张地图描绘的地面周围都被高山所环绕,洪水不可能自动向外排出。显然,我们没有必要抽干那些非该市的区域。每个巨型抽水机可以被放在任何一个1∗...

2018-02-25 10:16:06 1182

原创 洛谷P3459 [POI2007]MEG-Megalopolis [POI2007]大都市meg

洛谷P3459 [POI2007]MEG-Megalopolis [POI2007]大都市meg题目链接Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员 Blue Mary 也开始骑着摩托车传递邮件了。不过,她经常回忆起以前在乡间漫步的情景。 昔日,乡下有依次编号为 1..n 的 n 个小村庄,某些村庄之间有一些双向的土路。 从每个村庄都恰好有一...

2018-02-24 19:25:28 823

转载 C++ stl队列queue用法介绍

转自:http://www.169it.com/article/2718050585107790752.html C++队列queue模板类的定义在头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。C++队列...

2018-02-22 16:14:02 891

原创 洛谷P2577 [ZJOI2005]午餐

这道题目比较难想。算法:贪心+dp容易想到贪心:吃饭慢的先打饭节约时间, 所以先将人按吃饭时间从大到小排序。然后就是dp了: 首先,应该想到f[i][j][k]:前i个人,在1号窗口打饭总时间j,在2号窗口打饭总时间k 当然,这样会爆空间,所以想到去掉一维。 f[i][j]表示前i个人,在1号窗口打饭总时间j,最早吃完饭的时间 我们可以发现 j+k=前i个人打饭总和,k = s...

2018-02-21 17:32:43 1122

原创 洛谷P2224 [HNOI2001]产品加工题解

dp: 首先想到二维dp f[i][j] 表示前i件产品,第一个机器用时j,第二个机器用时f[i][j] 所以转移方程就出来了:f[i][j] = min(f[i-1][j]+t2, f[i-1][j-t1], f[i-1][j-t3]+t3) 二维当然会爆空间啦 所以可以滚掉i代码如下:#include<bits/stdc++.h>using namespa...

2017-10-13 19:22:52 759

原创 C++ STL之lower_bound和upper_bound

lower_bound:从已经排好序的序列a中利用二分搜索找出指向满足a[i]>=k的a[i]的最小指针。 例:lower_bound(a, a+n, k); upper_bound:从已经排好序的序列a中利用二分搜索找出指向满足a[i]>k的a[i]的最小指针。 例:upper_bound(a, a+n, k);求长度为n的有序数组a中的k的个数: upper_bound...

2017-08-04 22:32:49 269 1

原创 KMP算法(C++)

http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html

2017-07-23 22:09:47 170

转载 程序员励志语录

作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。 程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。 编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。 程序不是年轻的专利,但是,他属于年轻。 没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。 一个好汉三个帮,程序员

2017-07-18 17:30:55 716

转载 线段树基本操作C++

转载于:百度百科        支持以下操作1 x 若x不存在,插入x2 x 若x存在,删除x3 输出当前最小值,若不存在输出-14 输出当前最大值,若不存在输出-15 x 输出x的前驱,若不存在输出-16 x 输出x的后继,若不存在输出-17 x 若x存在,输出1,否则输出-1#include<iostream>#include<cstdio>#include<...

2017-07-04 16:06:21 570

原创 C++输入、输出优化

输入优化:inline long long read(){ long long sum=0; int v=1; while(1) { char c=getchar(); if(c=='-') v=-1; else if(c==' ' || c=='\n') return

2017-07-04 15:18:55 246

转载 HDU 动态规划经典题

Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j]表示在概率j之下能抢的大洋);

2017-07-03 16:49:59 700

原创 C++ STL优先队列(STL堆)

优先队列(堆)头文件:#include< queue > 大根堆定义:priority_queue< int >pq 小根堆定义:priority_queue< int ,vector< int >,greater< int > >pq (注意最后两个“>”符号不要连在一起,否则会被很多(但不是所有)编译器误认为是‘&gt...

2017-07-03 16:13:35 4771 3

转载 状态压缩方法

状态压缩方法状态压缩是信息学竞赛中一个很常见的方法,最最常见的是二进制压位。做过USACO的同学会知道有很多搜索和DP都可以用状态压缩优化。一般来讲,如果状态的够成非常多,但每个构成相对简单,就可以状态压缩,比如巨大的0/1矩阵等。当然如果状态压缩,提取每个数据起来就会耗费更多的时间,所以一般运用在状态复制量较大,比较量较小的情况下。举例:多关键字排序可

2017-07-03 15:26:47 398

原创 C++二叉树的重要操作

typedef struct node;typedef node *tree;struct node{char data;tree lc,rc;};tree bt;//1.建立一颗二叉树 void pre_crt(tree &bt){char ch;ch=getchar();//二叉树的单链表储存结构,bt为指向根节点的指针,'$'表示空串

2017-07-02 17:00:45 354 1

原创 C++指针

c++指针|指针入门这是一篇我所见过的关于指针的最好的入门级文章,它可使初学者在很短的时间内掌握复杂的指针操作。虽然,现在的Java、C#等语言已经取消了指针,但作为一个C++程序员,指针的直接操作内存,在数据操作方面有着速度快,节约内存等优点,仍是很多C++程序员的最爱。指针就像是一把良剑,就看你怎么去应用它! 什么是指针?  其实指针就像是其它变量一样,所不同的是一般的变量包含

2017-07-02 16:45:00 170

原创 C++逻辑运算符

逻辑非(!)    如果一个操作数是一个对象,返回false;    如果一个操作数是一个空字符串,返回false;    如果一个操作数是一个非空字符串,返回false;    如果一个操作数是一个数值0,返回true;    如果一个操作数是任意的非零字符,返回false;    如果一个操作数是null,返回true;    如果一

2017-07-02 16:44:07 3013

原创 求两个数组的最长公共子序列(LCS)

求两个数组的最长公共子串长度(LCS)样例输入:5 51 3 2 0 31 0 2 3 3输出:3求两个数组的最长公共子串长度(LCS),思路其实很简单,两个数组s[i],t[i]。f[i][j]表示s[1~i-1]和t[1~j-1]的LCS,然后如果s[i]==t[j]那么这一位可以加进LCS,即if(s[i]==s[j])

2017-02-05 18:43:26 5286 1

转载 kmp算法解析

kmp算法是一个效率非常高的字符串匹配算法。不过由于其难以理解,所以在很长的一段时间内一直没有搞懂。虽然网上有很多资料,但是鲜见好的博客能简单明了地将其讲清楚。在此,综合网上比较好的几个博客(参见最后),尽自己的努力争取将kmp算法思想和实现讲清楚。kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。常规方法是遍历a的每一个位置,

2017-01-19 18:11:00 199

原创 洛谷P1025 数的划分(题目来源https://www.luogu.org/problem/show?pid=1025)

 P1025 数的划分题目描述将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5; 1,5,1; 5,1,1;问有多少种不同的分法。输入输出格式输入格式:n,k (6<n<=200,2<=k<=6)输出格式:一个整数,即不同的分法。输入输出样例输入样例#1:7 3输出样例#1:4说明四种分法为:...

2017-01-19 16:26:30 912

原创 洛谷P1011 车站(题目来源:https://www.luogu.org/problem/show?pid=1011)

P1011 车站题目描述火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上、下车,但上、下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人。从第3站起(包括第3站)上、下车的人数有一定规律:上车的人数都是前两站上车人数之和,而下车人数等于上一站上车人数,一直到终点站的前一站(第n-1站),都满足此规律。现给出的条件是:共有N个车站,始发站上车的人数为a,最后一站下车的人数是m(全部下车)。试问x站开出时车上的人数是多少?输入输出格式

2017-01-18 22:11:56 1224 3

空空如也

空空如也

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

TA关注的人

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