自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lleozhang的博客

oier,生而骄傲

  • 博客(43)
  • 收藏
  • 关注

原创 CF939F

好神奇的dp...首先有一个很简单的思想:设dp[i][j]表示目前到了第i分钟,朝上的面被烤了j分钟的情况下所需的最小交换次数那么有转移:dp[i][j]=min(dp[i-1][j],dp[i-1][i-j]+1)这一点很好理解,就是讨论现在向上这面上一分钟的状态:如果上一分钟这一面也朝上,那么就直接继承,如果上一分钟这一面朝下,那么就要翻一次,同时之前朝上的面的被烤的时间就是i-...

2018-10-31 15:53:55 256

原创 CF1015F

玄学字符串dp...题意:给定一个括号序列,求长度为2n的合法的括号序列的个数(要求每个被统计的合法序列中均至少有一个子串为给定的括号序列)题解:这题没有想的那么复杂,就是暴力的一个dp首先我们设状态f[i][j][k][0/1]表示当前放到了第i个括号,前i个括号中左右括号个数差为j,已经放好的括号中长为k的部分能与s相匹配,0/1表示之前是否存在与s能匹配上的一整个子串那么...

2018-10-30 20:35:26 184

原创 CF1065D

如果不喜欢过长代码的看官,请移步其他题解...这题其实思想极其简单:棋盘问题常见的算法都比较暴力,常用的有搜索和状压dp而这道题显然没啥能状压的,所以我们考虑搜索但是仅仅搜索是不够的,因为有极大的可能搜到死...所以我们引入记忆化设状态f[i][j][k][0/1/2]代表目前在点(i,j)处,上一个到达的点(注意是达成要求而非经过)的编号为k,目前的棋子种类为1/2/3时...

2018-10-30 16:35:05 174

原创 noip 2018模拟赛2018.10.29 T2 obelist

又是一道玄学题...题解:看到数据范围,显然是状压dp那么我们来设计一下状态设dp[i]表示目前选择的点集为i所能获得的无环子图个数那么如果要求无环,这还是个有向图,所以我们可以将新的子图按拓扑序分层,然后枚举每一层的状态进行转移所以最浅显的思想就是记录整个点集的状态,同时记录最底层的状态,然后用最底层的状态进行转移,转移时只要求新的层与底层均有连边即可但是这样做时...

2018-10-29 21:08:07 260

原创 bzoj 1495

这是一道...卡了我一个月的树形dp...我真是太弱了...其实仔细想想,这题的核心思路并不是特别复杂,但是的确存在不小的难度作为一个看过全网基本所有题解+标程才弄明白这题到底怎么回事的蒟蒻,我努力把所有东西揉到一起让各位看官一眼看懂...首先我们简化一下题意:给定一棵满二叉树,每个叶节点有一个状态(0,1),任选两个叶节点,如果这两个叶节点状态相同但他们的LCA所管辖的子树中的与...

2018-10-29 20:30:42 154

原创 noip 模拟赛2018.10.28 T2 color

好玄学的组合数递推啊...设状态dp[i][j]表示以当前更新到了第i列,第i列使用了j种颜色的合法的方案数那么,由于题目要求考虑相邻两列的问题,所以我们还需枚举上一列的颜色种类以及两列颜色种类总数,那么可以进行转移:其中g[n][k]表示一列中用k中颜色来涂的不同的方案数,有递推:稍微证明一下组合数递推式:首先,我们枚举的x是相邻这两列的颜色种类之和,也就是种类之...

2018-10-29 16:32:08 194

原创 bzoj 4007

非常好的树形dp首先,有个很显然的状态:记状态f[i][j]表示以i为根节点的子树中选了j个叶节点作战,那么很显然有转移:f[i][j1+j2]=f[i<<1][j1]+f[i<<1|1][j2]所以我们只需爆搜一发状态,然后每次更新即可但是有个问题:当我们搜到最底层的叶节点时,由于他的贡献与祖先节点有关,所以无法直接更新但是我们发现,n的数据范围非常小,而...

2018-10-28 16:00:37 181

原创 bzoj 2190

