自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【BZOJ4504】K个串(优先队列,可持久化线段树)

Description兔子们在玩k个串的游戏。首先,它们拿出了一个长度为n的数字序列,选出其中的一个连续子串,然后统计其子串中所有数字之和(注意这里重复出现的数字只被统计一次)。兔子们想知道,在这个数字序列所有连续的子串中,按照以上方式统计其所有数字之和,第k大的和是多少。Input第一行,两个整数n和k,分别表示长度为n的数字序列和想要统计的第k大的和接下里一行n个数a_i,表示这个数字序列Output一行一个整数,表示第k大的和设 f(i,j)f(i,j)f(i,j) 表示以 iii.

2020-07-29 20:09:37 331

原创 【BZOJ4205】卡牌配对(网络流)

Description现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C。把卡牌分为X,Y两类,分别有n1,n2张。两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值互质,且两张卡牌类别不同。比如一张X类卡牌属性值分别是225,233,101,一张Y类卡牌属性值分别为115,466,99。那么这两张牌是可以配对的,因为只有101和99一组属性互质。游戏的目的是最大化匹配上的卡牌组数,当然每张卡牌只能用一次。Input数据第一行两个数n1,n2,空格分割。接下来n1行,每.

2020-07-28 21:06:46 292

原创 【HEOI2015】兔子与樱花(贪心)

首先想一下题目中的操作如何转化:当一个节点被去掉之后,这个节点上的樱花和它的儿子节点都被连到删掉节点的父节点上。设当前节点为 uuu,uuu 的父节点为 fafafa,儿子个数为 sonuson_usonu​。那么当我们把节点 uuu 删去时,fafafa 的樱花数会加上 cuc_ucu​,儿子个数会加上 son−1son-1son−1(减 111 是因为 uuu 本来是 fafafa 的儿子但被删去了)。那么删去一个节点对其父亲的负载增加值就被我们算出来了,设为 vali=cu+sonu−1va

2020-07-28 20:21:47 301

原创 KPGAME - A game with probability(概率dp,博弈)

先考虑一下如果我想赢得游戏,我会采取的最优策略是什么。首先,想赢得游戏就是要取到最后一个石子,每次抛硬币相当于给你一次机会,每次机会都有相同概率取到石子,显然,最优策略就是让我最后一次取石子的机会越多。如何让机会最多?当然是取最后一个石子时,我先抛硬币,这样我的机会就越多。也就是说,我不想取倒数第二个石子。因为如果是我取了倒数第二个石子的话,取最后一个石子时先抛硬币的就是对手了。那么就可以考虑 dp 了:设 dp(i,j=0/1,k=0/1)dp(i,j=0/1,k=0/1)dp(i,j=0/1,k=

2020-07-28 19:12:46 311

原创 【SDOI2009】HH去散步(dp,矩阵快速幂)

看到题目第一眼,最暴力的想法就是设 dp(i,j)dp(i,j)dp(i,j) 表示以 aaa 为起点、iii 为终点,路径长度为 jjj 的路径数。容易得到状态转移方程:dp(u,j)=∑(v,u)dp(v,j−1)dp(u,j)=\sum_{(v,u)}dp(v,j-1)dp(u,j)=∑(v,u)​dp(v,j−1)。但是我们发现一个问题:题目中要求“人物不能立刻沿着刚刚走来的路走回”,但显然这种 dp 方式是不符合要求的,所以想怎么解决。这里用到一个常用的小trick:我们先把双向边拆成两条单

2020-07-24 17:14:53 157

原创 【SHOI2010】最小生成树(最小割,最小生成树)

初看题目,发现题目的操作比较复杂。仔细想了一想,发现题目中的操作“把图中除了这条边以外的边,每一条的权值都减少 111”就等价于“把这条边的权值加 111”。所以题目的操作就被我们化繁为简了。然后继续想:如何才能使 LabLabLab 边一定在最小生成树中?画个图看一下(就以样例为例):假设现在 LabLabLab 边是 (1,2)(1,2)(1,2),长度为 222。那么既然我要保证 LabLabLab 边是最小生成树的一条边,点 111、222 就不能在一个环里面,也就是说,点 111、222

2020-07-20 14:32:56 415

原创 【USACO10JAN】Cheese Towers S 奶酪塔 (背包dp)

一种思路奇特的做法。看到题目容易联想到背包dp,因为看上去很像。但是我们并不知道上面有没有大奶酪。所以我们不妨倒过来看,从上往下加奶酪。设 dp(i,1/0)dp(i,1/0)dp(i,1/0) 表示当前从上往下的累加高度为 iii,这之中有/无大奶酪。显然,当我们考虑新加一个奶酪时,有:{dp(i,0)=max⁡(dp(i−hj,0)+vj)  (hj<K)dp(i,1)=max⁡(dp(i−hj,0)+vj)  (hj≥K)\begin{case

2020-07-19 16:26:18 253

原创 【SDOI2015】排序(dfs+结论)

仔细审题:两个操作序列不同,当且仅当操作个数不同,或者至少一个操作不同(种类不同或者操作位置不同(注意,这里的“操作位置”指的是操作顺序))。也就是说操作序列对答案的贡献多与少和你某一次操作交换哪两段数字没有关系。还有一个:每种操作最多可以执行一次。这是一个很重要的条件。考场上手玩了一下样例,发现操作结果和操作顺序没有关系(结论1,证明是赛后才想出来的)。那么我们把操作种类都相同的操作序列都归为一类。显然,根据结论1,如果某一类中的某一个操作序列(设其长度为 lenlenlen)能实现

2020-07-19 16:25:15 173

原创 【NOI2014】购票(树形dp+树剖+斜率优化)

考虑树形 dp,设 dpidp_idpi​ 为 iii 节点到 SZ 市的最小费用,disidis_idisi​ 为 SZ 市到 iii 节点的距离。显然初始化 dp1=0dp_1=0dp1​=0,然后 disidis_idisi​ 可以提前预处理出来。然后有 dpu=min⁡(dpv+(disu−disv)×pu+qu)dp_u=\min(dp_v+(dis_u-dis_v)\times p_u+q_u)dpu​=min(dpv​+(disu​−disv​)×pu​+qu​)。(vvv 为 uuu 的

2020-07-19 13:56:33 181

原创 【BZOJ3329】Xorequ(数位dp+矩阵快速幂)

由 x⊕3x=2xx\oplus3x=2xx⊕3x=2x 推出 x⊕2x=3xx\oplus2x=3xx⊕2x=3x,然后又有 x+2x=3xx+2x=3xx+2x=3x。定理:若 a⊕b=ca\oplus b=ca⊕b=c 且 a+b=ca+b=ca+b=c,则不可能存在 aaa、bbb 在二进制下的某一位都是 111。证明:设 aaa 在二进制下的第 iii 位为 aia_iai​,bbb 在二进制下的第 iii 位为 bib_ibi​,ccc 在二进制下的第 iii 位为 cic_ici​。显然有

2020-07-17 18:44:51 430

空空如也

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

TA关注的人

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