
牛客
陆小萌
这个作者很懒,什么都没留下…
展开
-
NC14731
NC14731题意求所有长度为nnn的01串中满足如下条件的二元组个数:设第iii位和第jjj位分别位aia_iai和aj(i<j)a_j(i<j)aj(i<j),则ai=1,aj=0ai=1,aj=0ai=1,aj=0答案对1e9+71e9+71e9+7取模。思路题目让我们求逆序对,长度nnn的01子串1在0的左边有多少种方案,由于题中1和0的地位是等价的,故正...原创 2020-04-16 12:02:40 · 201 阅读 · 0 评论 -
NC14248
NC14248题意给定一棵n个点的树,问其中有多少条长度为偶数的路径。路径的长度为经过的边的条数。x到y与y到x被视为同一条路径。路径的起点与终点不能相同思路DFS 树 数据结构这道题和CF1339D十分相像,有兴趣的可以做一下。把题意转化为给你一颗n个结点的树,树上所有的边权值为1,求树上任意两点距离为偶数的点的个数。问题就转化为了如何获取树上任意两点的距离是否为偶数呢?图论相关...原创 2020-04-14 15:26:21 · 223 阅读 · 0 评论 -
NC14247
NC14247题意给定一个长度为n的整数数组,问有多少对互不重叠的非空区间,使得两个区间内的数的异或和为0。1≤n≤1000, 0≤数组元素<1000001\leq n\leq1000,~~~0\leq数组元素<1000001≤n≤1000, 0≤数组元素<100000思路枚举 预处理异或前缀和为了便...原创 2020-04-13 20:07:41 · 354 阅读 · 0 评论 -
NC5026E 相似的子串
NC5026E题意把原题意转化为给你一个长为nnn的字符串,求至少有kkk个相同且不相交的长为xxx(可为000)的子串,xmaxx_{max}xmax为多少?思路二分+哈希字符串 时间复杂度O(nlogn)O(nlogn)O(nlogn)这道题不要求得到所求子串为什么,而要求子串所能取得最大长度,且答案具有严格单调性,故可以二分答案。那么如何验证?首先预处理字符串Hash得到Ha...原创 2020-04-12 18:13:19 · 191 阅读 · 0 评论 -
NC13611
NC13611题意一棵有n个结点的树,我们有k种不同颜色的染料给树染色。当且仅当对于所有相同颜色的点对(x,y),x到y的路径上的所有点的颜色都要与x和y相同时,染色方案是合法的。请统计方案数。思路把题目转化为给你一颗n结点的树,将其分成i (1≤i≤k)i ~ (1\leq i \leq k)i (1≤i≤k)个连通块涂上不同的颜色,此时发现染色方案的数量与这棵树的形...原创 2020-04-10 00:12:31 · 246 阅读 · 0 评论 -
NC13249
NC13249题意给你一棵树,每个节点iii上有一个值k[i]k[i]k[i],一开始树上所有节点均为白色,要求你每次选择一个白色节点染色,从该节点往根的链上小于k[i]k[i]k[i]的均被染色,求最小染色次数为多少?思路DFS 贪心首先叶子结点是一定要染色的,我们考虑如何返回的时候构造最优方案,我们维护两个数组。回溯路径所能染色到的最远距离k[x]=max(k[x],k[s]−1)...原创 2020-04-09 22:08:42 · 179 阅读 · 0 评论 -
NC13886
NC13886题意给你一颗n(偶数)结点的树,将其分为n/2对,求所有对数相连的路径之和最小为多少?思路DFS 数据结构既然是图论那就先画图吧左图由于以2号结点为根节点的子树结点数(包括其自身)为3(奇数),那么显然这棵树上一定有个节点要从树外找一个节点相连,那么必须要经过2号结点与其父节点的这条路(2->1)。右图告诉我们如果能偶数配对的子树则不需要相连。叶子节点为子树的结...原创 2020-04-02 20:01:46 · 215 阅读 · 0 评论 -
NC23053
NC23053题意给你一个字符串s,给你T组数据,每组数据输入一个字符串t,对该字符串判断是否为s的子串,若为子串则输出"YES"否则输出"NO"。1≤s≤1e61≤T≤1e61≤∑∣t∣≤1e61\leq s \leq 1e6 \quad 1\leq T \leq 1e6 \quad 1\leq \sum |t| \leq 1e61≤s≤1e61≤T≤1e61≤∑∣t∣≤1e6思路二...原创 2020-04-02 15:51:35 · 174 阅读 · 0 评论 -
NC22598
NC22598题意(题目数据范围M=N-1可知这是一棵树,一个边数为结点数-1的连通图一定为一棵树)给你一颗N个结点的树和对应边的权值,求以S结点为根节点去掉一些边使得不与叶子结点直接相连的最小代价为多少?思路树形DP树形DP树形DPf[i]=∑min(f[son],costi→son)f[i]=\sum min(f[son],cost_{i→son})f[i]=∑min(f[son]...原创 2020-04-02 14:09:27 · 164 阅读 · 0 评论 -
NC82B
NC82B题意给你一个长为n的序列a和一个常数k有m次询问,每次查询一个区间[l,r][l,r][l,r]内所有数最少分成多少个连续段,使得每段的和都 <= k如果这一次查询无解,输出"ChthollyChthollyChtholly"1<=n,m<=1e6,1<=ai,k<=1e91 <= n , m <= 1e6 , 1 <= a_i ...原创 2020-03-31 17:55:12 · 316 阅读 · 0 评论 -
NC50528
NC50528题意给你一个长度为n的数组,依次求长度为k的区间中的最小值,最大值为多少。思路单调队列(双端队列) 时间复杂度O(N)O(N)O(N)求最小值的做法:维护一个单调队列,头部元素的下标为sss,尾部元素的后一位下标为ttt,其中的值为xix_ixi(存aaa数组中的下标)使得[s,t)[s,t)[s,t)中的元素满足xi<xi+1x_i<x_{i+1}xi&l...原创 2020-03-29 13:42:24 · 229 阅读 · 0 评论 -
牛客练习赛60 C 操作集锦
C 操作集锦题意由小写英文字母组成的长度为n的一个字符串,求不相同的长度为k的子串的数量对1e9+7取模。1≤n≤1e30≤k≤n1≤n≤1e3 \quad 0 \leq k \leq n1≤n≤1e30≤k≤n思路DPDPDP 正难则反正难则反,我们求所有不同的子串,不如把所有子串的数量求出来再减掉所以相同的子串数量。若不去重求所有长度为k的子串的数量,则可由f[i][j]=f[i...原创 2020-03-28 02:56:04 · 207 阅读 · 0 评论 -
NC15553及其变形
NC15553题意给你n个数,选2个长度为k的连续区间,求他们加起来的和最大为多少?思路前缀和预处理,然后利用前缀和计算k个数的最大数为多少,然后预处理从左边遍历到i为止最大的区间长度为k的和为多少,从右边遍历到i为止最大的区间长度为k的和为多少。扫一遍要选的第一个区间,扫的过程如果左右还有可以选的区间,则取他们的最大值和选的区间相加,记录最大值即可。#include<bits/...原创 2020-03-27 01:26:54 · 241 阅读 · 0 评论 -
NC13230
NC13230题意输入两个字符串A和B,合并成一个串C,属于A和B的字符在C中顺序保持不变。如"abc"和"xyz"可以被组合成"axbycz"或"abxcyz"等。我们定义字符串的价值为其最长回文子串的长度(回文串表示从正反两边看完全一致的字符串,如"aba"和"xyyx")。需要求出所有可能的C中价值最大的字符串,输出这个最大价值即可。T(T ≤ 50)A,B(|A|,|B| ≤ ...原创 2020-03-26 16:44:43 · 516 阅读 · 0 评论 -
NC50439
NC50439题意有n个士兵,每个士兵战斗力为v[i],添加这个士兵则上场的总士兵数量要小于s[i],求最高战斗力?n(1≤n≤10^5)v,s(1≤v≤10^9,1≤s≤n)思路贪心+优先队列或multiset一开始想到01背包变形,如果按照这个思路去解,会发现随着s[i]的变化(即背包的容量变化)。如果有会dp解的大佬麻烦发我一下代码,我学一下。这道题如果人数k是已知的,直接...原创 2020-03-26 16:20:53 · 191 阅读 · 0 评论 -
牛客挑战赛38
A 多边形与圆题意任意凸多边形在圆内滚动,由1号点开始离开到1号点再次滚动到圆内1号点所滚动的弧长是多少?思路计算几何∠k1=acosx[i][i−1]2R∠k2=acosx[i][i+1]2R∠i=acosx[i][i−1]2+x[i][i+1]2−x[i−1][i+1]22∗x[i][i−1]∗x[i][i+1]∠θ=∠k1+∠k2−∠il=∠θ∗x[1][i]\angle k1...原创 2020-03-23 01:15:00 · 267 阅读 · 0 评论 -
牛客练习赛59
C 装备合成题意:牛牛有{x}x件材料{a}a和{y}y件材料{b}b,用{2}2件材料{a}a和{3}3件材料{b}b可以合成一件装备,用{4}4件材料{a}a和{1}1件材料{b}b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。思路:1.线性规划 O(1)这个高中知识裸题没啥好说的画个图求两直线交点,特判一下交点不在第一象限的时候取两直线和x轴、y轴的...原创 2020-03-14 14:52:38 · 390 阅读 · 0 评论 -
2020牛客寒假算法基础集训营4
C-子段乘积思路:前缀积 费马小定理 逆元#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <algorithm>#include <queue>#in...原创 2020-03-07 14:13:04 · 173 阅读 · 0 评论 -
街机争霸 三维 平面+时间 BFS
2020牛客寒假算法基础集训营5 G-街机争霸关键点:僵尸的坐标需要三维 平面+时间 利用僵尸移动的周期性检查是否存在僵尸思路:BFS这和之前做的BFS最大的区别在于,有僵尸干扰,且僵尸会动,但我们不难发现僵尸的移动是有一定的周期的,周期为2k-2,且人要一直跑不能停,那人跑的步数就可以等效为时间,我们要在原先BFS的基础上加上一维坐标表示时间,因为僵尸的移动是符合周期的,我们可以取余,...原创 2020-03-03 19:51:38 · 211 阅读 · 0 评论 -
2020牛客寒假算法基础集训营5 F-碎碎念
2020牛客寒假算法基础集训营5 F-碎碎念思路:数位dp + 前缀和#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <algorithm>#include <...原创 2020-03-01 20:54:17 · 239 阅读 · 0 评论 -
牛客练习赛58 D-迷宫
牛客练习赛58 D-迷宫思路:棋盘dp#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <algorithm>#include <queue>#incl...原创 2020-03-01 01:47:38 · 283 阅读 · 0 评论 -
二进制枚举
二进制枚举:void binary_enum(int n){ for(int i=0;i<(1<<n);i++){//枚举0到2^n-1的状态 for(int j=0;j<n;j++){ if(i&(1<<j)){ }else{ } } }}__builtin_popcount(i) 统计i二进制...原创 2020-02-29 20:52:03 · 267 阅读 · 0 评论 -
牛客小白月赛22
J 计算A+Bpython水高精度是真的tqlpython牛逼~n=int(input())#默认输进来是字符串需要转换for i in range(0,n):#python的for循环范围为[左边,右边) k=input() tot=0 flag=0 for j in k:#python的for语句结尾有: if j=='+':#pyth...原创 2020-02-24 04:33:43 · 231 阅读 · 0 评论 -
2020牛客寒假算法基础集训营第六场
C 汉诺塔题意:给你N组数据Xi Yi到Xn Yn 要求满足上面的Xi Yi比下面的小Xi ~ n均不相同 Yi ~ n均不相同思路:sort排序 (大到小)+ Dilworth定理 最小组数 等于 最长升序列长度 。原型还是导弹拦截贪心+二分O(nlogn)的做法变形而来。不同的是要先排序再贪心二分。至于还要输出分组情况,而分组可以借由贪心覆盖的时候给打上标记即可。#inclu...原创 2020-02-20 04:58:06 · 196 阅读 · 0 评论 -
牛牛战队的比赛地 二分法 三分法
题意:给你N个点,让你求出x坐标轴上一点到N个点中最大距离的最小值。思路:二分(答案具有严格单调性,容易验证答案是否正确)这里check函数比较难想参考用户:moyangxian#include<bits/stdc++.h>using namespace std;typedef long long ll;const int INF = 0x3f3f3f3f;cons...原创 2020-02-20 01:20:05 · 233 阅读 · 0 评论