自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 洛谷 P4294 [WC2008]游览计划(斯坦纳树(指定点集连通点权最小) + dp记录路径)

代码:#include<bits/stdc++.h>using namespace std;#define pii pair<int,int>#define fir first#define sec secondtypedef long long ll;const int maxn = 2e2 + 10;vector<int> g[maxn...

2019-10-31 21:53:46 227

原创 洛谷 P5170 【模板】类欧几里得算法(三类经典类欧式子模板)

#include<iostream>#include<stdio.h>using namespace std;const int maxn = 1e6 + 10;typedef long long ll;const long long mod = 998244353;const long long inv2 = 499122177;const long l...

2019-10-31 19:43:39 201

原创 loj 6344 :异或和(类欧几里得(a,b有负数情况的分析) + 分块 + 卡常技巧)

(太菜了,群友指点两小时才过)按套路,将取模拆开,式子变成:⨁i=1n(n−i∗⌊ni⌋)\displaystyle\bigoplus_{i = 1}^n (n - i*\lfloor\frac{n}{i}\rfloor)i=1⨁n​(n−i∗⌊in​⌋)然后就可以按套路,按位考虑,计算每一位为 1 的数字的个数:∑i=0n⌊n−⌊ni⌋∗i2p⌋\displaystyle\sum_{i ...

2019-10-31 15:20:54 272

原创 poj 3495 :Bitwise XOR of Arithmetic Progression(类欧几里得)

题目链接:poj 3495:Bitwise XOR of Arithmetic Progression让你求 x+z,x+2z,...,x+kz(x+kz≤y)\displaystyle x + z,x + 2z,...,x + kz(x + kz \leq y)x+z,x+2z,...,x+kz(x+kz≤y) 的异或和转化式子:⨁k=0⌊y−xz⌋x+k∗z\displaystyle\...

2019-10-31 11:04:03 185

原创 Codeforce 1251 E. Voting (贪心,思维)

题目大意: n 个人,每个人有两个属性 p,mp,mp,m,p 即 你收买这个人的价格,mmm 是你免费获得这个人的票你需要至少 m 票,问获得所有人的票至少要花多少钱。按mmm 分桶,倒过来做,计prexpre_xprex​为 m≤xm \leq xm≤x 的人数。对于m=im = im=i 的人,计算一下若 prei−1pre_{i - 1}prei−1​ 的人都能获得,还需要买几个人...

2019-10-31 10:26:38 247

原创 Codeforce 1251 D. Salary Changing(二分答案 + 贪心)

题意:有 n 个人,每个人的工资的有个区间[l,r][l,r][l,r],你手上总共有 sss 金额。你给这 n 个人发工资,工资金额必须满足他们的区间要求。问要使得中位数最大,最少要发多少钱出去。直接二分答案,对当前答案求出最少需要的金额 fff,对于midmidmid, 至少要有 ⌊n+12⌋\lfloor\frac{n + 1}{2}\rfloor⌊2n+1​⌋ 个人的工资 ≥mid\...

2019-10-31 00:03:50 300

原创 牛客小白赛 18 F.Forsaken的位运算魔法(类欧几里得算法(模板))

从贡献角度考虑。遍历 k 的每一位,若这一位为 0,计算有多少个 ijijij 这一位为1。反之计算这一位有多少个数字为 0。根据题解计算有多少个 ijijij 第 p 位为 1,等价于计算 ∑i=0n∑j=0n(⌊ij2p⌋−2⌊ij2p+1⌋)\displaystyle\sum_{i = 0}^n\sum_{j = 0}^n(\lfloor\frac{ij}{2^p}\rfloor-2\...

2019-10-29 13:29:42 225

原创 Codeforce 1208 F. Bits And Pieces(SOS DP)

考虑从后往前做。对于 aia_iai​,从高位到低位贪心考虑,对于第 ppp 位,若这一位为0,那么只要后面的数能找到2个这一位为1的即可,把后面这一位为1的数字加入到一个集合中 SpS_pSp​。下一次对于第 qqq 位(q>pq > pq>p),若这一位为0,那么从SpS_pSp​中再选出第 qqq 位为 1的数字加入到 SqS_qSq​ 中,只要超过两个即可,若不超过两...

2019-10-28 20:38:56 230

原创 牛客小白赛 18 J: Forsaken喜欢玩自走棋(SOS DP)

对于一个二进制,它的贡献必须加到它的子集里,这和SOS DP 的形式类似。把每个输入的进制取反,整个过程也就反过来了:一个二进制,它的贡献必须加到包含它的集合里,即求子集和,这正是SOS DP的过程。于是求一遍SOS DP,遍历 2202^{20}220 以内的二进制,找出值最大二进制值也最大的即可。SOS DP (子集和DP)是类似高维前缀和的东西,由于它每一位只有0和1,它的高维前...

2019-10-28 18:43:03 249

原创 HDU 6540 Neko and tree(树形DP,计数类DP)

题目大意:树上有 m 个关键点,选出一部分点,使得任意一对点间的距离不大于 kkk,问有多少种选法。容易想到构造状态 dp[u][dep]dp[u][dep]dp[u][dep] 表示在 uuu 结点为根结点的子树中选的结点深度不大于 depdepdep 的方案总数。这题的状态构造方法类似于 https://codeforc.es/contest/1249/problem/F不过这题是计...

2019-10-26 23:42:33 295

原创 牛客小白月赛 18 I:Forsaken遇到了毒瘤(数论,整除分块)

n%d+m%d≥dn \% d + m \% d \geq dn%d+m%d≥d 可以写成 n−⌊nd⌋∗d+m−⌊md⌋∗d≥dn - \lfloor\frac{n}{d}\rfloor * d +m - \lfloor\frac{m}{d}\rfloor * d \geq dn−⌊dn​⌋∗d+m−⌊dm​⌋∗d≥d移项一下可以得出:⌊nd⌋+⌊md⌋+1≥⌊n+md⌋\lfloor\f...

2019-10-26 09:08:47 340 1

原创 Codeforce 1249 F. Maximum Weight Subset(树形DP)

题目大意:从一棵树上选一个点集,任意两点的距离不能小于等于 k,使得这个点集的权值和最大。实际上也不是很难,一开始以为树形DP做不了,后来想了一下如果能构建一个状态 dp[u][dep]dp[u][dep]dp[u][dep] 表示在 uuu 结点为根的子树中选出的点的深度不小于 depdepdep 并且满足距离大于 kkk 这个限制的最大点权和。很容易想到为什么要构建这个状态,假设以 ...

2019-10-26 00:44:10 263

原创 gym 101630 L - Laminar Family(树上区间染色 + 树链剖分)

题目大意:有一棵 nnn 个结点的树,有 fff 条简单路径,判断这 fff 条路径任意两条是否满足:1.两条路径不相交2.其中一条包含另外一条先预处理每条路径的长度,按它们的长度从大到小排序,这样处理的作用是当前枚举的路径不会包含其它路径,如果路径所在区间有其它路径,那么必然是被包含在其它路径内或者相交。对路径区间进行染色,对每一条路径判断区间内是否只有一种颜色:即max==minma...

2019-10-24 15:41:34 232

原创 gym 101933 E. Explosion Exploit(概率,记忆化搜索 +剪枝)

题目链接:https://codeforces.com/gym/101933/problem/E题目大意:有2个玩家 a 和 b,a 有 n 个棋,b 有 m 个棋,a 可以发动闪电,随机命中场上还剩下的棋子,并使得它的生命中减一,当棋子的生命值降为0时就会被抬走,a 一共可以发动 d 次闪电,求 a 能把 b 所有棋子抬走的概率(即使自己的棋子全没了也可以继续发动闪电)。题解:n,mn,...

2019-10-22 18:41:01 504

原创 2019 南昌邀请赛 A.Attack(斯坦纳树 + 子集dp)

题目链接:https://nanti.jisuanke.com/t/40253题目大意:有 n 个点,m无向条边的图,每条边有一个非负边权。现在有4对点需要连通,共用的边只用计算一次,输出使这4对点连通的最小花费。如果这四对点间互相不连通,那么答案是这四对点的最短路之和。但这四对点之间也可能互相连通,他们共用了一部分边,某一对点间的连通路径也许不是这两点间的最短路。一个做法是,枚举哪些点...

2019-10-22 16:15:55 177

原创 HDU 3311 :Dig The Wells(斯坦纳树模板)

题目大意:有 n 座庙,每个庙里有 n 个和尚,有 m 个其它地点,这 n+mn + mn+m 个地点都可以打井,在每个点打井有一个花费 a[i]a[i]a[i]。另外还有 ppp 条无向边,每条边有一个花费www,求要使得这 nnn 个和尚都能喝到水的最小花费。引入一个虚点0,连向其它所有点,边权为这些点的点权,则题目转化为 0号点为根节点,使得 前 n 个点连通的最小花费,套斯坦纳树模板...

2019-10-22 14:26:15 180

原创 Codeforce 1248 E. Queue in the Train(模拟,思维)

题目大意:有 n 个人,按 [1,n] 的顺序坐在自己的位置上,每个人在 aia_iai​的时间会醒来并且去打热水,热水一次只能一个人打,且一次需要 ppp 分钟。第 iii 个人醒来时会先观察 [1,i−1][1,i - 1][1,i−1]是否有人在排队,如果有,则第 iii 个人会坐在自己位置上等,否则这个人会去排队。如果某一时间有多个人都醒来并且要求打热水,最左边的人会先去。输出每个人打到...

2019-10-22 09:56:01 205

原创 Codeforce 1248 F. Catowice City(思维,dfs)

题目大意:有 n 户人,每户人家里有一个人和一只猫。每个人都认识自己家的猫,除此之外还认识一些别人家的猫,现在要选一些猫和人出来,使得猫的个数 + 人的个数 = n,并且这些选出来的猫不被选出来的人认识。首先每户人家必出一只猫或一个人,否则至少有一户人家既要出人又要出猫,这种答案不合法。那么枚举第一户人出人还是出猫,根据他们的认识关系,可以用dfs搜索出哪些人因此也必须出人或出猫。无解的情...

2019-10-22 08:40:17 229

原创 Codeforce 1236 E. Alice and the Unfair Game(思维,dp,并查集)

题目大意:初始有 n 个盒子 和 一个小球,A 和 B 玩一个游戏。游戏过程如下:A将小球放在某一个盒子内,然后 B 来猜小球在哪个盒子,每一次B会询问小球是否在 他猜的数字 aia_iai​ 中。游戏共进行 m 轮,A为了不让B赢,在每一次 B 猜的时候 A可以移动小球到相邻位置,游戏开始前和游戏结束后 A 也可以移动小球一次。设A初始将球放在 xxx 位置,游戏结束后球最后的位置在 yyy...

2019-10-19 10:34:08 269

原创 Codeforce 1236 D. Alice and the Doll(模拟)

题目大意:有一个n∗mn * mn∗m 的网格图,一个机器人初始在(1,1)(1,1)(1,1)位置,初始方向向右,在每一个格子,机器人只能沿当前方向走一格,或向右转向然后再沿新的方向走一格。现在 网格图 上有 kkk 个障碍物,问能否遍历所有没有障碍物的点并且每个点只走一遍。容易发现机器人的走法是固定的,每次先沿一个方向 走到底,然后向右转向,再走到底,如此循环。只需要去模拟这个过程,算出...

2019-10-18 17:00:17 169

原创 Codeforce 1238 E.Keyboard Purchase(思维 + 状压DP)

题目大意:有一个字符串序列是你从键盘上手打下来的,而你的键盘是一个线性的字符排列,只有 m 个按键(意味着只有 m 种字符)。由于你打印的时候手指需要移动,定义移动的花费为 两个按键之间的距离。你有 m!m!m! 种键盘,即键位你可以任意安排,需要使得整个打印的花费最小,输出这个最小值。题解(非常巧妙):首先需要移动的字符串对最多只有 n−1n - 1n−1 对,预处理任意两个字符对的数...

2019-10-17 20:54:51 272

原创 Codeforce 1238 D.AB-string(思维)

题目大意:有一个串只有A,BA,BA,B两种字母,定义一个子串sl,...,srs_l,...,s_rsl​,...,sr​是goodgoodgood当这个子串的每一个字母都被包含在一个长度>2> 2>2回文串中(回文串是这个子串内的回文串),求有多少个goodgoodgood串?直接分析一个子串内有多少个字符包含在回文里是不好分析的,正难则反,考虑用总串个数 - bad串。...

2019-10-17 18:18:11 178

原创 Codeforce 1228 E.Another Filling the Grid(容斥原理)

题目大意:有一个 n∗nn * nn∗n 的矩阵,每个格子可以填 1−k1 - k1−k 这 k 种值,要使得每一行每一列都有 1,填数的方案数是多少。有一个 nlog⁡nn \log nnlogn 的做法,先保证每一列有 1,每一列有 1 的方案数很好求,但每一列都 1 并不能保证每一行有 1。可以用总的方案数减去有些行没有 1 的个数,这个过程可以用容斥原理。设有 iii 行 没有 1...

2019-10-05 16:58:08 282

原创 洛谷 :P5236 【模板】静态仙人掌(圆方树模板 + 仙人掌最短路)

题意很简单,在仙人掌图上求两点的最短路。做法:需要用到圆方树先来看看什么是圆方树:圆方树,就是由仙人掌图转化而来,树上分两种点:圆点和方点,圆点是仙人掌图上的点,方点是由仙人掌的环转化而来。由于仙人掌上的环不相交,圆方树的处理方法是对每一个环(每一个环都是点双连通分量)构建一个点,将这个环上的点接到这个方点上。这里盗一张名画:虚线即原图边,红色的点即为方点。一个显然的结论是任意一个...

2019-10-03 14:37:17 486

空空如也

空空如也

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

TA关注的人

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