牛客2020多校联赛
NGUP_LEE
毕业之后找到了一份还可以的工作,就是少了一些上学时学习的激情,上班就已经搞得自己精疲力尽,偶尔点开自己的博客,看到自己的学习笔记还可以帮助到不少的同学感到很开心。
加油,陌生人,如果你是为了挣钱,请努力,互联网不会辜负你,最重要的是你要考虑清楚自己的方向~
展开
-
2020牛客暑期多校训练营(第七场)B——Mask Allocation
题目链接题目大意:给定 n*m 哥物品,要求构造出k堆物品,并把这些堆可以任意组合为 n 堆m个物品或者 m 堆 n 个物品,求最小的 k 以及对应的解决方案样例输入5 4样例输出4 4 4 4 1 1 1 1题目分析:#include <iostream>#include<cstdio>#include<algorithm>#include<vector>using namespace std;int main(){原创 2020-08-02 00:15:18 · 200 阅读 · 1 评论 -
2020牛客暑期多校训练营(第六场)C——Combination of Physics and Maths
题目链接看图~~~~#include <bits/stdc++.h>using namespace std;const int N = 300;double Sum[N][N];int main(){ ios::sync_with_stdio(false); cin.tie(0); int T; cin>>T; while(T--){ int n,m; cin>>n>>m;原创 2020-07-29 20:33:45 · 194 阅读 · 0 评论 -
2020牛客暑期多校训练营(第六场)B——Binary Vector
题目链接题目太长了,直接找规律把~发现先预处理,打表,每次循环更新一下答案#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e7+5;const ll mod=1e9+7;const ll inv2=500000004;ll power(ll a,ll b){return b?power(a*a%mod,b/2)*(b%2?a:1)%mod:1;}ll f[N],原创 2020-07-29 20:06:28 · 218 阅读 · 0 评论 -
2020牛客暑期多校训练营(第六场)E——Easy Construction
题目链接 题目大意:给出n,k,构造出一个n的全排列P,使得对于 1~n 中任意的数 i,P 都存在一个长为 i 的子区间,其和模 n 余 k。有解输出任意一组,无解输出 -1。思路分析:#include<stdio.h>#include<iostream>#include<cstdio>using namespace std;int main(){ int n,m,k; scanf("%d%d",&n,&k); if((n*原创 2020-07-29 19:22:42 · 134 阅读 · 0 评论 -
2020牛客暑期多校训练营(第五场)F——DPS
题目链接#include<stdio.h>#include<algorithm>using namespace std;typedef long long ll;int n,d[111],maxn;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&d[i]); maxn=max(maxn,d[i]); } for(int i=1;i<=n;i原创 2020-07-26 20:16:17 · 158 阅读 · 0 评论 -
2020牛客暑期多校训练营(第五场)I——Hard Math Problem
题目链接#include <iostream>#include<cstdio>#include<algorithm>#include<vector>using namespace std;#define ll long long#define endl '\n'int a,b,c;int k=0;int main(){ cout<<0.666667<<endl;}原创 2020-07-26 20:09:06 · 262 阅读 · 0 评论 -
2020牛客暑期多校训练营(第四场)H——Harder Gcd Problem
题目链接 题目大意:输入一个n,给1-n进行两两配对,要求每一对(a,b)中,gcd(a,b)>1题目分析:我们可以从质数下手,可以知道,1-n范围的质数只能和它的倍数相匹配,所以大于 n/2 的质数肯定是无法匹配的,我们就把每个质数可以匹配的数列出来以 n=26为例编号最大质因数数字122, 4, 8, 16233,6,9,12,18355,10,15,20,24477,14,2151111,2261313,原创 2020-07-23 03:29:19 · 219 阅读 · 0 评论 -
2020牛客暑期多校训练营(第四场)B——Basic Gcd Problem
题目链接 题目分析:主要就是这个公式,我们分析一下,这是一个迭代公式,直到x=1的时候才会结束。每次迭代都会乘上c的值,所以迭代n次就有n个c相乘,也就是c的n次方,主要求解迭代次数也就是寻找n质因子的个数cnt,for(int i=2;i*i<=n;i++) { while (n%i==0) { cnt++; n/=i; }原创 2020-07-21 20:39:43 · 259 阅读 · 0 评论 -
2020牛客暑期多校训练营(第三场)C——Operation Love
题目链接输入21.000000 0.00000010.000000 0.00000010.000000 8.0000009.000000 8.0000009.000000 5.0000008.000000 5.0000008.000000 10.0000007.000000 10.0000007.000000 5.0000006.000000 5.0000006.000000 10.0000005.000000 10.0000005.000000 5.0000004.原创 2020-07-21 01:58:02 · 223 阅读 · 0 评论 -
2020牛客暑期多校训练营(第三场)B——Classical String Problem
题目链接题意:给你一个字符串,下标1开头,q组询问,每一组有一个字符op,一个数字x,op='A’时,输出当前字符串第x个字符,op='M’时,如果x>0,把字符串最左边的x个字符放到字符串右边,x<0,把字符串最右边|x|个字符放到字符串左边。 思路分析:定义个pos标记,最开始pos在0的位置,不管怎么移动,这个字符串始终是一个环,所以我们每次移动可以看做这个指针在移动,最后输出相应结果就行。#include<iostream>#include<algo原创 2020-07-20 22:20:48 · 178 阅读 · 2 评论 -
2020牛客暑期多校训练营(第三场)A——Clam and Fish
题目链接题目的意思很简单,只需要注意几点:再第二个阶段的时候可以选择钓鱼或者制作鱼饵,如果这个时候有鱼饵就先钓鱼,没有鱼饵就制作鱼饵,这样过一遍之后如果还有剩下的鱼饵,比如剩下10鱼饵,那么ans可以直接加上10/2,就架设了在这10个第二阶段的时候有5个阶段制作鱼饵,另外5个阶段钓鱼了还有一点,我用了memeset直接TLE了,这题不需要,因为给了字符串长度,判断的时候不会越界,所以不需要清空#include<iostream>#include<algorithm>原创 2020-07-20 21:01:20 · 197 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场)C题——Cover the Tree
题目链接题目大意给定一个无根树,选择树中所有边至少被一条链覆盖的最小链数。输出最小数字和其中任何一个解决方案。解题思路寻找不相邻的叶子节点,匹配输出。如下图(官方题解)#include<bits/stdc++.h>using namespace std;const int MAXN=2e5+100;int k,ans,u,v,root=-1,flag=1,a[MAXN],du[MAXN];vector<int> vec[MAXN];void DFS(int x,原创 2020-07-18 12:16:41 · 299 阅读 · 0 评论 -
2020牛客多校第二场B题Boundary
添加链接描述题意:给你n个点,让你找最多有多少个点共圆并且该圆过原点。题解:首先我们知道三个点即可确定一个圆(三点不共线),可以通过任取两个线段的中垂线交点得到圆心。那么我们可以通过记录交点出现次数最多的点即为合适的圆心。问题来了?当我们知道合适的圆心是多少时,我们如何计算符合题目要求的点的个数。我们可以继续用"三点定圆"的原理,首先圆必过原点,这已经确定一个点了,然后我们枚举时可以先确定一个点,然后枚举其它的点。此时枚举一遍后得到的ans是其它点与确定点和原点共圆的最多的个数,然后更改确定点继原创 2020-07-18 12:14:43 · 250 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场)F——Fake Maxpooling
题目大意:给定 n、m、k,可以确定一个n行m列的二维矩阵 a,并且这个矩阵,a[i][j]=i*j/gcd(i,j),求在这个矩阵中所有的大小为k矩阵的最大值的和 两种方法:单调队列,可以用deque也可以用数组模拟,维护k范围中每一列的最大值和每一行的最大值,最后求解dfs,因为每个点的值都是确定的,可以直接从a[k][k]开始搜,找到一个小矩阵的最大值后,再找另外一个的,当然如果k==1的话,就不需要搜了单调队列法#include<iostream>#inclu...原创 2020-07-17 22:38:31 · 181 阅读 · 0 评论 -
2020牛客暑期多校训练营(第一场)J——Easy Integration
题意:两种办法:找规律或直接推导找规律:推导代码#include <iostream>#include <algorithm>#include <sstream>#include <cstring>#include <cstdio>#include <vector>#include <stack>#include <queue>#include <cmath&..原创 2020-07-14 22:58:24 · 467 阅读 · 0 评论 -
2020牛客暑期多校训练营(第一场)F ——Infinite String Comparision
题意:无限字符串按字典序比大小#include <bits/stdc++.h>using namespace std;string s, t;int main() { while (cin >> s >> t) if (s + t < t + s) puts("<"); else if (s + t > t + s) puts(">"); ..原创 2020-07-13 22:58:45 · 208 阅读 · 0 评论