自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2018牛客暑期多校训练赛 第一场 (A.D.E.J)

题目链接A. Monotonic Matrix给出n和m,问存在多少个n*m矩阵使得对于任意i, j都满足a(i, j) <= a(i+1, j)且a(i, j) <= a(i, j+1),其中0 <= a(i, j) <= 2。显然一个位置的元素不大于右下方三个位置的元素。考虑0和1、1和2的分界线,题目就变成了:从(n, 0) 到(0, m)的两条不相交可重...

2018-09-30 16:06:29 244

原创 Gym 101431B Vera and Banquet (后缀数组)

题目链接一个环形的字符串,求本质不同子串数目,顺逆时针皆可。顺时针直接复制一遍,统计长度不超过n的种类;逆时针就翻转过来再复制一遍,统计长度不超过n的种类。因此搞到一起就是把串复制一遍再对称过去,中间加一个特殊字符,统计长度不超过n的种类再减去含有特殊字符的种类。不超过n的种类显然是min(len-sa[i]+1, n),含有特殊字符的种类按长度分类总共是1+2+……+n = n*(n...

2018-09-28 23:30:43 227

原创 ZOJ 4019 Schrödinger's Knapsack (DP)

题目链接背包问题,但放东西的顺序会影响结果,放入基础价值为k的物品的贡献为kr,其中r为放入这个物品后背包剩余的体积。且规定只有两种价值的物品,分别为ka,kb。给出每个物品的体积,求最大的总价值。由于同种物品只有体积上的差别,基础价值是相同的,因此易知同种物品必然是放体积小的比放体积大的更优。先把两种物品分别按体积排序,dp[i][j]表示放入了第一种体积前i小、第二种体积前j小物品...

2018-09-28 14:48:05 135

原创 2015 ICPC沈阳现场赛 F. Frogs (欧拉函数)

题目链接m个石头围成一圈,一群青蛙从0开始跳,第i个青蛙每步跳ai距离,求所有能被跳到的石头的编号之和。容易推出石头x被第i只青蛙跳到的充要条件是,显然这与下面的命题是等价的:石头x被跳到的充要条件是存在一个i,使得。gcd(x, m)显然是m的因数,那么我们就可以枚举m的因数。对于m的一个因数k,如果存在一个i使得k能被ai整除,则此时它产生的贡献就是:实际上上面也就是小...

2018-09-24 23:40:58 667

原创 2018 ICPC北京网络赛 C. Cheat (模拟)

题目链接恶心的大模拟……4个人打牌轮流出牌(当前轮次应出的牌按照A-K顺序循环),同时声明所出的牌,且这个声明可能为假,出牌后其他人可以选择质疑他的声明。质疑时,若当前声明为真,质疑者拿走桌面上所有牌,否则出牌者拿走桌面上所有牌。第一个出完手中所有牌的人赢。出牌的规则:玩家1:如果能放,放一张;否则放一张字典序最小的。玩家2:如果能放,全部放下;否则放一张字典序最小的。玩家...

2018-09-23 22:57:30 293 1

原创 POJ 1430 Binary Stirling Numbers (排列组合)

题目链接对于第二类斯特林数S(n,m) = S(n-1,m-1) + m*S(n-1,m),求S(n,m)的奇偶性。学习了大佬的博客……在模2的意义下,如果m为偶数,则S(n,m)=S(n-1,m-1);如果m为奇数,则S(n,m)=S(n-1,m-1)+S(n-1,m)。考虑这种关系的另一种表示:初始时在(0,0)处,对于状态(x,y),如果x为奇数,可以转移到(x+1,y+1)...

2018-09-21 16:26:08 292

原创 POJ 3252 Round Number (排列组合)

题目链接定义Round Number为二进制表示下0不少于1的数字。问区间[l,r]内有多少个Round Number。仍然是考虑用[1,r]的答案减去[1,l-1]的答案。对于一个二进制长度为n的数x,显然长度为1~n-1的数必然是合法的。首先看长度为n且小于x的数中有多少个合法答案。方法是从第二位开始,如果碰见1,就考虑如果它为0,可能产生多少种合法答案。以26=(11010)b为...

2018-09-21 14:47:30 171

原创 Codeforces Round 510 D. Petya and Array (树状数组)

1042D给出一个数组a,问存在多少对l, r满足i < j且。从l 到r 的和小于t,即sum(r)-sum(l-1)<t,其中sum是a的前缀和。实现的方法就是从前往后对于每一个sum(i),看在它前面有多少个大于sum(i)-t的前缀和。这个过程用树状数组来维护,每次加入sum(i-1),然后查询sum(i)。这样可以保证每次查询sum(i)的时候,存在于树状数组中的...

2018-09-19 16:42:36 352

原创 Codeforces EduRound 50 C. Classy Numbers (组合数学)

1036C定义Classy Integer为不超过三个数位为非零数的数。给出q次询问,每次要求给出[l,r]区间中Classy Integer的数目。计算[l,r]的结果,考虑以cal(r)-cal(l)的形式给出。考虑某个数字的前缀有k个非0的数位,后缀的长度为x,且前缀之后第一位为d的情况。如果d为0,这个时候显然答案为0,。否则,因为我们要计算的是[1,r]区间的答案,在小于r的情况...

2018-09-19 15:26:01 209

原创 2018 ICPC青岛网络赛 B. Red Black Tree (LCA乱搞)

题意:给出一棵树,其中某些点是红色,其余点是黑色。定义一个点的花费为这个点到距其最近的红色祖先节点的距离。要求进行q次查询,每次查询给出k个节点,允许将最多一个黑色点变为红色, 求这k个点中最大花费的最小值。每次查询相互独立,不对树的结构产生影响。首先可以预处理出每个点的最近红色祖先以及花费。在查询的k个点中,需要修改的只可能是从花费最大的点到它的最近红色祖先的路径上的点,否则最大值不会得...

2018-09-16 20:48:59 714

原创 HDU 6437 Videos (最小费用最大流)

题目链接将每场电影拆成两个点,从入点向出点连边,费用是h,容量为1。从源点向它的入点、它的出点向汇点连边,费用为0,容量为1。考虑到m很小,可以O(m^2)地在电影之间连边。如果i的结束时间不晚于j的开始时间,那么就从i的出点带j的入点连边,容量为1,若i和j为同类费用为w,否则费用为0。最后将源点也拆成两个点,从入点到出点连边,容量为k,费用为0,表示一共只有k个人。这样就是一个...

2018-09-13 20:23:22 216

原创 HDU 6415 Rikka with Nash Equilibrium (DP)

题目链接要求在n*m矩阵中填入1-n*m,使得存在且仅存在1个位置,这个位置的数在所在的行与列都是最大值。问有多少种方案。易知这个位置上必然是n*m。为了满足有且仅有一个点符合条件,我们从n*m倒着往矩阵里面放,显然每个数都应该放在已经存在数的行或列上。考虑用i个数已经在j行k列上放置了数字,在放第i+1个数之后只可能覆盖j行k列、j+1行k列、j行k+1列。这样分别有j*k-i、k*...

2018-09-10 23:01:47 158

原创 HDU 6403 Card Game (基环树 + DP)

题目链接有n张纸牌,每张牌的正反面分别写着一个数字,现在需要翻转某些纸牌使得所有纸牌正面的数字各不相同,问最少的操作次数以及操作的方案数。首先建图,从初始时反面的数字向正面数字连边。问题实际上就是:将最少的边反向,使得每个点的入度都不超过1。对于每一个弱联通分量,如果边数大于点数,那么必然会存在某些点的入度大于1。也就是说,建好的图中的弱联通分量,要么是树,要么是基环树。否则无解。...

2018-09-10 16:38:46 411

原创 2018 ICPC沈阳网络赛 F. Fantastic Graph (上下界网络流)

题目链接给出一个二分图,问能否删去某些边,使得每个点的度都在[l,r]范围内。建一个源汇,分别从源点向x部、y部向汇点连边。这样就变成了一个有源汇上下界可行流的问题。建一个超级源汇,对于每条从u到v流量范围为[l,r]的边,从u到v连边容量为r-l,从超级源点到v连边容量为l,从u到超级汇点连边容量为l。如果最大流等于(n+m)*l则存在可行流。以及今天发现以前用的dinic模板辣...

2018-09-10 14:35:27 324

原创 2018 ICPC徐州网络赛 D. Easy Math

题目链接先放一个问答区的图求。考虑莫比乌斯函数的定义,当n = k*p*p (p > 1)时,。又考虑到莫比乌斯函数作为积性函数的性质,则有:。由容斥原理:令: ,则:。先预处理n的质因子,就可以加速的计算,递归地进行处理。考虑处理到边界时,n = 1即为求。预处理以内的数,其余部分用杜教筛来进行处理。#include <cstdio>...

2018-09-09 22:17:23 436

原创 HDU 6406 Taotao Picks Apples (线段树)

题目链接 给出一个数列,要求每次单点更新后查询从1开始的严格上升子序列长度。考虑到严格上升子序列所具有的单调性,我们可以用一棵线段树来维护区间最大值,然后通过相邻区间的最大值关系来确定严格递增序列的长度。在维护一个区间的时候,显然它的左儿子和右儿子都有一个贡献。如果前一个数比后一个数要大,后一个数显然是不会产生贡献的。因此,一个区间的贡献应该至少是它左儿子的贡献。而对于右儿子产生的贡献,可...

2018-09-07 16:52:04 122

原创 HDU 5956 The Elder (树形DP + 斜率优化)

题目链接容易看出来是一个树形dp,并且有一个非常显然的状态转移方程:,其中v是树上从u到根节点路径上的点。但是显然这样的时间复杂度在树退化成链的时候会达到,需要想办法来进行优化。尝试进行变形:如果状态v和w都可以转移到状态u,那么在这种情况下,从状态v转移会更优:我们发现上式变成了一个斜率的形式。考虑将(dis[i], f[i])的点绘制出来,如果出现了下面...

2018-09-06 13:57:55 301

原创 HDU 6396 Swordsman (优先队列+输入挂)

题目链接 n个怪物,每个怪物都有5个属性,只有每种属性都比怪物高的时候才能打败这个怪物,同时每种属性都会提升一点。问最终最多能杀掉多少怪物。贪心求解,不过贪心的姿势不是很好想。建5个优先队列,一开始的时候把所有的怪物都扔到第一个优先队列里面, 如果属性1高于 这个怪物,就把这个怪物从队列1中拿出来,扔到第2个优先队列里面。依此类推。然后在第5个队列中拿出怪物的时候就表示这个怪物可以被打死,将每...

2018-09-04 14:29:18 133

原创 HDU 6395 Sequence (分块矩阵快速幂)

给出F的定义求F(n) % 1e9+7。如果没有这个p/n,就是一个简单的矩阵快速幂。向下取整的值在1-n中,显然每一个数出现的时候都是连续的一段,这样就可以分块地去求矩阵快速幂。对于i,可以得出,p/i最后一次出现就是p/(p/i)。以及为什么G++比C++提交快这么多啊嘤嘤嘤 #pragma once#include <cstdio>#include ...

2018-09-03 23:42:48 207

空空如也

空空如也

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

TA关注的人

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