题意:求题解:这题...数据范围是真小...研究一下这一表达式,发现gcd(i,j)=1表示i,j互质,那么互质肯定能想到欧拉函数,可是欧拉函数要求j<i,那么我们变化一下:显然原矩阵是对称的,所以可以转化一下,变成(注意到后面-1是为了防止(1,1)被重复统计)那么发现答案就是所以事实上,这道题的算法是线性的,那么n可以变得更大一些#include <cst...

2018-10-26 19:45:34 242

原创 bzoj 2186

非常有趣的题题意:求1~N!中有多少个与M!互质的数,T组询问,答案对R取模题解:首先,因为N>M,所以N!>M!,所以答案一定有一部分是φ(M!)接下来做一些分析:引理:若x与p互质,则x+kp与p互质(k∈Z)证明:反证法:假设x+kp与p不互质,则设gcd(x+kp,p)=d(d!=1),那么设p=k1d,x+kp=k2d,于是:x=k2d-k...

2018-10-26 19:14:04 201

原创 bzoj 2005

非常好的题简化一下题意,我们可以发现:(0,0)与(x,y)之间经过的整点的数量等于gcd(x,y)-1!利用这条性质,我们可以列出一个表达式:稍微化简一下,得: 接下来,是最重要的一部分:引理:那么,将x=gcd(i,j)代入,得:再化简一下,得:由于n,m很小,所以预处理出φ,然后暴力枚举计算即可#include <cstdio&...

2018-10-26 16:22:53 192

原创 bzoj 2721

 题解:首先推一发式子:原式:通分,移项:打开,合并:再移项,得:设:那么:代入:化简:因为x是整数,所以x的数量显然为能使取得整数的t的个数,也就是求的约数个数而根据约数个数和公式(设一个数)可以将前n个数质因子分解,然后将质因子的幂次相乘,最后将所有幂次*2+1后乘在一起即可。#include <cstdio&...

2018-10-26 15:42:17 527

原创 bzoj 1951

这道题告诉了我们一个很重要的道理:看到题,先想明白再动手!题意:求对999911659取模的值首先,由于n的数据范围不是很大(至少不是很大),所以可以O()枚举所有约数分别求组合数但是有个问题:根据费马小定理,所以组合数应当对p-1取模!可是p-1并不是一个质数啊所以我们要将p-1质因子分解,发现可以分解成四个质数之积,那么我们用四次卢卡斯定理分别计算出四个结果再用中国剩余...

2018-10-26 14:40:19 252

原创 CF919F

题意:Alice和Bob玩游戏,每人各有8张牌,牌的大小在0~4之间每次操作,先手可以选择自己一张牌和对方一张牌求和后%5,将新的牌替代自己拿出的那张牌,以此类推,直到有一个人手中的牌全部是0,则这个人获胜但选牌时不能选择已经为0的牌进行操作现给定初始状态下两人的手牌以及先后手,求是否存在有人必胜分析:很显然是个博弈问题,对这种问题搜索是非常好用的。我们只需考虑一下设计...

2018-10-25 12:01:56 297

原创 CF1005F

这题不错...首先,不难看到他想让你求出的是最短路树然后,考虑到所有边权均为1,所以可以采用bfs直接生成最短路树至于方案的储存,可以在加边的时候同时记录边的编号,然后对每个点维护一个能转移他的最短路的边的编号的集合,这样总的方案数就是所有的集合大小的乘积然后用dfs在每个集合中选一个元素输出即可#include <cstdio>#include <cma...

2018-10-23 20:50:43 222

原创 CF1019C

好玄学的东西...核心思想:for循环!首先,我们从前向后扫所有的点,如果这个点没被标记成不可用就把这个点标记成已使用,然后把所有与这个点直接相连的点标记成不可用接下来,我们从后向前扫所有的点,如果这个点被标记成已使用就把与这个点所有直接相连的也被标记已使用的点达成不能使用,最后标记成可使用的就是集合中的点证明一下这个算法的正确性:首先,经过第一步操作后,第二个要求一定能够满足...

2018-10-23 20:14:56 163

原创 雅礼 noip2018 day4 T2

