![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2020多校联赛
阿斯顿叫才能
这个作者很懒,什么都没留下…
展开
-
2020多校联赛第九场I题:The Crime-solving Plan of Groundhog
要先选一个最小的数字出来,再把剩下的数字拼成一个最小的数,然后相乘即可,注意两个数必须要是正数,且没有前导 00,可以对数组先进行排序,找到第一个不是 00 的位置,然后替换两次就能得到最小的数了,比如:0000123->替换第1个和第5个1000023->替换第2个和第6个1200003->1|200003#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+.原创 2020-08-11 22:00:23 · 235 阅读 · 0 评论 -
2020多校联赛第七场B:Mask Allocation
题意:有n * m个口罩,将口罩进行分组装箱,使其满足给n个医院,每个医院分配m个口罩,及m个医院,每个医院分配n个口罩,要求分的组数尽可能少,并且字典序最大对n和m进行gcd递归求解。#include<bits/stdc++.h>using namespace std;int t,n,m;int cnt[100010];int res;void gcd(int a,int b){ if(b==0)return; int num=a/b*b; cnt[b.原创 2020-08-06 22:43:10 · 89 阅读 · 0 评论 -
2020多校联赛第七场D:Fake News
题解:就是给定一个整数n,求1-n的平方和是否是平方数(另一个数字的平方),可进行打表寻找规律,发现当且仅当n == 1 || n == 24时,其结果是平方数#include<bits/stdc++.h>using namespace std;typedef long long L;L T, n,t;int main(){ ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); cin>>T;.原创 2020-08-06 22:32:03 · 90 阅读 · 0 评论 -
2020多校联赛第六场E题:Easy Construction
题意:给出n,k,构造出一个n的全排列P,使得对于 1~n 中任意的数 i,P 都存在一个长为 i 的子区间,其和模 n 余 k。有解输出任意一组,无解输出 -1。思路:如果1-n的总和(n(n+1)/2)%n == k,那么就一定有解决方案。当n为奇数时,1-n的和必定是n的倍数,即k一定为0;而当n为偶数时,k一定为n/2。如果一定有解决方案,那么如何构造这样一个排列也是一个问题。如果n%2 == 1,那么k=0,令P={n,1,n-1,2,n-2,…}。如果n%2 == 0,那么k=n/.原创 2020-08-02 09:14:18 · 129 阅读 · 0 评论 -
2020多校联赛第六场C题:Combination of Physics and Maths
题意一个矩阵的底面积定义为最后一行的数的和,重量定义为所有数的和,给一个正整数矩阵,找一个 “压强” 最大的可非连续子矩阵。假如我们对于每列都进行这样的计算:从第一行到终止行(任一行)的数之和除以终止行的数,那么我们可以得到以每一列的某些行作为矩阵的最大值,如果以多列作为矩阵,合并后的值一定小于或等于合并前的值,所以可以,用一个二维数组,来保存该点上方所有点(包括该点)的和,因为分母不会受到分子的影响,所以要全都加上。#include<bits/stdc++.h>using n.原创 2020-08-02 09:05:39 · 132 阅读 · 0 评论 -
2020多校联赛第五场I题: Interval
题目大意:给出一个n*m的网格,每个格子都可放H,E或G中的一个,要求H的四周至少要有一个E和一个G。问当n、m都取 ∞ 时H的占比 (即H占总格数的多少).如图:在斜线上交错摆E和G,而斜线上侧和下侧都可以摆放H,占比最大为2/3。#include<iostream>using namespace std;int main(){cout << "0.666667" << endl;}...原创 2020-07-29 23:01:11 · 225 阅读 · 0 评论 -
2020多校联赛第五场F题: DPS
题目大意:有n个玩家,每个玩家都输入他的杀伤力 di,其中:输出有三行,第一行和第三行一样;需要注意 : ‘-’以及 ‘ 空格 ’的个数为 si 的值;当 di 为最大值时,需要将最后一个‘ 空格 ’ 改为 ‘ * ’ , 如果有多个最大值,重复该操作。#include<iostream>using namespace std;typedef long long L;int main(){ L n,arr[150],max=-1; double q; c原创 2020-07-29 22:16:16 · 112 阅读 · 0 评论 -
2020多校联赛第三场C:Operation Love
题目大意:已知有一固定大小的手掌,放进坐标轴里。输入T,每次输入20个坐标,坐标是顺时针或者是逆时针,根据坐标判断手掌是右手掌还是左手掌;解题思路:计算长度为 6 和 9 这两个向量的叉积,如果相乘为正数,则为逆时针,为右手,反之是左手。#include<bits/stdc++.h>using namespace std;const int N=1e5+1000;double eps=0.5;struct node{ double x,y;} arr[N];int .原创 2020-07-24 11:20:55 · 226 阅读 · 0 评论 -
2020多校联赛第四场B题:Basic Gcd Problem
质因数的定义:每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数. 如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数. 就是一个数的约数,并且是质数,比如8=2 x 2 x 2, 2就是8的质因数;12=2 x 2 x 3, 2、3就是12的质因数。题目大意:输入T,存在T组用例,每组用例分别输入{ni,ci},根据题目所给函数:得出相应的 f(x)。我们来跑一下这个函数:ci=5,ni=10时,f(10) = max 5 * f(gcd(i,10)) = 5 .原创 2020-07-24 08:48:26 · 110 阅读 · 0 评论 -
2020多校联赛第4场F题:Finding the Order
题目大意:两条线平行,已知AC、AD、BC、BD ,求是AB//CD 还是 AB//DC。如图,连接对角线构成两个三角形,根据三角形任意两条边之和大于第三边可得,中间交叉的两条线之和,必然大于两边两条线之和,所以只用比较 AC+BD 与 BC+BD 的大小即可。#include<iostream>using namespace std;int main(){ int t; cin>>t; while(t--) { int .原创 2020-07-21 10:33:17 · 119 阅读 · 0 评论 -
2020多校联赛第三场A题: Clam and Fish
#include<iostream>#include<bits/stdc++.h>using namespace std;int main(){ int t,n; cin>>t; while(t--) { cin>>n; char arr[n+5]; int ans=0,b=0;///ans:鱼的数量,b:鱼饵的数量 for(int i=0; i<n.原创 2020-07-20 11:41:24 · 120 阅读 · 0 评论 -
2020多校联赛第三场B题:Classical String Problem
本题题意:存在一个字符串,对字符串有两种操作:1.对字符串中第x个字符进行输出2.对字符串最左边的x个字符移到最右边 或 字符串最右边的x个字符移到最左边题目实例中的过程:操作为c = 'M’时,如果 x>0 ,则将最左侧的x位字符移到最右侧;下标将发生改变;此时x = 4 ,“nowc”移到最右边 。操作为c = 'M’时,如果 x<0 ,则将最左侧的x位字符移到最右侧;下标将发生改变;此时x = -3,“owc”移到最左边。此时x = 1 ,o 移到最右边#in.原创 2020-07-19 14:18:36 · 99 阅读 · 0 评论 -
2020多校联赛第二场F题:Fake Maxpooling
本题题意:给一个n×m的矩阵,对于第i行第j列的 Aij 等于i与j的最小公倍数,求该矩阵中每个k×k大小的子矩阵中最大值的和。#include <iostream>#include<string.h>using namespace std;int m,n,k;int a[5001][5001];int gcd(int a,int b){ if(!b) return a; return gcd(b,a%b);//最大公约数}in.原创 2020-07-18 11:07:53 · 406 阅读 · 0 评论 -
2020多校联赛第二场D题:Duration
本题题意是:输入两个时间点,得出两个时间点之间相距的毫秒差。#include<iostream>#include<cmath>using namespace std;int main(){ int HH1,MM1,SS1; int HH2,MM2,SS2; char A1,B1; cin>>HH1>>A1>>MM1>>A1>>SS1; cin>>HH2>&.原创 2020-07-18 08:19:15 · 80 阅读 · 0 评论