自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 UVa 12265 贩卖土地 单调栈

题意输入一个\(n\times m\)的矩阵,每个格子可能是空地,也可能是沼泽。对于每个空地格子,求出以它为右下角的空矩形的最大周长,然后统计每个周长出现了多少次。思路对于 每一行 每两个沼泽之间的连续部分 维护一个单调栈,维护对于当前位置(右下角位置)可取的前面的一系列的左上角位置。因为向右移动时新加进来一个较低的会将之前高的削低,即会修改之前栈中可行的点的高度,所以本题中仅维...

2018-05-25 20:14:00 154

转载 Codeforces Round #475 Div. 2 A B C D

A - Splits题意将一个正整数拆分成若干个正整数的和,从大到小排下来,与第一个数字相同的数字的个数为这个拆分的权重。问\(n\)的所有拆分的不同权重可能个数。思路全拆成1,然后每次将2个1换成1个2,即每次2的个数增加1。共有1+n/2种。Code#include <bits/stdc++.h>#define F(i, a, b) for (int i...

2018-04-29 02:27:00 146

转载 Educational Codeforces Round 41 A B C D E

A. Tetris题意俄罗斯方块,问能得多少分。思路即求最小值Code#include <bits/stdc++.h>#define F(i, a, b) for (int i = (a); i < (b); ++i)#define F2(i, a, b) for (int i = (a); i <= (b); ++i)#define dF(i,...

2018-04-05 23:55:00 156

转载 Educational Codeforces Round 40 A B C D E G

A. Diagonal Walking题意将一个序列中所有的\('RU'\)或者\('UR'\)替换成\('D'\),问最终得到的序列最短长度为多少。思路贪心Code#include <bits/stdc++.h>#define F(i, a, b) for (int i = (a); i < (b); ++i)#define F2(i, a, b) f...

2018-03-28 01:43:00 163

转载 AtCoder Regular Contest 092 C D E F

C - 2D Plane 2N Points题意二维平面上有\(N\)个红点,\(N\)个蓝点,一个红点和一个蓝点能配成一对当且仅当\(x_r<x_b\)且\(y_r<y_b\).问最多能形成多少pair.思路无脑版本:可以匹配的连边,然后跑匈牙利。正确的贪心姿势:对于所有的点按\(x\)从小到大排序,对于蓝点,要匹配的最优的红点即为 在其之前出现的 \(y\)小...

2018-03-25 02:29:00 114

转载 Codeforces 950E Data Center Maintenance 强连通分量

题目链接题意有\(n\)个信息中心,每个信息中心都有自己的维护时间\((0\leq t\lt h)\),在这个时刻里面的信息不能被获得。每个用户的数据都有两份备份,放在两个相异的信息中心(维护时间也相异)。现要挑选出信息中心的一个尽量小的子集,使得将这个子集的维护时间向后推移一个小时后,不会导致问题(存在一个用户,其数据所在的两个信息中心维护时间相同)。思路强连通分量考虑每...

2018-03-10 20:45:00 165

转载 Codeforces Round #469 Div. 2 A B C D E

A. Left-handers, Right-handers and Ambidexters题意\(l\)个左撇子,\(r\)个右撇子,\(a\)个两手均可。要组成一支队伍,里面用左手的人数与用右手的人数相等,问队伍最大人数。Code#include <bits/stdc++.h>#define F(i, a, b) for (int i = (a); i <...

2018-03-10 01:50:00 98

转载 Codeforces Round #391 A B C D E

A. Gotta Catch Em' All!题意从给定的字符串中选取字符,问可构成多少个\(Bulbasaur\)// 想到柯南里一些从报纸上剪汉字拼成的恐吓信_(:з」∠)_Code#include <bits/stdc++.h>#define F(i, a, b) for (int i = (a); i < (b); ++i)#define F2(i...

2018-03-06 20:40:00 188

转载 bzoj 4569 [Scoi2016]萌萌哒 并查集 + ST表