好玄学的dp啊....设状态dp[i][j]表示是否存在一条以j为起点,状态为i的路径那么可以枚举j的所有后继节点进行转移,但时间较大,而且比较复杂所以我们利用bitset+meet in the middle进行优化:利用bitset优越的位运算性质,我们可以减少一层循环利用meet in the middle思想,我们可以减小枚举范围算法讲解:我们将d分成d/2和d...

2018-10-23 15:13:12 339

转载 bitset用法详解

参见此博客:https://www.cnblogs.com/magisk/p/8809922.html

2018-10-23 14:19:39 280

原创 CF1029E

一个看起来就不对的贪心居然是正解...但仔细思考一下,这种贪心倒的确找不到反例..贪心思想:每次找出离根节点最远的点,然后由根节点向这个点的父节点连边,一直连到所有点都能被覆盖即可,这样构造出的一定是一个可行的最优解正确性证明(个人YY):主要是要证明这种做法的最优性:首先,由于所有点都要求被覆盖,自然离根节点最远的点也不例外那么,如果想覆盖上离根节点最远的点,只会有两种覆...

2018-10-22 20:24:15 161

原创 雅礼 noip2018 模拟赛 day3 T3

典型树形dp这里,我们应该看到一些基本性质:①:如果这个边不能改(不是没有必要改),我们就不改,因为就算改过去还要改回来,显然不是最优的注意:“不能改”是指边的性质和要求的相同而不包括对边的颜色没有要求的情况!②:如果我们每翻转一条边,就认为将这条边的两个端点度数+1,那么不难看到,最后翻转的所有边构成的路径总数就是度数为奇数点个数的1/2(性质②的证明:一条路径只会对两端...

2018-10-22 20:09:00 468

原创 雅礼 noip2018 模拟赛day3 T2

典型的状压思想设0表示黑球,1表示白球,用一串01序列代表剩下的球的状态,记f[i]表示在i状态下取球的最大期望那么可以利用记忆化搜索更新,每一层枚举可能拿走的球然后向下搜索,同时记忆化即可在状态中删去一个点可以利用位运算实现同时要注意一个问题,就是状态0010和状态010并不是相同的状态,但是如果不做处理在记忆化的过程中很可能把他俩算成相同的状态,所以我们在初始状态最前面放一...

2018-10-22 18:54:52 267

原创 CF 1042F

玄学贪心...题意:给出一棵树,要求将他的所有叶节点分成最少的组,且在每组中的任意两节点之间的距离不大于k解析:显然是个贪心啦...稍微考虑一下贪心思想:我们从下向上合并整棵树,在合并到某个节点时,我们把他以下的所有叶节点到他的距离全处理出来然后排序,设所有距离排序后为d1,d2...dn接下来,我们从大到小枚举每个d,如果满足di+di-1+2<=k,那么说明从1到...

2018-10-22 18:04:15 191

原创 CF508E

贪心题是很有趣的...首先,本题为括号匹配问题,那么可以考虑进行栈模拟然后,我们思考一下如何匹配:虽然题目中仅对右括号的位置提出了区域性要求,但可以发现,对能匹配上的栈顶括号立刻进行匹配一定是一种最优解!为什么?根据括号匹配原则,如果栈顶括号未被匹配,那么其他括号将无法被匹配,那么栈顶括号越长时间不被匹配,栈内括号失配的可能就越大。相反,如果我们对能匹配的栈顶括号立刻进行匹配,不会...

2018-10-22 07:48:43 165

原创 noip 2018雅礼模拟赛day2 T1

非常有趣的dp...记dp[i]表示更新到了i且i不变的最小代价那么可以推知,dp[i]可以由之前的dp[j]来更新,如果这样来更新,一定有i~j之间的所有楼房被修改成了相同的高度且这个高度小于i和j的高度那么我们可以进行转移:其中t为j~i之间楼房被修改成的高度发现要枚举的t其实是一个二次函数的形式,于是对他进行化简得:二次函数求最值需要求对称轴,当时取得最小...

2018-10-21 21:10:53 352

原创 noip 2018 雅礼模拟赛day1 T2

玄学dp...看见第一个条件会非常自然地按y排序,然后原地炸飞...(当然,zwz大佬除外...)因为第一个条件的可优化点非常少,同时卡时间和空间,所以并不是很好。所以我们先按x来排序,设计状态dp[i][1]表示从i向右射出一条光线,dp[i][0]表示从i向左射出一条光线然后考虑转移:我们从前向后枚举每个点,然后再枚举要射向哪个点,这样时间复杂度控制在O(n^2)因...

2018-10-20 12:46:22 279

原创 noip2018 雅礼模拟赛day1 T1

分块...首先我们可以看到,对于任意的模数k,所有的可能答案一定会在所有k的整数倍的前驱处取到证明:假设所有值均小于k,那么我们显然答案是这其中的最大值假设所有值均小于2k,那么我们将这些值分成两部分,小于k的部分中的最大值即为取模k的最大值,而在[k,2k]之间的部分取模k即相当于-k,所以与2k最接近的值即为取模k的最大值,两者取最大即为整体取模k的值那么我们对整个序列进行分块...

2018-10-20 11:21:07 230

原创 CF558E

非常好的一道题,是线段树的常见玩法将字符串转化为1~26个数对区间开一棵线段树,用两个数组分别维护区间中1~26每个数的个数以及一个区间覆盖标记,表示这个区间是否被某一个值覆盖了在每次排序时,首先查出这个区间中1~26每个数出现的次数,然后因为是排过序的,所以相等的数排完序之后一定是连续的一段区间,这样如果升序,我们就对整个区间从小到大进行覆盖,否则从大到小覆盖最后遍历整棵线段树输...

2018-10-17 14:05:13 343

原创 CF 1051F

题意:给定一张n个点,m条边的无向联通图,其中m-n<=20,共q次询问,每次询问求给定两点u,v间的最短路长度第一眼看见这题的时候,以为有什么神奇的全图最短路算法,满心欢喜的去翻了题解,发现就四个字“树上套环”!其实这题的提示很明显:m-n<=20!这说明,如果我们对这个图做一次生成树,那么非树边最多只会有20条!那么,我们在求任意两点间最短路时,可以分类讨论进行:...

2018-10-16 16:47:07 227

原创 bzoj 1002

 表示我这种蒟蒻面对这种递推第一思想显然是打表啊先贴个用来打表的暴力:#include <cstdio>struct node{    int l,r;}p[100005];bool used[100005];int f[100005];int n,cnt,cct;int findf(int x){    if(x==f[x])    {     ...

2018-10-16 16:00:09 104

原创 noip 2018.10.14 模拟赛 砍树

数学问题...根据题意,有:移项,整理,得:记于是那么可以看到,最多只会有2*个取值(显而易见)于是对应的,可能产生效果的d也只会有个,于是我们把他们找出来,扔进一个数组里然后排序,去重,获得的就是所有可能的取值接下来,我们枚举所有取值,然后计算出左边的表达式,那么显然,我们是可以求出最大的d的,那么我们只需要求最大的这个d比枚举到的取值要大即可...

2018-10-15 20:46:38 332

原创 2018.10.14 noip模拟赛 超级树

题意:给定一个深度为k的满二叉树,将他的所有节点向这个点的所有祖宗连边,求新生成的这样一棵树中经过一个点最多的路径数目怎么搞?显然是个递推嘛...记状态f[i][j]代表二叉树的深度为i,从中选出j条互不相交的路径的方案数(即这些路径不会经过同一个点超过一次)然后呢?我们会发现,由i变成i+1时,超级树的变化就相当于将两棵深度为i的超级树连到一个根上,然后将所有点与根连边即可...

2018-10-15 19:12:03 317

原创 noip 模拟赛 T3

问:如何快速求出等差数列异或和?玄学题...对于异或运算,我们可以分开考虑每一位是1还是0,这样会好做一些于是我们发现,每一位是一还是0的判别式如下:设读入的数为x,y,z,等差数列共n项第i位的值=∑[x+kz/2^i]mod 2 ,k∈[0,n-1]然后怎么求?令x=b,k=x,z=a,2^i=c于是原式=∑[(ax+b)/c]mod 2 ,x∈[0,n-1]...

2018-10-15 18:33:14 224

原创 noip 模拟赛 星系旅行题解

一个利用欧拉回路的试题...根据题意要求,我们分析一下可以看出:一条边拆成两条边,那么原题等价于删去两条边后原图中仍然存在一条欧拉回路同时图中存在自环分析:①:删去一个自环和任意一条其他边②:删去两条非自环的边我们分别来讨论这两种情况,首先讨论一下②根据欧拉回路的性质以及题意,原图中所有点的度数一定是偶数,再考虑到没有重边,所以一条边连接的两点会分别获得2的度那么如...

2018-10-15 16:52:56 188

原创 bzoj 1023

我说这是我们的noip互测题你信吗...首先介绍一下仙人掌(略,参见题面)然后我们思考一下怎么做:首先,如果原图是一棵树,那么做法是很显然的(树上最长链嘛)但是,图是一个仙人掌,所以树上最长链的做法有bug所以我们考虑:是否能将树上的做法移接到仙人掌上即可怎么移接?我们看到,根据仙人掌的性质,如果我们对这个仙人掌搜出一棵dfs树,那么不在环上的边一定是树边如果换一种...

2018-10-08 19:42:03 336

原创 bzoj 1856

做这题之前先看道高考真题(好像是真题,我记不清了)例:已知一个由n个0和n个1排列而成的数列,要求对于任意k∈N*且k∈[1,2n],在前k个数中1的个数不少于0的个数,求当n=4时这样的数列的数量。解:14个(策略:暴力枚举,时间复杂度O(2^n))所以本题其实就是对高考真题的一个一般化推广,首先扩大了n的范围,而且0的个数和1的个数可能不等了,所以这道题并不简单我们通过打表可以...

2018-10-05 09:13:50 227

原创 bzoj 2150

蜜汁互测题...有一个思路是显而易见的:爆搜!期望得分30#include <cstdio>#include <cmath>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>#include <q...

2018-10-05 08:48:43 132

原创 bzoj 1415

莫名互测题...这题一看就是期望dp,可是不会转移,所以考试写50分暴力走人...#include <cstdio>#include <cmath>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>#inc...

2018-10-05 08:37:49 110

原创 noip 模拟赛之xcj的妹子

【题目背景】众所周知,xcj是个万人迷,拥有迷妹无数。眼红的jdr(太可爱啦!!!)和wly决定建立“仇帅者联盟”,打倒xcj以解除长期以来xcj对妹子的垄断。于是他们制定了一个作战计划...【题目描述】将实验的校园看成是一个n*m的地图,左上角为 (1,1) ,jdr和wly从起点 (1,1) 出发(只能向下或向右走)分别走各自的最短路到达xcj的活动地点 (n,m) 进行刺杀,由于...

2018-10-04 09:24:38 313

原创 bzoj 1812

什么鬼noip互测题...这题很显然是树形dp,但设计状态以及转移是个难点记状态f[i][j][k]表示以i为根节点的子树,离i最近的祖宗节点编号为j放了虫洞(伐木场?),i的子树内放了k个伐木场的方案数设to为i的某个子节点,当i不放伐木场时,有:dp[i][j][k]=min(dp[to][j][k-c]+dp[i][j][c])当i放伐木场时,有:dp[i][i][k...

2018-10-04 09:10:11 211

原创 裴蜀定理(贝祖定理) 证明与应用

定理:对于给定的正整数a,b,方程有解的充要条件为c是gcd(a,b)的整数倍证明:充分性证明:设gcd(a,b)=d,于是设,其中k1,k2互质那么原等式等价于,即,其中k1,k2互质那么这个方程等价于模线性方程,由拓展gcd知,该方程一定有解那么该方程的一组解即为原方程的解必要性证明:采用反证法,假设c不是gcd(a,b)的倍数,于是:设那么:两...

2018-10-04 08:32:00 19923 1

原创 bzoj 4715

其实我并没有见过原题,只是因为...这被改编成了互测题...题目中提到了一个序列,这个序列是很重要的,否则这个问题好像是没有合理的时间复杂度解法的但正因为有了这个序列,这个问题的时间复杂度才让人能够接受序列的特性:逆序对!根据题意,我们发现一个图上所有的连边一定来源于这个序列里的逆序对!那么,如果要求一个点集内部没有连边,内部是不能有逆序对的!那么这个条件等价于求出这个序列...

2018-10-02 10:56:20 149

空空如也

空空如也

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

TA关注的人

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