自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 51nod 1267 4个数和为0 二分查找

题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1267题意:给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出”Yes”,否则输出”No”。 Input 第1行,1个数N,N为数组的长度(4 <= N <= 1000) 第2 - N + 1行:A[i](-10^9 <= A[i] <= 10

2017-09-29 16:36:09 291

原创 51nod 1272 最大距离 思维题

题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1272题意:给出一个长度为N的整数数组A,对于每一个数组元素,如果他后面存在大于等于该元素的数,则这两个数可以组成一对。每个元素和自己也可以组成一对。例如:{5, 3, 6, 3, 4, 2},可以组成11对,如下(数字为下标): (0,0), (0, 2), (1,

2017-09-29 16:26:23 271

原创 51nod1268 和为K的组合 折半枚举

题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1268题意:给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:”Yes”,否则输出”No”。 Input 第1行:2个数N, K, N为数组的长度, K为需要判断的和(2 <= N <= 20,1 <= K <= 10^9) 第2

2017-09-28 22:47:29 263

原创 51nod1770 数数字 思维题

题目:题意:统计一下aaa...aaan个a∗b \underbrace{aaa...aaa}_{n个a}*b 的结果里面有多少个数字d,a,b,d均为一位数。 样例解释: 3333333333*3=9999999999,里面有10个9。Input 多组测试数据。 第一行有一个整数T,表示测试数据的数目。(1≤T≤5000) 接下来有T行,每一行表示一组测试数据,有

2017-09-28 22:16:30 376

原创 51nod1393 0和1相等串 思维题

题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1393题意:思路:很好的思维题。维护一个前缀和,把0看做-1,一直加,记录每种前缀和首次出现的位置,当再次得到这个前缀和,说明当前位置和首次出现位置之间0和1的个数一定相等,更新答案。因为直接前缀和有负数,无法用数组下标直接记录,所以统一加一个len#include <

2017-09-28 21:30:32 336

原创 可持久化并查集

//n个集合 m个操作 //1 a b 合并a,b所在集合 //2 k 回到第k次操作之后的状态(查询算作操作) //3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 //所给的a,b,k均经过加密,加密方法为x = x xor lastans,lastans是上一次的输出答案//并查集实质是一个数组,可持久化并查集就是一个可持久化数组,可以用可持久化线段树维护,本质就是这样

2017-09-28 15:03:26 438

原创 hash模板

一维hash//求原串中有多少个模式串//Seed[i]是seed的i次幂//hash[j]-hash[i-1] * Seed[len]是区间[i,j]的hash值,len是区间长度typedef long long ll;typedef unsigned long long ull;const int N = 1000000 + 10, M = 10000 + 10, INF = 0x3

2017-09-28 14:38:57 754

原创 分块模板

//有n个数,两种操作:M L R W:对[L,R]内元素都加上W;A L R C:求[L,R]内元素大于等于C的个数const int N = 1e6 + 10;int n, m;int block, sz;int pos[N], L[N], R[N], add[N];//add数组相当于lazy标记int a[N], b[N];void reset(int x){ for(i

2017-09-28 13:53:54 428

原创 莫队算法

普通莫队算法://求线性区间内不同元素的个数const int N = 30010;struct node{ int l, r, id;}q[N*10];int n, m, block, tmp;int ans[N*10], num[N];int a[N], b[N];bool cmp(node a, node b){ return a.l/block != b.l

2017-09-28 12:55:21 393

原创 treap模板

旋转版treap://1. 插入x数//2. 删除x数(若有多个相同的数,因只删除一个)//3. 查询x数的排名(若有多个相同的数,因输出最小的排名)//4. 查询排名为x的数//5. 求x的前驱(前驱定义为小于x,且最大的数)//6. 求x的后继(后继定义为大于x,且最小的数)const int N = 100000 + 10, INF = 2e9 + 10;struct node{

2017-09-28 12:42:18 432

原创 bzoj 3932 [CQOI2015]任务查询系统 主席树

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3932题意:Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分。超级计算机中的 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行 ),其优先级为Pi。同一

2017-09-27 20:58:38 320

原创 UVA 12538 Version Controlled IDE 可持久化平衡树 || rope

题目:https://vjudge.net/problem/UVA-12538题意:模拟一个版本控制编辑器,有以下操作:1 p s1\ p\ s: 在pp后面位置插入一个字符串ss2 p c2\ p\ c:从第pp个字符开始删掉cc个字符3 v p c3\ v\ p\ c:在第vv个版本中,从第pp个位置开始取cc个字符并输出 前两种操作中每个操作后形成一个新版本。为防止预处理,要求输入中的

2017-09-26 20:39:38 529

原创 rope总结

#include <ext/rope> //所在头文件using namespace __gnu_cxx;//所在命名空间const int N = 10000 + 10;//一般用来处理字符串rope<char> rs;//可以是int之类的类型,但是会有某些方法无法使用//等价于crope rsrs.insert(pos, str);//从pos位置开始插入strrs.erase(po

2017-09-26 15:20:39 1933

原创 hihoCoder1586 Minimum 线段树

题目:http://hihocoder.com/problemset/problem/1586?sid=1197111题意:给定一个序列,有两种操作:1 l r1\ l\ r:从区间[l,r][l,r]内选出数字aia_i, aja_j,是的ai∗aja_i*a_j的值最小2 x y2\ x\ y:把第xx个元素的值更新为y思路:求区间内乘积的最小值,无非以下情况:都是正数时,直接取最小值相乘

2017-09-26 10:42:21 301

原创 hihoCoder1576 子树中的最小权值 dfs序+线段树

题目:http://hihocoder.com/problemset/problem/1576?sid=1197257题意:描述 给定一棵N个节点的树,编号1~N。其中1号节点是根,并且第i个节点的权值是Vi。 针对这棵树,小Hi会询问小Ho一系列问题。每次小Hi会指定一个节点x,询问小Ho以x为根的子树中,最小的权值是多少。为了增加难度,小Hi可能随时改变其中每个节点的权值。 你能帮助小Ho

2017-09-26 10:33:58 377

原创 SPOJ ORDERSET Order statistic set 非旋转treap

题目:https://vjudge.net/problem/SPOJ-ORDERSET题意:有下面四种操作:I x 往集合中插入x,若存在则不操作D x 从集合中删除x,若不存在则不操作K x 求集合中第x大的数,若x大于集合的大小输出invalidC x 统计集合中小于x的数的个数思路:非旋转版treap,主要操作是基于splitsplit和mergemerge#include <bit

2017-09-25 18:13:11 271

原创 hdu6205 card card card 尺取法

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6205题意:给定两个相同长度的数组a,b,数组中元素范围为[0,1000],现在从头开始依次选取元素,分别累加a中元素和(设为suma)与b中元素和(设为sumb),当suma-sumb<0时停止选取元素,此时suma就为取得的最大价值。在游戏开始之前,可以把两个数组的第一个元素同时放到各自尾部,这个操作可以

2017-09-22 19:54:45 214

原创 hdu6216 A Cubic number and A Cubic Number 打表找规律 + 二分

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6216题意:给定一个素数,判定这个素数能不能由两个不同的数字的立方的和思路:打表找规律,可以发现,满足条件的素数,一定等于x-1,x这样两个数字的立方的和,反过来则不一定成立,于是就可以二分x求答案了#include <bits/stdc++.h>using namespace std;typedef lon

2017-09-22 17:33:19 323

原创 hdu6194 string string string 后缀数组 + RMQ

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6194题意:给定一个字符串,求恰好出现k次的子串有多少个思路:后缀数组处理出height数组,然后按顺序每次取一个长度为k的区间,这个区间的公共前缀设为L,即这个区间内的height数组的最小值,可以RMQ实现O(1)查询,那么意味着有L个子串出现了恰好k次,但是有可能这L个子串中有一些出现次数是大于k的,要

2017-09-22 16:44:46 273

原创 hdu6195 cable cable cable 找规律推公式

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6195题意:有n个显示屏和k个不同信号源,在显示屏和信号源之间连线,一个显示屏若和多个信号源连接,可以显示任意一个信号,使得任意选出k个显示屏,可以使这k个显示屏的信号都不同,问最小需要的连线思路:首先选出kk个显示屏,这kk个显示屏每一个都连接一个不同的信号源,剩余的n−kn-k个显示屏每一个都连接所有的信

2017-09-21 15:37:40 265

原创 hdu6197 array array array LIS

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6197题意:给定一个数组,问能不能恰好删除k个数字,使得剩下的数字构成非严格上升子序列或者非严格下降子序列思路:对数组正向求一次非严格LIS,然后逆向再求一次非严格LIS,两者中只要有一个长度大于等于n-k,就是符合要求的#include <bits/stdc++.h>using namespace std;

2017-09-21 14:55:20 350

原创 hdu6201 transaction transaction transaction 树形dp || 最短路

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6201题意:有n个城市,有n-1条道路将n个城市连接成一个整体,即一个树。一本在每个城市的价格不同,任选一个城市买书,再任选一个城市卖掉书,每条道路都有花费,问最多能赚多少钱思路:先说最短路,起点终点都是不确定的,所以建源点和汇点,把所有点连到源点和汇点上去,从源点向所有城市连边,权值为此城市书的价格的取反,

2017-09-21 14:25:02 348

原创 POJ 3415 Common Substrings 后缀数组

题目:http://poj.org/problem?id=3415题意:给定两个字符串,求这两个字符串中长度大于等于k的公共子串的数量思路:不得不说,这题我不会,看的别人的,心累。。。看这篇http://www.cnblogs.com/luxiaoming/p/5270984.html#include <iostream>#include <cstdio>#include <cstring>#

2017-09-20 23:00:56 430

原创 51Nod 1292 字符串中的最大值 V2 后缀数组 + 单调栈

题目:https://vjudge.net/problem/51Nod-1292题意:有一个字符串T。字符串S的F函数值可以如下计算:F(S) = L * S在T中出现的次数(L为字符串S的长度)。求所有T的子串S中,函数F(S)的最大值。 Input 输入字符串T, (1 <= L <= 1000000, L为T的长度),T中的所有字符均为小写英文字母。 Output 输出T的所有子串中长

2017-09-20 15:17:41 372

原创 poj3450 Corporate Identity kmp || 后缀数组

题目:http://poj.org/problem?id=3450题意:给定n个字符串,求这n个字符串的最长公共子串思路:比较优的解法是枚举答案,然后用kmp或者strstr函数去判定枚举的子串是否是剩余所有字符串的子串。用后缀数组也可以,但是比较慢 kmp:#include <iostream>#include <cstdio>#include <cstring>#include <alg

2017-09-20 12:58:18 429

原创 hdu1403 && poj 2774 最长公共子串 后缀数组

题目:http://poj.org/problem?id=2774 http://acm.hdu.edu.cn/showproblem.php?pid=1403题意:给定两个长度均不超过100000100000的字符串,求两个字符串的最长公共子串思路:后缀数组的简单应用。把两个字符串拼接起来,中间用一个特殊字符隔开,求出后缀数组的height数组后,找出起点分别在特殊字符的两侧的两个大小相邻后缀,

2017-09-19 20:54:16 418

原创 hdu3987 Harry Potter and the Forbidden Forest 最小割边数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3987题意:给一个网络,边有有向边和无向边两种,挑选一些边破坏,使得从0无法到达n-1,每条边都有一个破环的成本,求在成本最低的情况下需要破坏的最少边数思路:明显最小成本就是最小割,求边数的话,扩大边权然后取余即可#include <bits/stdc++.h>using namespace std;type

2017-09-18 14:26:11 487

原创 hdu6214 Smallest Minimum Cut 最小割边数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6214题意:给定一个网络,给出源点和汇点,求最小割的最少边数思路:对于每个边容量cc,扩大为c∗(m+1)+1c * (m+1) + 1,mm是边数,求出最大流后,取余(m+1)(m+1)就是答案#include <bits/stdc++.h>using namespace std;const int N =

2017-09-18 13:53:21 443

原创 hdu6215 Brute Force Sorting 链表模拟

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6215题意:给定一个长度为n的数组,满足以下条件a[i]是有序的:要么a[i]是第一个数字,要么a[i-1] <= a[i]要么a[i]是最后一个数字,要么a[i] <= a[i+1] 不满足以上两个条件的a[i]是无序的。现在把数组的无序数字删除,剩余的数字按顺序合并,重复这个操作,直到所有数字都有序

2017-09-17 22:19:50 369

原创 poj1463 Strategic game 树形dp

题目:http://poj.org/problem?id=1463题意:给定一个有nn个点的树结构,从中选取一些点,使得任意一条边都有端点在选取的点集中,即求树形的最小点覆盖思路:定义dp[i][0]dp[i][0]为不选取i时覆盖以ii为根的子树上的所有边时选取的最小点集,dp[i][1]dp[i][1]为选取i时覆盖以ii为根的子树上的所有边时选取的最小点集,设jj为ii的子节点,那么显然有

2017-09-16 22:39:21 277

原创 hdu1520 Anniversary party 树形dp

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1520题意:大学里有n个员工,除了校长外每个人都有一个直属上级,每个人都有一个欢乐度,现在要求,对于任意一个人,和他的直属上级,只能有一个人到场,求到场的人的最大欢乐度思路:树形dpdp入门。可以发现所有的人的关系是树结构,定义dp[i][0]dp[i][0]为以ii为根的子树在i不到场时取得的最大欢乐度,d

2017-09-16 21:39:00 210

原创 hdu3652 B-number 数位dp

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3652题意:给出一个数n,求从1到n范围内的数字含有子串13且能被13整除的个数思路:数位dp,再加一维取模的状态,我对动态规划好迷啊。。。#include <bits/stdc++.h>using namespace std;const int N = 50 + 10;int dp[N][13][2][2]

2017-09-15 19:21:28 230

原创 bzoj1026: [SCOI2009]windy数 数位dp

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1026题意:Description windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道, 在A和B之间,包括A和B,总共有多少个windy数?Input 包含两个整数,A B。Output 一个整数思路:数位dp,记忆化搜索

2017-09-15 16:48:02 487

原创 HDU2089 不要62 数位dp

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2089题意:Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有4或62

2017-09-14 21:16:54 229

原创 HDU5963 朋友 博弈

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5963题意:Problem Description B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1。 在一局游戏开始时,会确定一个节点作为根。接下来从女生开始,双方轮流进行 操作。 当一方操作时,他们需要先选择一个不为根

2017-09-14 20:22:57 338

原创 HDU 3555 Bomb 数位dp

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3555题意:多组测试数据,每次一个nn,问11到nn范围内子串中有4949的数字的个数思路:简单数位dpdp?个人觉得数位dpdp其实就是个记忆化搜索,第一次写,看了一下别人代码,有不同的写法//300+ms#include <bits/stdc++.h>using namespace std;typede

2017-09-14 16:58:07 219

原创 基数排序

题目:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1124题意:Description已知数组a中有m个按升序序排列的元素,数组b中有n个降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。Input输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。Outpu

2017-09-13 18:07:42 1052

原创 计数排序

题目:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1124题意:Description已知数组a中有m个按升序序排列的元素,数组b中有n个降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。Input输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。Outpu

2017-09-13 14:34:48 309

原创 SPOJ QTREE3 Query on a tree again! 树链剖分

题目:https://vjudge.net/problem/SPOJ-QTREE3题意:给定一棵树,初始树上的每个点都为白色,有以下操作:0 i:0\ i:把第i个点的颜色取反,白变黑,黑变白1 v:1\ v:求从点1到点v的路径上第一个颜色为黑的点思路:树链剖分,每次优先查询左子区间,再查询右子区间。因为一定是从vv往11走,最后一个查询到的值才是答案,所以查到一个值就更新一下答案#incl

2017-09-12 14:26:46 598

原创 SPOJ QTREE2 Query on a tree II 倍增lca

题目:https://vjudge.net/problem/SPOJ-QTREE2题意:给定一个树,有边权,有以下操作:DIST a b:DIST\ a\ b:求aa到bb的距离KTH a b k:KTH\ a\ b\ k:求从aa到bb路径上的第kk个节点,aa是第一个以DONEDONE作为查询结束标志思路:第一个操作,任意一个lcalca算法都可以求出来,考虑第二种操作,最简单的方法是一步

2017-09-12 10:54:48 312

空空如也

空空如也

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

TA关注的人

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