03 2018 档案
摘要:【传送门:BZOJ4034】 简要题意: 给出一棵有n个有权节点的树且根节点为1,有m个操作,3种操作: 1 x a将x点的权值增加a 2 x a将x的子树的所有节点增加a 3 x求出x到根节点的路径上的所有点的权值和 题解: 裸树链剖分,只要在处理轻重链的时候记录x子树的最小的编号和最大的编号即可
阅读全文
摘要:【传送门:BZOJ3438】 简要题意: 有n个种子,有两种土地A,B,第i个种子种在A土地的价值为a[i],B土地的价值为b[i] 共有m种组合关系,如果第i种组合关系的所有种子都种在A土地则获得c1[i]的价值,都种在B土地则获得c2[i]的价值 求出能得到的最大价值 题解: 最小割 st连向种
阅读全文
摘要:【传送门:BZOJ1295】 简要题意: 给出一个n*m的矩阵,有障碍物,(a,b)和(c,d)存在距离当且仅当两个点能互相到达,且距离为欧几里德距离 可以移走t个障碍物,求出距离最大的两个点的距离 题解: n,m这么这么小 直接O(n2m2),跑最短路,水题 参考代码:
阅读全文
摘要:【传送门:BZOJ1618】 简要题意: 有n个商店,要买h磅的食物 每个商店给出p[i],c[i],表示第i个商店每一次买就会使用c[i]的费用,并得到p[i]磅食物 求出买h磅或以上的最小费用 题解: DP(完全背包) 设f[i]为买i磅食物的最小费用,直接做就行了,水题 参考代码:
阅读全文
摘要:【传送门:BZOJ2843】 简要题意: 给出n个点以及它们的权值,有m个操作,4种操作: 1.询问从x到y的路径上的权值和,如果不连通则输出impossible 2.连接x和y,如果本来就联通则输出no,否则输出yes 3.修改第x个点的权值,改为c 题解: LCT,只要在每个点保存它子树的权值和
阅读全文
摘要:【传送门:BZOJ3282】 简要题意: 给出n个点以及它们的权值,有m个操作,4种操作: 1.询问从x到y的路径上的xor和 2.连接x和y,如果本来就联通则不作操作 3.使x和y不连通,如果本来就不连通则不作操作 4.修改第x个点的权值,改为c 题解: LCT,只要在每个点保存它子树的异或和就行
阅读全文
摘要:【传送门:BZOJ3275】 简要题意: 给出n个数,要求选出一部分数,这一部分数两两之间(a,b)必须不能同时满足下面的要求: 1.a2+b2=c2(c为正整数) 2.gcd(a,b)=1 求出选出的数的最大和 题解: 与BZOJ3158思路相同 不过价值为每个数 参考代码:
阅读全文
摘要:【传送门:BZOJ3158】 简要题意: 给出n个机器,每个机器有a[i]基础值和b[i]价值 选出一部分机器使得这些机器里面两两至少满足以下两种条件之一: 1.a[i]2+a[j]2!=T2(T为正整数) 2.gcd(a[i],a[j])>1 求出能达到要求的最大价值 题解: 神最小割 要求一个最
阅读全文
摘要:【传送门:BZOJ1045&BZOJ1465&BZOJ3293】 简要题意: 给出n个数,每个数每次可以-1使得左边或者右边的数+1,代价为1,求出使得这n个数相等的最小代价 题解: %%%hzwer 参考代码:
阅读全文
摘要:【传送门:BZOJ4318】 简要题意: 给出n个位置,每个位置可以有a[i]的概率会变成1,1-a[i]的概率为0,最后会变成一个长度为n的01串,而每个01串中,连续x个1会带来x3的价值(这x个1不能被其他连续的1所覆盖),求出期望分数 题解: 期望DP 太神了。。 首先假设当前有一个串,它的
阅读全文
摘要:【传送门:BZOJ1391】 简要题意: 有n个工作,m种机器,每种机器可以租或买来,给出租和买的费用,每个工作有若干个工序,每个工序需要用某种机器完成,完成工作可以获得利润 求出完成n个工作的最大利润 题解: 最小割例题 st连向每一个工作,流量为利润,每个工作连向所有工序所使用的机器,流量为租用
阅读全文
摘要:【传送门:BZOJ1570】 简要题意: 给出n,m,t,表示有n个机场,m条单向航线,t个人,每条航线给出起点和终点,以及每天最多售票数 然后要求t个人从1到达n,每条航线耗费一天的时间,1号点为第一天 求出最后一个人到达n的最少天数 题解: 网络流,二分 二分天数,然后将每个机场拆成天数+1的点
阅读全文
摘要:【传送门:BZOJ2243】 简要题意: 给出一棵无根树,每个节点有颜色,有两种操作: 1.Q a b求出a到b的路径上的颜色段数 2.C a b c将a到b路径上的所有点都变成c的颜色 题解: 树链剖分,很裸 每个区间记录左端点的颜色,右端点的颜色,区间的颜色段数 合并维护区间时,如果左子区间的右
阅读全文
摘要:【传送门:BZOJ1412】 简要题意: 给出一个矩阵,0表示空地,1表示狼,2表示羊,要求在格子之间装栅栏使得狼和羊不在一个块里 求出最少的栅栏 题解: 最小割 st连向狼,流量为无限,羊连向ed,流量为无限 每只狼和空地连向相邻的空地和羊,流量为1 然后跑最大流就好了 参考代码:
阅读全文
摘要:【传送门:BZOJ3504】 简要题意: 给出n个点,和若干条边,危边只能走两次,其他边能走无限次 A想要在a1和a2之间往返an次,B想要在b1和b2之间往返bn次 如果A和B都能满足的话,输出Yes,否则输出No 题解: 网络流 一开始想着直接建边,然后st连向a1和b1流量为2*an,2*bn
阅读全文
摘要:【传送门:BZOJ4419】 简要题意: 有n个人,m种操作 1.!x表示x发了一条朋友圈,所有x的朋友都可以看到 2.+ x y表示x和y成为了朋友 3.- x y表示x和y解除了朋友关系 注意,x和y是朋友,y和z是朋友,x和z不一定是朋友 最后求出每个人能看到多少条信息 题解: 用set来保存
阅读全文
摘要:【传送门:BZOJ2079】 简要题意: 给出一个无向图,每个点可以成为两种状态,也可以保持原状 求是否能使得每个点都与两个状态相邻(包括自身) 题解: 直接搞,实际上就是找无边相连的点 因为如果一个连通块的大小为1,显然不可能使得每个点都与两个状态相邻 然后,其他的连通块,只需要找出它的任意一棵生
阅读全文
摘要:【传送门:BZOJ4813】 简要题意: 给出一棵树,从根节点出发,走n步,求最多能经过多少个点(重复经过不算) 题解: 贪心 本来想着树形DP,太麻烦了,懒得码 首先我们把最长链留到最后走,这样子我们就可以一次性将最长链走完了,那么最长链的每条边的代价就是1 而其它边的代价就为2(因为要往回走),
阅读全文
摘要:【传送门:BZOJ1822】 简要题意: 有n个女巫,m个精灵,k棵树,每个女巫每次释放魔法可以消灭一个精灵,施法间隔(CD)为R,可以在第0秒的时候直接施法 然而每个女巫只能消灭与自己距离<=施法距离,并且视线没有被任何一棵树遮挡 每棵树给出它的半径,只要一个女巫与精灵的连线与这棵树所形成的圆有交
阅读全文
摘要:【传送门:BZOJ2875】 简要题意: 给出m,a,c,x[0],并且x数组满足x[i]=(a*x[i-1]+c)%m(i≠0) 给出n,g,求出x[n]%g 题解: 显然用矩乘做,不过用矩乘时,要加long long,而且要用快速乘法来处理两个数之间的乘法,不然会爆long long 参考代码:
阅读全文
摘要:【传送门:BZOJ2427】 简要题意: 给出n个软件,共有m的空间,每个软件只能安装一次,每个软件安装后占用w[i]的空间,得到v[i]的价值 有些软件至多有一个它们的父软件,相当于父软件被子软件依赖,只有当父软件被安装,才能安装当前的软件 求出最大价值 题解: 如果x为y的父软件,则x连向y 很
阅读全文
摘要:【传送门:BZOJ1666】 简要题意: 给出一个数,如果为奇数,则*3+1,否则/2,直到这个数为1 求数字变化的次数 题解: 纯模拟,大水题 参考代码:
阅读全文
摘要:【传送门:BZOJ3212】 简要题意: 给出一段序列,有两种操作: 1.Q l r求出l到r的和 2.C l r c将l到r的值加c 题解: 线段树水题 区间修改+区间询问,加个标记处理 注意加long long 参考代码:
阅读全文
摘要:【传送门:BZOJ3511】 简要题意: 给出n个点,m条边,每个点有A和B两种形态,一开始1为A,n为B 给出VA[i]和VB[i],表示第i个点选择A和B形态的价值 每条边给出x,y,EA,EB,EC,表示如果x和y都为A,则获得EA价值,如果都为B则获得EB价值,否则会得到EC的费用(就是负价
阅读全文
摘要:【传送门:BZOJ3036】 简要题意: 给出一个有向无环图,并且保证每条路径的起点为1,终点为n,且每条边都有权值 如果从一个点能到达k个点,那么它将会有1/k的概率走其中一个点 求出从起点到终点的期望 题解: 期望DP,DFS逆推 参考代码:
阅读全文
摘要:【传送门:BZOJ1143】 简要题意: 给出一个有向无环图,选出最多的点,使得这些点不能互相到达 题解: 最长反链=最小链覆盖=最大独立集,然后二分图匹配 如果x能到达y,则将x连向y的另一个集合 参考代码:
阅读全文
摘要:【传送门:BZOJ2140】 简要题意: 给出n对夫妻和他们的名字,和m对曾经互相喜欢的男女 如果第i对夫妻发生争吵,那么这对夫妻会各自找自己喜欢的男女求安慰,而被找到的男女的另一半会因为嫉妒,也去找自己喜欢的男女求安慰,如此循环 如果第i对夫妻发生争吵后,仍能组成n对男女,那么这段婚姻是不安全的,
阅读全文
摘要:【传送门:BZOJ2150】 简要题意: 给出一个矩阵,矩阵上的字符有两种,一种是'x',表示山洞(不可走),一种是'.',表示城镇 可以在城镇处放士兵,士兵经过的每个城镇都会被占领,士兵只能向下走,而且行走的方式和马相似,不过马走的是1*2,士兵走的是R*C,士兵不能经过一个被占领的城镇 求出最少
阅读全文
摘要:【传送门:BZOJ2002】 简要题意: 给出n个点,一个人站在i点一开始可以飞到i+a[i]的地方,一旦飞出了n-1的位置就算作弹飞了 有m种操作,其中一种可以改变a[i],另一种是求出从i点开始飞多少次就会被弹飞 题解: LCT例题 因为原题中的位置是0到n-1,所以我们把位置弄成1到n,好处理
阅读全文
摘要:【传送门:BZOJ2049】 简要题意: 给出n个点,有m种操作: 1.Connect x y将x点和y点连通 2.Destroy x y使得x点和y点不连通 3.Query x y询问x和y是否连通 题解: LCT的模板题,动态树例题 LCT浅谈 by师兄 参考代码:
阅读全文
摘要:【传送门:BZOJ1832】 简要题意: 给出有n个点的图,n-1条无向边,保证任意两点之间能互相到达,每条边的权值为1,给出m个询问,每个询问输入x,y,z,求出一个点使得三个点到这个点的距离和最短,输出这个点的编号和最短距离和 题解: 同BZOJ1787,不过空间要开小一点 参考代码:
阅读全文
摘要:【传送门:BZOJ4500】 简要题意: 有一个n*m的矩阵,初始每个格子的权值都为0,可以对矩阵执行两种操作: 1.选择一行,该行每个格子的权值加1或减1 2.选择一列,该列每个格子的权值加1或减1 有k个约束条件,x,y,c表示第x行第y列的格子为c 如果有满足情况的矩阵就输出Yes,否则输出N
阅读全文
摘要:【传送门:BZOJ4590】 简要题意: 有l秒时间,AC了k道题,给出每秒写的代码行数(行数>0表示写,<0表示删除,如果剩下的行数不够删,则为0),假设行数>=n时能够提交AC一道题,求出n的最小值和最大值 题解: 两个二分找最大值最小值,判断的时候只要>=mid就提交 然后对于不存在的情况,只
阅读全文
摘要:【传送门:BZOJ2539】 简要题意: 给出n个男生的坐标和名字,n个女生的坐标和名字,给出有些男生和女生交往的缘分值,没有给出的男女之间的缘分值为1,要求只有当一对男女之间的连线没有经过任意一个人而且欧几里得距离不超过K的时候,这对男女就可以交往 求出最大的缘分值总和 题解: 首先用字典树存名字
阅读全文
摘要:【传送门:BZOJ2929】 简要题意: 给出n个洞穴,起点为1,终点为n,并给出一个有向无环图,且保证每条路径的终点都是n 起点和终点所连接的边只能走一次,其他的边能走无限次,求最多能从起点派多少人到达终点 题解: 裸网络流,直接将走的次数转化为流量就ok了 参考代码:
阅读全文
摘要:【传送门:BZOJ1452】 简要题意: 给出一个n*m的矩阵,共有两种操作: 1 x y c将第x行第y列的数改为c 2 x1 x2 y1 y2 c求出第x1行第y1列到第x2行第y2列值为c的格子数 题解: 第一次写二维树状数组,和一维差不多 a[x][y][c]表示第1行第1列到第x行第y列值
阅读全文
摘要:【传送门:BZOJ4029】 简要题意: 给出一个定义:每个数都有一个荒谬度,荒谬度是这样计算的: 1.先将这个数末尾的0去掉 2.然后设这个数当前的位数为a,如果当前末尾为5,则荒谬度为2a-1,如果不是,则为2a 给出l,r,求出l到r中的数字中荒谬度最小的数字 题解: 纯模拟,细节大水题(以后
阅读全文
摘要:【传送门:BZOJ2132】 简要题意: 给出一个n*m的矩阵,每个格子可以选择成为2种状态,分别获得A[i][j]和B[i][j]的收益,并且能额外获得C[i][j]*k(k为相邻的与(i,j)不同状态的格子数)的收益,求出怎样确定每个格子的状态使得总收益最大 题解: 最小割中黑白染色方法运用例题
阅读全文
摘要:【传送门:BZOJ3714】 简要题意: 有n个杯子,有些杯子下面有一个球,可以花费c[i][j],得到第i个杯子到第j个杯子的球的总数的奇偶性 求出知道每个杯子是否有球的最小花费 题解: 迷之最小生成树(花样玩法) 设sum[i]为1到i的球数的和 如果我们要得到i到j的奇偶性,就相当于得到了su
阅读全文
摘要:【传送门:BZOJ2663】 简要题意: 给出n个人的坐标和n个宝石的坐标,坐标之间的距离为欧几里德距离,只有当一个人与一个宝石的距离<R时,这个人才能控制自己的身躯 求出满足恰好k个人能够控制自己的身躯的最小的R值和最大的R值(指的是最坏情况下,R的最大值,如果R为正无穷,则输出+INF) 题解:
阅读全文
摘要:【传送门:BZOJ1260】 简要题意: 给出一块长为n的木板,一开始每个位置无颜色,可以对木板进行涂色,对于一个位置,后涂的颜色会覆盖前涂的颜色,给出目标木板,求出最少涂色多少次能够得到目标木板 题解: 区间DP,因为n实在是太小了 f[i][j]表示i到j染成目标木板的i到j的最少涂色次数 转移
阅读全文
摘要:【传送门:BZOJ3252】 简要题意: 给出一棵树,树上的每个节点都有权值,现在要遍历这棵树的k条链,权值为链上的节点权值和,每个节点的权值只有在第一次被遍历的时候才能用,也就是每个节点遍历两遍只能得到一次的权值,求出最大能得到的权值和 题解: 哇塞,直接就给一棵树,而且输入还直接告诉你两个点的父
阅读全文
摘要:【传送门:BZOJ1085】 简要题意: 有一个5*5的棋盘,棋盘上有12个白棋子,12个黑棋子,和一个空格,每只棋子只能按照马走日的规则移动,求出最少步数达到以下状态 题解: DFS+A* DFS很容易做,不过时间复杂度太高 所以用A*来优化时间 A*的好处预判当前递归到结束得到的值,从而判断是否
阅读全文
摘要:【传送门:BZOJ1042】 简要题意: 硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值的东西。请问每次有多少种付款方法 题解: 背包+容斥定理 f[i]表示不限制个数,放满值为i的方案数 因为硬币的值有重复,所以用到容斥
阅读全文
摘要:【传送门:BZOJ1089】 简要题意: 求出深度为d的严格n元树的个数 题解: %%%Hanks_o f[i]表示深度小于等于i的严格n元树。 那么f[i]怎么用f[i-1]表示呢。 对于任意一个深度为i的严格n元树。 那么它的根一定有n个儿子。 这样我们就可以把它拆成一个根和n棵深度小于等于i-
阅读全文
摘要:【传送门:BZOJ1060】 简要题意: 给出一棵树和根节点的编号,有一种道具可以使得一条边的权值+1,请问最少改变多少次使得根到所有叶子节点的权值和相等 题解: 首先我们可以确定达到根到所有叶子节点的权值和相等时,这个权值和一定是最大的根到叶子节点的链的权值和 所以我们用树形DP来维护f[i],f
阅读全文
摘要:【传送门:BZOJ2697】 简要题意: 有k种情况,n个格子,第i个格子选择第j种情况的价值是出现第j种情况的上一次位置到i的距离*C[i],第一次出现价值为0,求出最大价值 题解: 贪心 首先加入在1和3和5选择第j种情况的价值,和在1和5选择第j种情况的价值是一样的 所以我们要让C[i]尽量大
阅读全文
摘要:【传送门:BZOJ2464】 简要题意: 给出一个n*m的字符矩阵,给出起点和终点,每次移动只能上下左右移动,如果走到不同的字符需要1的花费,同种字符不需要花费 求出从起点到终点的最少花费 题解: 最短路水题(日常刷水,有益身心健康) 参考代码:
阅读全文
摘要:【传送门:BZOJ1430】 简要题意: 给出n个点,求组成n-1条边且n个点为一棵树的情况数 题解: prufer数列例题 具体请膜 根据prufer数列,可以得到n^(n-2)棵树,而每棵树的建树方法为(n-1)!,所以ans=n^(n-2)*(n-1)! 参考代码:
阅读全文
摘要:【传送门:BZOJ3675】 简要题意: 一开始给出n个数的一段序列,可以分割k次,每次只能分割一段序列,一段序列被分割后就变成两个序列,每次分割的价值为分割的位置左边的数的和乘右边的数的和 求出最大价值 题解: DP+斜率优化 首先来设f[i][k]为前i个数,分割k次得到的最大价值 接下来。。。
阅读全文
摘要:【传送门:BZOJ2453】 简要题意: 有n个数,有m种操作: 1.Q l r求出l到r中共有多少种不同的数 2.R x c将第x个数改为c 题解: 同BZOJ2120 参考代码:
阅读全文
摘要:【传送门:BZOJ2120】 简要题意: 有n个数,有m种操作: 1.Q l r求出l到r中共有多少种不同的数 2.R x c将第x个数改为c 题解: 带修莫队例题 具体请膜大米饼 参考代码:
阅读全文
摘要:【传送门:BZOJ4547】 简要题意: 给有一个大小为n的可重集S,每次操作可以加入一个数a+b(a,b均属于S),求k次操作后它可获得的S的和的最大值。(数据保证这个值为非负数) 题解: 我们先来看看,因为我们要得到最大的S,所以每次我们都要使得a+b最大 首先排除一开始得到的a,b为负数的情况
阅读全文
摘要:【传送门:BZOJ4810】 简要题意: 给出n个数,给出m种询问: 1 l r x判断是否在区间l到r中能选出两个数的差为x 2 l r x判断是否在区间l到r中能选出两个数的和为x 3 l r x判断是否在区间l到r中能选出两个数的乘积为x 其中选出的两个数可以相等 题解: 肯定得离线 用莫队吧
阅读全文
摘要:【传送门:BZOJ3238】 简要题意: 给出一个长度为n的字符串,设Ti为以第i个字符为开头的后缀,lcp(x,y)为x字符串和y字符串的最长公共前缀 求 题解: 后缀数组吧? 先打个板子 显然可以先把Σl
阅读全文
摘要:【传送门:BZOJ4551】 简要题意: 给出一棵树,根节点为1,一开始根节点打了标记,给出q个操作,有两种操作: 第一种输入Q x,求出离x最近的打了标记的祖先 第二种输入C x,将x点打标记 题解: 树链剖分水题 首先因为重链上的点的新编号是连续的,所以当我们求离x最近的打了标记的祖先时,就找x
阅读全文
摘要:【传送门:BZOJ4195】 简要题意: 有T组数据,每组数据有n个约束条件i,j,e,如果e=1,说明a[i]=a[j],如果e=1,说明a[i]!=a[j] 如果这组数据的约束条件有矛盾,则输出NO,不然输出YES 题解: 肯定要先离散化,不然i,j太大了 然后先把所有相等的条件进行,用并查集维
阅读全文
摘要:【传送门:BZOJ2753】 简要题意: 有n个景点,有m条边,每条边有长度,每个景点有一定的高度,i能走向j当且仅当i与j之间有边,而且i的高度大于等于j的高度,求从1出发,在遍历最多景点数的情况下,求出景点数和最短路径长度 题解: 开始还以为直接宽搜过的水题 结果。。 咳咳,讲题解讲题解 首先用
阅读全文
摘要:【传送门:BZOJ2895】 简要题意: 在一个篮球联赛里,有n支球队,球队的支出是和他们的胜负场次有关系的,具体来说,第i支球队的赛季总支出是Ci*x^2+Di*y^2,Di<=Ci。(赢得多,给球员的奖金就多嘛),其中x,y分别表示这只球队本赛季的胜负场次。现在赛季进行到了一半,每只球队分别取得
阅读全文
摘要:【传送门:BZOJ1449】 简要题意: 在一个篮球联赛里,有n支球队,球队的支出是和他们的胜负场次有关系的,具体来说,第i支球队的赛季总支出是Ci*x^2+Di*y^2,Di<=Ci。(赢得多,给球员的奖金就多嘛),其中x,y分别表示这只球队本赛季的胜负场次。现在赛季进行到了一半,每只球队分别取得
阅读全文
摘要:【传送门:BZOJ5029&BZOJ5168】 简要题意: 给出m段区间l[i],r[i],表示l[i]到r[i]的数全部变成i,求出最后有多少种不同的数 题解: 线段树+离散化 这是一道经典例题 先离散化l和r,注意如果离散的时候,两个值相差大于1,就要新加一个值 然后线段树维护区间颜色就行了 参
阅读全文
摘要:【传送门:BZOJ5105】 简要题意: 给出a,b,c,求a,b,c的最小公倍数 题解: 直接搞(最近刷水题有点心态爆炸) 参考代码:
阅读全文
摘要:【传送门:BZOJ5106】 简要题意: 给出n棵树,初始高度为h[i],每棵树每个月长高a[i] 现有一个客户,需要至少s长的总木材,而且每次截取的木材必须是一整颗树而且高度大于等于L 求出最少的月份满足客户要求 题解: 直接搞 二分月份,然后判断 参考代码:
阅读全文
摘要:【传送门:BZOJ5204】 简要题意: 有n个选手,每个选手会选择一道题投票,求出投票最多的题目个数和这些题目的编号,如果所有题目的投票数相同,则输出-1 题解: 直接搞 离散化,然后判断就可以了 参考代码:
阅读全文
摘要:【传送门:BZOJ2426】 简要题意: 有一个旧发电厂,每年需耗费h[0]的租费,有m个矿场,每个矿场每年产出a[i]吨煤,而每个矿场运煤到旧发电厂的费用为每吨c[0][j],现在要新建一个新发电厂,这个新发电厂有n个预备选址,n个预备选址的每年的租费为h[i],每个矿场运煤到每个预备选址的费用为
阅读全文
摘要:【传送门:BZOJ1499】 简要题意: 有一个字符矩阵,'.'表示能走,'x'表示不能走,给出起点的坐标,起点有一座钢琴,每单位时间可以移动一格,共有k个时间段,然后再给出每个时间段起始时间和结束时间,以及当前时间段能够移动的方向。而在某个时间,可以控制钢琴不动,钢琴不能走到'x'而且不能走出矩阵
阅读全文
摘要:【传送门:BZOJ1196】 简要题意: 给出n个点,m-1条边,还有一个约束条件k,每条边可以是一级也可以是二级,一级或二级都需要费用,而一级的费用更高,选出n-1条边将n个点连起来,并且n-1条边中要有不少于k条一级边,求出能满足要求的图的最大边的最小值 题解: 二分+最小生成树判断 先二分最小
阅读全文
摘要:【传送门:BZOJ3038】 简要题意: 给出一个序列,对这些序列进行两种操作: 1 x y求出x到y的和 2 x y将x到y的数全部开方(向下取整) 题解: 同BZOJ3211 参考代码:
阅读全文
摘要:【传送门:BZOJ3211】 简要题意: 给出一个序列,对这些序列进行两种操作: 1 x y求出x到y的和 2 x y将x到y的数全部开方(向下取整) 题解: 线段树+面向数据编程 线段树显然不可以整体开方,所以必须要一个一个开,一般来说是超时的 但是因为每个数不超过109,所以每个数最多只会开5次
阅读全文
摘要:【传送门:BZOJ1059】 简要题意: 给出一个01矩阵,相邻的行或者列可以交换,请问是否能通过交换使得从左上角到右下角都为1 题解: 二分图匹配 如果(i,j)为1,那么i向j连边,只要有独立的行与列相匹配,那么这个矩阵就可以通过交换使得从左上角到右下角都为1 参考代码:
阅读全文
摘要:【传送门:BZOJ3236】 简要题意: 给出一个n个数的序列,序列中的数范围为1到n,给出m个操作,每个操作输入l,r,a,b,输出l到r中权值为a到b的数的个数和l到r中权值为a到b的数的种类 题解: BZOJ3809的添加版,其实差不多 只是在BZOJ3809的做法上多加一个求个数和的数组就可
阅读全文
摘要:【传送门:BZOJ3809】 简要题意: 给出一个n个数的序列,序列中的数范围为1到n,给出m个操作,每个操作输入l,r,a,b,输出l到r中权值为a到b的数的种类 题解: 肯定不能在线求,离线就用莫队 一开始想法是用树状数组维护权值总类,结果T了 旁边的lxj大佬D了我,说:这道题卡了树状数组,因
阅读全文
摘要:【传送门:BZOJ2190】 简要题意: 给出一个有n*n个点的图,求出从左下角的点能够无障碍连接的点数 题解: 就稍微想了一下下 首先无障碍说明构成的直线上没有其他点,同时也说明当前被连接的点的纵距离/横距离为最简分数(可以用什么相似三角形之类的证明一下啦) 然后这道题就转化成求1到n-1中不同的
阅读全文
摘要:【传送门:BZOJ4514】 简要题意: 给出n种数a[i]和每种数的个数b[i],再给出c[i](1<=i<=n),如果a[i]和a[j]能配对当且仅当a[i]%a[j]==0&&a[i]/a[j]为质数,并且i和j配对的价值为c[i]*c[j],要求在总价值不小于0的情况下,求出最大配对数 题解
阅读全文
摘要:【传送门:BZOJ2748】 简要题意: 给出初始音量和能承受的最大音量,共有n首歌,每首歌可以增加或减少c[i]的音量,求出n首歌后的最大音量 题解: DP水题 设f[i][j]为第i首歌时能否达到j的音量,然后。。这么水就不用解释了吧 参考代码:
阅读全文
摘要:【传送门:BZOJ2431】 简要题意: 求出一个有n个1到n的自然数的数列中有k个逆序对数的数列数 题解: DP 设f[i][j]为前i个数有j个逆序对数的数列数 因为插入前i-1个数的时候方案已经得出了,我们需要插入第i个数获得新的一些序列。因为i比前面任何一个数都要大,所以插在第几位,就会比后
阅读全文
摘要:【传送门:BZOJ3289】 简要题意: 给出n个数,有m个询问,每个询问输入l,r,求出l到r中的所有数通过与相邻数交换变为上升序列的交换次数 题解: 一开始想用在线算法做 想不出来就用离线了 就想到用莫队 然后对于操作的继承,发现: ①在一列数的后面添加一个数,逆序对数会增加数列中比它大的数的个
阅读全文
摘要:【传送门:BZOJ1103】 简要题意: 给出一棵树,树上的根节点为1,一开始所有的边的边权都为1,给出两种操作: 1.M x求出x点到根节点的边权和 2.A x y表示x到y的这条边的边权变为0 题解: 树链剖分裸题 把题意简要提取之后就变成裸题了。。 没什么好讲 参考代码:
阅读全文
摘要:【传送门:BZOJ3993】 简要题意: 给出n个机器人,防御值为A[i],有m个武器,每个武器每秒会有B[i]的伤害,武器能打到一些机器人,求出最小的时间消灭所有机器人 题解: 二分+网络流 二分时间(假设为ans),然后st连向武器i,流量为B[i]*ans,如果武器能打到机器人,则武器连向机器
阅读全文
摘要:【传送门:BZOJ3155】 简要题意: 给出一个序列a[i],s[i]表示a[1]到a[i]的和,ss[i]表示s[1]到s[i]的和,对于这个序列有两种操作: 1.Query x,输出ss[x] 2.Modify x d,将a[x]改为d 题解: 本来想用树状数组,结果写炸了 还是老老实实写线段
阅读全文
摘要:【传送门:BZOJ1458】 简要题意: 给出一个n*m的矩阵,矩阵上的点可以放置至多1个士兵,矩阵上有些点是不能放士兵的,给出每一行的约束条件L[i]表示第i行至少要有L[i]个士兵,和每一列的约束条件C[i],求出最少放置多少个士兵使得满足所有约束条件 题解: 最小割 将L[i]和C[i]全部加
阅读全文
摘要:【传送门:BZOJ2429】 简要题意: 给出n只猴子以及n只猴子的跳跃距离,给出m棵树以及m棵树的坐标,每只猴子只能跳向与自己所在的树的欧几里得距离<=自己的跳跃距离的树,求出有多少只猴子能够通过跳跃到达所有的树 题解: 最小生成树有个定义就是最小生成树中的最大边一定最小,所以用最小生成树来做 将
阅读全文
摘要:【传送门:BZOJ3676】 简要题意: 给出一棵树,树上的边有权值(可正可负),对这棵树有5种操作: 1.SUM x y求出x点到y点所经过的边权和 2.MAX x y求出x点到y点所经过的边的最大边权 3.MIN x y求出x点到y点所经过的边的最小边权 4.C x y将输入的第x条边的边权改为
阅读全文