题目链接Description一个长度为\(n\)的大数,用\(S_1S_2S_3...S_n\)表示,其中\(S_i\)表示数的第\(i\)位,\(S_1\)是数的最高位,告诉你一些限制条件,每个条件表示为四个数,\(l_1,r_1,l_2,r_2\),即两个长度相同的区间,表示子串\(S_{l1}S_{l1+1}S_{l1+2}...S_{r1}\)与\(S_{l2}S_{l2+...

2018-03-06 19:48:00 99

转载 Codeforces 940F Machine Learning 带修改莫队

题目链接题意给定一个长度为\(n\)的数组\(a\),\(q\)个操作,操作分两种:对于区间\([l,r]\),询问\(Mex\{c_0,c_1,c_2,⋯,c_{10^9}\}\),其中\(c_i\)表示\(i\)在\([l,r]\)中的出现次数;将\(a_p\)修改为\(x\).思路参考:http://www.cnblogs.com/PinkRabbit/p/8476...

2018-03-01 10:43:00 83

转载 bzoj 3744 Gty的妹子序列 区间逆序对数(在线) 分块

题目链接题意给定\(n\)个数,\(q\)个询问,每次询问\([l,r]\)区间内的逆序对数。强制在线。思路参考:http://www.cnblogs.com/candy99/p/6579556.html离线的话就如上一题bzoj 3289 Mato的文件管理,可以直接用 莫队 搞,在线的话怎么办呢?分块大法好。1预处理出两个信息:\(f[i][j]\):从 第\(...

2018-02-28 16:33:00 174

转载 bzoj 3289 Mato的文件管理 区间逆序对数(离线) 莫队

题目链接题意给定\(n\)个数,\(q\)个询问,每次询问\([l,r]\)区间内的逆序对数。思路莫队+树状数组注意离散化Code#include <bits/stdc++.h>#define F(i, a, b) for (int i = (a); i < (b); ++i)#define F2(i, a, b) for (int i = (a); ...

2018-02-28 16:31:00 138

转载 luogu 2709 小B的询问 莫队

题目链接Description小B有一个序列,包含\(N\)个\(1-K\)之间的整数。他一共有\(M\)个询问,每个询问给定一个区间\([L..R]\),求\(\sum_{i=1}^{K}c_i^2\),其中\(c_i\)表示数字\(i\)在\([L..R]\)中的重复次数。小B请你帮助他回答询问。思路裸的莫队。\(cnt[x]\)记录\(x\)的出现次数,增量为\((cnt...

2018-02-27 21:29:00 101

转载 bzoj 2002 [Hnoi2010]Bounce 弹飞绵羊 分块

题目链接Description某天,\(Lostmonkey\)发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,\(Lostmonkey\)在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数\(k_i\),当绵羊达到第i个装置时,它会往后弹\(k_i\)步,达到第\(i+k_i\)个装置,若不存在第\(i+k_i\)个装置,则绵羊被弹飞...

2018-02-27 16:51:00 93

转载 bzoj 4765 普通计算姬 dfs序 + 分块

题目链接Description"奋战三星期,造台计算机"。小G响应号召,花了三小时造了台普通计算姬。普通计算姬比普通计算机要厉害一些。普通计算机能计算数列区间和,而普通计算姬能计算树中子树和。更具体地,小G的计算姬可以解决这么个问题:给定一棵\(n\)个节点的带权树,节点编号为\(1\)到\(n\),以\(root\)为根,设\(val[p]\)表示以点\(p\)为根的这棵子树中所...

2018-02-27 15:50:00 71

转载 loj 数列分块入门 6 9(区间众数)

6题意给出一个长为\(n\)的数列,以及\(n\)个操作,操作涉及单点插入,单点询问,数据随机生成。题解参考:http://hzwer.com/8053.html每个块内用一个\(vector\)维护,每次插入时先找到位置所在的块,再暴力插入。如果数据不随机,即如果先在一个块有大量单点插入,这个块的大小会大大超过\(\sqrt n\),那块内的暴力就没有复杂度保证了。为此引...

2018-02-27 15:42:00 205

转载 loj 数列分块入门 5 7 8

5题意给出一个长为\(n\)的数列,以及\(n\)个操作,操作涉及区间开方,区间求和。思路用\(tag\)记录这一块是否已全为\(1\).除分块外,还可用 树状数组+并查集(链表) 或者 线段树 做,见 Educational Codeforces Round 37 F。Code#include <bits/stdc++.h>#define maxn 5001...

2018-02-26 17:20:00 123

转载 AtCoder Grand Contest 021 D - Reversed LCS

题目链接题意给定一个字符串\(S\),允许修改其中至多\(k\)个字符变为\(T\)。记\(T\)的反转为\(T'\),求\(T\)与\(T'\)的最长公共子序列。题解结论\(T\)与\(T'\)的最长公共子序列的长度 = \(T\)的最长回文子序列的长度证明part. 1先证:\(T\)与\(T'\)的最长公共子序列的长度\(\leq T\)的最长回文子序列的长度假...

2018-02-25 22:20:00 84

转载 Codeforces Round #466

A. Points on the line题意给定一条直线上\(n\)个点,要求去掉最少的点,使得直线上相距最远的两个点的距离\(\leq d\).思路枚举长度为\(d\)的区间。Code#include <bits/stdc++.h>#define F(i, a, b) for (int i = (a); i < (b); ++i)#define F2...

2018-02-25 11:17:00 110

转载 Codeforces 935D Fafa and Ancient Alphabet

题目链接题意给定两个\(n\)位的\(m\)进制数\(s1,s2\),所有出现的\(0\)均可等概率地被其他数字替换,求\(s1\gt s2\)的概率。思路从高位到低位,根据每一位上相应的\(0\)的个数进行 分类讨论。计算每一位的时候加上这样一部分答案:比到该位恰能比出大小的情况数。恰能比出大小意味着:高位全部相同,该位\(s1\gt s2\),低位随便怎么取。因此,需对...

2018-02-22 23:18:00 120

转载 EOJ Monthly 2018.2

A. 坑爹的售票机题意用\(1,5,10,25,50,100\)的纸币买\(n\)张单价为\(p\)的船票,且一次性最多买\(k\)张,求钱数恰好时最少需要多少张纸币。Hard: \(n,k,p\leq 10^9\)思路Easy: dpHard: dp + 瞎搞当钱数过大或者张数过多时,(由直觉)其中的大部分都是遵循一定的规律来取的,只有剩余的一小部分需要dp.Code...

2018-02-22 22:59:00 264

转载 poj 2411 Mondriaan's Dream 骨牌铺放 状压dp

题目链接题意用\(1\times 2\)的骨牌铺满\(H\times W(H,W\leq 11)\)的网格,问方案数。思路参考focus_best.竖着的骨牌用\(\begin{pmatrix}0\\1\end{pmatrix}\)表示,横着的骨牌用\(\begin{pmatrix}1&1\end{pmatrix}\)表示。则对于第\(i\)行,与之相容的第\(i-1...

2018-02-18 17:49:00 152

转载 zoj 3471 Most Powerful (有向图)最大生成树 状压dp

题目链接题意\(N\)种气体,\(i\)气体与\(j\)气体碰撞会:产生\(a[i][j]\)的威力;导致\(j\)气体消失。求产生威力之和的最大值。思路和前几题找图上路径的题不一样,该题如果抽象成图上的问题,则为:在有向连通图中找一棵树,对于每一对\((parent,child)\)关系对,\(parent\)相当于这里的气体\(i\),\(child\)相当于这里...

2018-02-17 19:12:00 288

转载 poj 2280 Islands and Bridges 哈密尔顿路 状压dp

题目链接题意给定一个\(N\)个点的无向图,求一条哈密尔顿路径\(C_1C_2...C_n\),使其\(value\)最大。\(value\)的计算方式如下:\[\begin{aligned}value&=\sum_{i=1}^{n}C_i\\&+\sum_{i=1}^{n-1}C_i*C_{i+1}\\&+\sum_{i=1}^{n-2}C_i*C_{i+...

2018-02-17 16:39:00 91

转载 hdu 3001 Travelling 经过所有点(最多两次)的最短路径 三进制状压dp

题目链接题意给定一个\(N\)个点的无向图,求从任意一个点出发,经过所有点的最短路径长度(每个点至多可以经过两次)。思路状态表示、转移及大体思路 与 poj 3311 Hie with the Pie 经过所有点(可重)的最短路径 floyd + 状压dp 相同。但,因为是每个点 至多可以经过两次,所以应该用 三进制 来表示状态。因为三进制不能直接通过移位来表示,所以要 预处...

2018-02-15 16:35:00 307

转载 poj 3311 Hie with the Pie 经过所有点(可重)的最短路径 floyd + 状压dp

题目链接题意给定一个\(N\)个点的完全图(有向图),求从原点出发,经过所有点再回到原点的最短路径长度(可重复经过中途点)。思路因为可多次经过同一个点,所以可用floyd先预处理出每两个点之间的最短路径。接下来就是状压dp的部分。将已经经过的点的状态用\(state\)表示,则\(dp[state][k]\)表示当前到达点\(k\)后状态为\(state\)时的最短路径长度...

2018-02-14 23:29:00 696

转载 poj 1185 炮兵阵地 状压dp

题目链接题意在\(N\times M\)的\(0,1\)格子上放东西,只有标记为\(1\)的格子可以放东西,且每一格的向上两个,向下两个,向左两个,向右两个格子均不能放东西。问整张图上最多能放多少东西。思路参考:accry.因为每一行的状态与上两行有关,所以用\(dp[i][j][k]\)表示放到第\(i\)行,当前行的状态为\(j\),上一行的状态为\(k\)时的情况总数。...

2018-02-14 17:10:00 108

转载 poj 3254 Corn Fields 状压dp入门

题目链接题意在\(M\times N\)的\(0,1\)格子上放东西,只有标记为\(1\)的格子可以放东西,且相邻的格子不能同时放东西。问有多少种放法。思路参考:swallowblank.\(dp[i][state]\)表示放到第\(i\)行状态为\(state\)时的情况总数。显然有\[dp[i][state]=\sum dp[i-1][state']\]其中,\(sta...

2018-02-14 16:07:00 104

转载 loj 6278 6279 数列分块入门 2 3

参考:「分块」数列分块入门1 – 9 by hzwer2Description给出一个长为\(n\)的数列,以及\(n\)个操作,操作涉及区间加法,询问区间内小于某个值\(x\)的元素个数。思路每个块内保持升序排列。则块外暴力统计,块内二分查找分界点。一些注意点,如:要记录下标;块外暴力修改完之后需要再排序;在块内二分查找的值是\(c-tag[i]\)而非\(c\)...

2018-02-13 11:36:00 89

转载 loj 6277 6280 数列分块入门 1 4

参考:「分块」数列分块入门1 – 9 by hzwer1Description给出一个长为\(n\)的数列,以及\(n\)个操作,操作涉及区间加法,单点查值。思路用\(tag\)记录每个块整体的增量。Code#include <bits/stdc++.h>#define maxn 50010#define F(i, a, b) for (int i = (a...

2018-02-13 11:26:00 101

转载 luogu 2463 [SDOI2008]Sandy的卡片 kmp || 后缀数组 n个串的最长公共子串

题目链接Description给出\(n\)个序列。找出这\(n\)个序列的最长相同子串。在这里,相同定义为:两个子串长度相同且一个串的全部元素加上一个数就会变成另一个串。思路参考:hzwer.法一:kmp在第一个串中枚举答案串的开头位置,与其余\(n-1\)个串做\(kmp\).法二:后缀数组将\(n\)个串拼接起来。二分答案\(len\),将\(height\)分组...

2018-02-12 19:28:00 89

转载 bzoj 3238 [Ahoi2013]差异 后缀数组 + 单调栈

题目链接Description一个长度为\(n\)的字符串\(S\),令\(T_i\)表示它从第\(i\)个字符开始的后缀。求\[\sum_{1\leq i\leq j\leq n}len(T_i)+len(T_j)-2*lcp(T_i,T_j)\]其中,\(len(a)\)表示字符串\(a\)的长度,\(lcp(a,b)\)表示字符串\(a\)和字符串\(b\)的最长公共前缀。\...

2018-02-12 12:09:00 99

转载 poj 3693 Maximum repetition substring 重复次数最多的连续子串

题目链接题意对于任意的字符串,定义它的 重复次数 为:它最多可被划分成的完全相同的子串个数。例如:ababab 的重复次数为3,ababa 的重复次数为1.现给定一字符串,求它的一个子串,其重复次数取到最大值,且字典序取到最小值。思路参考 hzwer.首先,重复次数显然至少为\(1\),所以下面只考虑重复次数\(\geq 2\)的情况。首先枚举子串长度\(L\)。对于长度为...

2018-02-12 10:26:00 174

转载 hdu 3518 Boring counting 后缀数组 height分组

题目链接题意对于给定的字符串,求有多少个 不重叠的子串 出现次数 \(\geq 2\).思路枚举子串长度 \(len\),以此作为分界值来对 \(height\) 值进行划分。显然,对于每一组,组内子串具有一个长度为 \(len\) 的公共前缀。至于是否重叠,只需判断 \(sa_{max}-sa_{min}\geq len\).对于组间,显然它们的公共前缀互不相同,所以答案...

2018-02-10 22:40:00 99

转载 Codeforces 920G List Of Integers 二分 + 容斥

题目链接题意给定 \(x,p,k\),求大于 \(x\) 的第 \(k\) 个与 \(p\) 互质的数。思路参考 蒟蒻JHY.二分答案 \(y\),再去 \(check\) 在 \([x,y]\) 区间中是否有 \(k\) 个与 \(p\) 互质的数。\(check\) 采用容斥,将 \(p\) 质因数分解,用这些质数组合成的数在 \([1,y]\) 范围内 容斥。Code...

2018-02-06 15:03:00 117

转载 Codeforces 920E Connected Components? 补图连通块个数

题目链接题意对给定的一张图,求其补图的联通块个数及大小。思路参考 ww140142.维护一个链表,里面存放未归入到任何一个连通块中的点,即有必要从其开始进行拓展的点。对于每个这样的点,从它开始进行 \(bfs\),将未被拓展到的点加入队列,并从链表中删除。注意:写法上有一点要注意, 在处理完一整个连通块之后,记录下下一个连通块中的第一个点之后,再将最初的 \(src\) 从...

2018-02-05 23:07:00 127

转载 Codeforces 920D Tanks

题目链接题意有 \(n\) 个容积无限的水缸,初始时水量为\(a_1,a_2,...,a_n\),有一把容积为\(k\)的勺子,可以从一个水缸中舀水倒入另一个水缸中。问能否给出操作序列,使得最终某一个水缸中水的容量为\(V\).思路参考 - 粉兔.结论首先,如果\(\sum_{i=1}^{n}a_i\lt V\),显然不可行。否则,一旦\(\exists p_1,p_2,....

2018-02-04 13:53:00 126

转载 LeetCode Weekly Contest 70 A B C D

A. K-th Symbol in GrammarDescriptionOn the first row, we write a 0. Now in every subsequent row, we look at the previous row and replace each occurrence of 0 with 01, and each occurrence of 1 w...

2018-02-04 13:12:00 77

转载 Educational Codeforces Round 37 A B C D E F

A. water the gardenCode#include <bits/stdc++.h>#define maxn 210using namespace std;typedef long long LL;int n, k;int x[maxn];void work() { scanf("%d%d", &n,&k); for ...

2018-02-03 01:00:00 139

转载 AtCoder Regular Contest 090 F - Number of Digits

题目链接DescriptionFor a positive integer \(n\), let us define \(f(n)\) as the number of digits in base \(10\).You are given an integer \(S(1≤S≤10^8)\). Count the number of the pairs of positive i...

2018-02-01 19:24:00 152

空空如也

空空如也

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

TA关注的人

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