02 2021 档案
摘要:枚举(前缀和/差分、尺取、状压)、贪心 邓丝雨 \(2021.1.11\) \(zhanglichen\ 2021.2.19\) 什么是算法? 先来一道题:NC16669 给出一个序列,对它去重并排序。 时间复杂度和空间复杂度 略。 枚举 例1:最大正方形 在一个$n*n(n<=100)$的矩阵中求
阅读全文
摘要:Codeforces Round 701 (Div2) 题解 \(zhanglichen\ 2021.2.13\) \(A.Add\ and\ Divider\) 题意: 您有两个正整数$a$和$b$。 您可以执行两种操作: \(a =⌊a/b⌋\)(用a和b之间的除法的整数部分替换a) \(b =
阅读全文
摘要:给出一个数组$b$ $b_i$可以等于$a_i$,也可以等于$\sum_^ia_j$ 询问有多少个数组$a$。 对每个位置$i$,你可以选择$a_i=b_i$或$a_i=b_i-\sum_^a_k$。 如果$\sum_^a_k=0$,那么这两种选择构成的数组是一样的,对答案的贡献是1。 一种$O(n
阅读全文
摘要:Codeforces Round 697(Div 3)题解(1475A~G) \(zhanglichen\ 2021.2.11\) \(A.Odd\ Divisor\) 题意: 检验$n$是否有大于1的奇数除数。 题解: 除了2的整数次幂,都是合法答案。 所以不断把$n$除2,看看是否能遇到奇数即
阅读全文
摘要:题意: 给出一棵树,根节点为1。你可以给x个点赋值A,剩下n-x个点赋值B。询问从根节点到每个点的路径构成的字符串的最小集合。 题解: 结论1:每一层的点赋相同的值,可以使答案最优。 所以可以把每一层看成物品,物品的价值就是这一层的点数,跑一个01背包。 如果存在一组物品使得它们的和恰好为x,那么就
阅读全文
摘要:HDU4507 如果一个整数符合下面3个条件之一,那么我们就说这个整数和7有关—— 1、整数中某一位是7。 2、整数中的每一位加起来的和是7的整数倍。 3、这个整数是7的整数倍。 要求一个区间中和7无关的数的平方和。 需要用数位DP维护3个值: 1、与7无关的数的个数。 2、与7无关的数的和。 3、
阅读全文
摘要:给定L,R,你可以用至多32个点构造一张简单DAG,并给每条边定一个正边权 #include<bits/stdc++.h> using namespace std; const int maxn=1010; int L,R; vector<pair<pair<int,int> ,int> > ans
阅读全文
摘要:这两个版本之间的唯一区别是,此版本要求的是最大可能的答案。 荷马非常喜欢数组。今天,他正在绘制一个数组a1,a2,…,an,它具有白色和黑色两种颜色。 a1,a2,…,an的绘画分配由数组b1,b2,…,bn描述,bi指示ai的颜色(白色为0,黑色为1)。 根据绘画任务b1,b2,…,bn,将数组a
阅读全文
摘要:题意: 给出一棵树,每次询问两点之间是否存在一个l到r之间的数出现奇数次,找到这个数。 题解: 询问是否出现奇数次,用可持久化线段树套树上差分维护异或和。 找到这个数,不套随机数一直wa5,看了官方题解,里面有证明套随机数求解这个问题可以做到大概率正确。woc真的好难。 #include<bits/
阅读全文
摘要:题意: 给出一棵树,支持以下操作: 选择树上2个叶子节点,把这2个节点加到答案里,同时删除其中一个节点。 询问怎么操作使得答案最大。 题解: 结论:维护一条直径,除直径以外的点对答案的贡献是max(dis(i,x),dis(i,y))。 直径端点的求解方法: 先一遍搜索出最深的点,那么这个点一定是端
阅读全文
摘要:题意: 给出一棵树。 定义一个叶子集合为: 集合中任意一对叶子之间的距离小于等于k 询问最少可以把叶子分成几个集合。 做法: 考虑每次从最深的点开始搜索,这样可以保证,搜K次搜到的点之间的距离不超过K。 #include<bits/stdc++.h> using namespace std; con
阅读全文
摘要:杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有4或62的号码。例如: 62315 73418 8891
阅读全文
摘要:题解: 既然只有5个点,那就无限乱搞,我的做法是不断取出当前点集两两之间的LCA插入点集,直到所有两两之间的LCA都已经在点集中了。 这一步的时间复杂度我感觉是一个调和级数,是可以被忽略的。 然后对每个点保存它的最深父亲,然后对点集建一棵树,对这棵树算边权贡献即可。 #include<bits/st
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9983/J来源:牛客网有一天牛牛和牛妹在做游戏,规则如下: 桌面上摆着n\mathit nn张纸牌,每张纸牌上写着一个正整数,由牛牛先手轮流执行以下操作: 1.\text 1.1.如果桌面上只剩一张纸牌,游戏结束,这张纸
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9983/I来源:牛客网设一个长度为m\mathit mm的序列S\mathit SS的美观度等于有多少个整数i\mathit ii满足1≤i≤m−11\leq i \leq m-11≤i≤m−1且Si=Si+1S_{i}
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9983/H来源:牛客网牛牛发现了一种方法可以将只包含小写字母的字符串按照以下方式使其转换成一个数字串: 取其中的每个字母,a\mathit aa转换为1\text 11,b\mathit bb转换为2\text 22..
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9983/G来源:牛客网在一个幼儿园里面有n\mathit nn个小朋友,分别编号1,2,...,n\text 1,2,...,n1,2,...,n。在这些小朋友中有一些小朋友互为朋友关系,总共有m\mathit mm对朋
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9983/F来源:牛客网一个模式串指仅包含小写英文字母和至少一个'#'的字符串,其中'#'可以匹配一段任意长度的任意小写字母字符串。 一个匹配串指待匹配的只包含小写字母的字符串。 一个模式串和一个匹配串相匹配当且仅当把模式
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9983/E来源:牛客网在卖礼物的超市中有n\mathit nn个柜子,每个柜子里都摆放了一个礼物,每个礼物有自己的一个编号,第i\mathit ii个柜子里的礼物编号为aia_{i}ai。 茶山牛想给牛牛和牛妹买相同编
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9983/C来源:牛客网在一个二维平面上有n\mathit nn个敌人,第i\mathit ii个敌人可以描述为一个以(xi,yi)(x_{i},y_{i})(xi,yi)为圆心,rir_{i}ri为半径的圆。 你每
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9983/B来源:牛客网在一个班级里有n\mathit nn个同学,在这个即将进行数据结构期末考试的关头,为了减少内卷,他们决定聚在一起商量对策。 每个人在考试后会得到一个A,B,C,D,E\mathit A,B,C,D,
阅读全文
摘要:给出一棵树,一开始1号点是红色的,有2种操作: (1)把一个节点改成红色 (2)每次询问一个红色节点,输出和它最接近的红色节点 一个全新的套路:对询问分块+多源$BFS$ 用一个$Vector$保存当前还未被修改的红色节点 将修改操作分块后,对每一块的操作先全部修改一遍,然后多源$BFS$更新每个蓝
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9982/D来源:牛客网 题目描述 整除分块,又称数论分块。是数论算法中的重要技巧,你可以在各种需要枚举因子的连续求和类问题中见到它的身影。如杜教筛,莫比乌斯反演化简后的整除分段求和等。 整除分块基于这样一个数学现象:对于
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9982/A来源:牛客网某天,牛妹来找牛牛学习RMQ算法(Range Minimum/Maximum Query),即区间最值查询。也就是给定一个数组区间[L,R],查询该子区间的最大值。 假设子数组的两端点下标分别为L,
阅读全文
摘要:每个人有一只猫 请你确定x和y 使得x+y=n,同时x个人不认识y只猫 结论1:对于每组人和猫,必选其一 首先,当我们选择一个人的时候,他自己养的猫和认识的猫一定不能选 根据结论1就必须选择他认识的猫的主人,否则会导致人数不够 由于认识关系是单向的,所以是一张有向图 选择一个人之后必须选择它的所有出
阅读全文
摘要:Konrad是大型电气设备生产商VoltModder的人际关系顾问。今天,他的任务是评估公司的幸福程度。 为VoltModder工作的n人,从1到n。每个员工在公司中赚取的金额不同-最初,第i个人每天赚取i卢布。 在接下来的q天的每一天,工资将被修改。在第i天结束时,员工vi将开始每天赚取n + i
阅读全文
摘要:您将得到由n个顶点组成的树T。 每个顶点上都有一个数字。 写在顶点i上的数字是ai。 让我们将函数I(x,y)表示为在连接顶点x和y的简单路径上ai的最大值和最小值之间的差。 您的任务是计算。 题解: 考虑单独算每个点的贡献。 把点权转化为边权,对于最大值的贡献,把每条边的边权设为两个点点权的较大值
阅读全文
摘要:Kitayuta先生刚刚购买了一个具有n个顶点和m个边的无向图。图的顶点编号为1到n。每个边(即边i)的颜色为ci,连接顶点ai和bi。 Kitayuta先生希望您处理以下q个查询。 在第i个查询中,他给您两个整数ui和vi。 查找满足以下条件的颜色数:该颜色的边缘直接或间接连接顶点ui和顶点vi。
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9981/J来源:牛客网 有n个格子,每个格子里有一个数,1,2,3,4...n 牛牛放出无穷只青蛙。 第一只青蛙的路线是:1->2->4->8->16->.... 第二只青蛙的路线是:1->3->9->27->81->.
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9981/I来源:牛客网输入一个数 ,请构造一个长度为 的排列,使得其中正好有 对相邻的数gcd(最大公约数)大于 。 排列是指 到 一共 个数,每个数都出现过且仅出现过 次。例如, 是一个排列,而 、 则不是排列 #in
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9981/D来源:牛客网牛牛拿到了一个n*n的方阵,每个格子上面有一个数字:0或1 行和列的编号都是从0到n-1 现在牛牛每次操作可以点击一个写着1的格子,将这个格子所在的1连通块全部变成0。 牛牛想知道,自己有多少种不同
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9981/C来源:牛客网 你拿到了一棵树,请你给每个顶点染成红色或蓝色。 要求:每个红点周围有且仅有一个红点,每个蓝点周围有且仅有一个蓝点。 “周围”的定义:某点周围的点指通过邻边直接连接的点。 所谓树,即没有自环、重边和
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9981/B来源:牛客网 请你构造一个非空的括号字符串,包含正好 kkk 个不同合法括号对。 所谓括号字符串,是指由'('和')'这两种字符构成的字符串。 要求构造的字符串长度不超过100000 100000100000。
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/9981/A来源:牛客网 长度不超过nnn,且包含子序列“us”的、只由小写字母构成的字符串有多少个? 答案对109+710^9+7109+7取模。 所谓子序列,指一个字符串删除部分字符(也可以不删)得到的字符串。 例如,
阅读全文