![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客多校
离开那天
这个作者很懒,什么都没留下…
展开
-
2020牛客多校第五场D-Drop Voicing
Drop Voicing题意思路代码题意给定一个长度为n的排列,每次可以做两个操作1、把排列倒数第二个数放到第一的位置2、把第一个数放到最后一个位置连续的操作1视作一次操作。问最少需要几次操作才能把排列变为全部升序。即12345678……思路操作2可看作改变排列的顺序,相当于在圆上绕圈圈,操作1可改变排列的本质。所以只需要每次进行操作2后求排列的最长上升序列长度,再在这些长度中取最大值,用n减去这个值即可。此处直接把原数组延拓一倍,然后从0到n求最长上升子序列即可复杂度O(n3)不是原创 2020-09-03 11:58:50 · 216 阅读 · 0 评论 -
2020牛客多校第五场E-Bogo Sort
Bogo Sort题意思路代码Bogo Sort题意给定置换,求有多少排列可以通过这个变成顺序。思路求所有置换环长度,取lcm(最大公约数)当个结论吧,不知道怎么证明。代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 100010;const int B = 1e6;int _w;int n, p[N];map<int,int> fac;原创 2020-09-01 18:59:56 · 152 阅读 · 0 评论 -
2020牛客多校第五场I-Hard Math Problem
Hard Math Problem题意思路代码Hard Math Problem题意G,H,E是三种机器,只有三者相邻才算做一个机器f(n,m)代表n行m列里面有的机器。问n->∞,m->∞时,f(n,m)的值思路很显然是2/3代码print('0.666667')...原创 2020-09-01 10:52:28 · 178 阅读 · 0 评论 -
2020牛客多校第五场F-DPS
DPS题意思路代码DPS题意模拟思路注意题目的di*50会让int刚好溢出,所以要用uint注意精度问题,不能直接用ceil把取整公式取出即可原来是ceil((double)x/maxn*50)变成(x * 50u + maxn - 1) / maxn代码#include<bits/stdc++.h>using namespace std;#define int long long#define PII pair<int,int>#define fi f原创 2020-09-01 10:30:15 · 164 阅读 · 0 评论 -
2020牛客多校第七场H-Dividing
Dividing题意思路代码Dividing题意(1,k)为一个元组如果(n,k)是元组的话,那么(n+k,k)和(nk,k)也是元组。思路由于元组性质,如果(n,k)为元组,那么一定能够把n除k或减k到1。故n=n’k+1或者n=n’k即n%k=0或者n%k=1。即为计算∑i=1k⌊Ni⌋+∑i=2k⌊N−1i⌋+k−1\sum_{i=1}^{k}\left \lfloor \frac{N}{i} \right \rfloor+\sum_{i=2}^{k}\left \lfloor \原创 2020-08-31 15:56:33 · 116 阅读 · 0 评论 -
2020牛客多校第八场K-Kabaleo Lite
2020牛客多校第八场题意思路代码Kabaleo Lite题意T组样例,每组样例给定n种菜,给出每种菜的盈利数,数量,顾客只能从第一道菜吃起,你可以决定顾客吃到哪。在顾客人数最多的条件下,盈利最多。输出盈利数。如32 -1 3 这是盈利数3 2 1 这是菜数量所以第一个客人2+(-1)+3=4第二个2第三个2客人数3最大盈利是8思路对a数组做前缀和,下标从0~i,取菜品数量最小值,以前缀和为第一关键字,数量为第二关键字,下标为第三关键字。这样的话,对这个含有三个关键字的数据排序原创 2020-08-30 22:46:36 · 146 阅读 · 0 评论 -
2020牛客多校第八场I-Interesting Computer Game
Interesting Computer Game题意思路[Interesting Computer Game](Interesting Computer Game)题意T组样例,每一组样例给n组数,每组数仅能取一个数,问能取的不同数的数量最大值。思路此题涉及连通分量,但是我还不是很清楚,只能先用我理解的方法来做。并查集做法,首先必须离散化,kuangbin的标程里离散化操作很标准。去重后,让每组的两个数相连(做并查集合并),如果并查集内部出现了一次合并查到父节点相同,那么给父节点打上标记(表原创 2020-08-29 16:59:54 · 155 阅读 · 0 评论 -
2020牛客多校第九场 E-Groundhog Chasing Death
Groundhog Chasing Death题意思路代码Groundhog Chasing Death题意给定a、b、c、d、x、y,算比如a=c=1,b=d=2,x=4,y=8那么就算4个gcd的乘积即gcd(4,8)* gcd(4,64)* gcd(16,8)* gcd(16,64)=4 *4 *8 *16=2048思路因为gcd的本质就是把二者的质因子提出来之后,取各质因子的最小次数。如gcd(22* 32,23* 3)=2min(2,3) * 3min(2,1)=22 * 3=1原创 2020-08-29 16:18:41 · 139 阅读 · 1 评论 -
2020牛客多校第九场 K-The Flee Plan of Groundhog
The Flee Plan of Groundhog题意思路链接题意给定一颗n个节点的树,开始时Groundhog在1号节点,Orange在n号节点思路原创 2020-08-28 22:55:33 · 118 阅读 · 0 评论 -
2020牛客多校第九场 F-Groundhog Looking Dowdy
Groundhog Looking Dowdy题意思路链接题意给定n,m,后接n行数据,每一行数据代表一天,第一个数是ki,代表后面有ki个数。现在要求选择m天,其中每一天选择一个数,使得所有选择的数最大值减最小值最小。思路双指针算法即可。先把所有数据按照{大小,第几天}排好序,一个指针指向左边,一个...原创 2020-08-17 16:38:06 · 124 阅读 · 0 评论 -
2020牛客多校第十场 J-Identical Trees
Identical Trees题意思路代码链接题意给定一个数n,代表有两颗树T1,T2的节点都有n个,再给定每个节点的父节点编号(根节点的话就是0)。要求修改T1部分结点的编号使得两颗树编号一模一样。题目保证有解。思路用树形DP的思想,dp[i,j]代表T1的以i节点为根的子树和T2的以j节点为根的子树要同构的花费代价。于是在转移过程中使用二分图最大匹配即可。代码#include <bits/stdc++.h>using namespace std;#define rep原创 2020-08-15 16:19:38 · 240 阅读 · 0 评论 -
2020牛客多校第十场 A-Permutation
Permutation题意思路代码链接题意给定一个数p,找到一个长度为p-1的排列,假设排列为{x1,x2,……,xp-2}使得对于所有的i(1≤i≤p−2),xi+1≡2xii(1\leq i \leq p-2),x_{i+1}\equiv 2x_{i}i(1≤i≤p−2),xi+1≡2xi(mod p)或者xi+1≡3xix_{i+1}\equiv 3x_{i}xi+1≡3xi(mod p)。比如p=5时答案是{1,2,4,3}2=12(mod 5)4=22(mod 5)3=4*原创 2020-08-14 16:52:10 · 211 阅读 · 0 评论 -
2020牛客多校第二场 C-Cover the Tree
Cover the Tree题意思路代码链接题意给出n,表示有n个树的节点,随后n-1行给出树的边。答案中a b表示节点a连到节点b,题目要求在连的边最少情况下所连边覆盖所有点。思路先从一个至少有两个子节点的点作为根节点,求出叶子节点的dfs序,然后把所有叶子节点分成两块,从两块左边开始分别两两匹配,如果叶子节点个数为奇,则最后一个叶子节点连着根节点。注意本来n=2的时候是要特判的,即使是标程也是有错误的,可能数据根本没有n=2。代码#include<bits/stdc++.h>原创 2020-08-12 13:41:34 · 183 阅读 · 0 评论 -
2020牛客多校第一场 I 1 or 2
1 or 2题意思路链接题意给定n个点m条边的图,和n个di值,对于1<=i<=n,问第i个点所连边数是否都为di思路当时这题旁边有人用最大流过了,但是真算法是一般图最大匹配。需要把所有点进行以下处理。对u和v点进行拷贝,并加上两个点...原创 2020-08-10 09:50:51 · 143 阅读 · 0 评论 -
牛客多校第一场 H题Minimum-cost Flow
Minimum-cost Flow题意思路代码实现传送门题意先给定图的所有边及每条边费用,再给q个询问,每个询问包含u,v,要求每条边等于思路c代表每条边容量,f代表总流量实现方式是从小到大保存所有增广路的最小费用,然后用代码实现...原创 2020-08-04 11:32:14 · 147 阅读 · 0 评论 -
2020牛客多校第一场A题B-Suffix Array(数据卡在1%的原因)
B-Suffix Array题意思路特别注意代码B-Suffix Array题意给定一个字符串长度和字符串,已知B函数定义为说人话就是从字符串第一个字符开始,出现的第一个a或b对应的下标的b数组为0,否则就是离前面最近的和自己相同的字符的距离。如5abaab它的b数组就是00213这就是说每个字符串都有对应的b数组现在我们要求你求出给定字符串的所有后缀字符串的b数组,并对它们进行字典序从小到大排序。我们称后缀i是从i开始的字符串后缀输出字典序排序第一的是后缀几,排序第二的是后缀几原创 2020-07-16 12:51:31 · 228 阅读 · 0 评论