2020中南大学研究生招生夏令营机试题

2023-11-09 23:34

本文主要是介绍2020中南大学研究生招生夏令营机试题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


title: 2020中南大学研究生招生夏令营机试题
date: 2020-05-07 17:34:23
categories: 算法
tags: [C++, 思维]
mathjax: true


题目编号标题来源/分类正确提交
Y1252缺失的彩虹2020中南大学研究生招生夏令营机试题136334
Y1253最小价值和2020中南大学研究生招生夏令营机试题201645
Y1254PIPI上学路2020中南大学研究生招生夏令营机试题121583
Y1255最大容量和2020中南大学研究生招生夏令营机试题173592
Y1256最小特征值之和2020中南大学研究生招生夏令营机试题3255

1252: 缺失的彩虹

时间限制: 1 Sec 内存限制: 128 MB
提交: 334 解决: 136
[提交] [状态] [讨论版] [命题人:test]

题目描述

众所周知,彩虹有7种颜色,我们给定七个 字母和颜色 的映射,如下所示:
‘A’ -> “red”
‘B’ -> “orange”
‘C’ -> “yellow”
‘D’ -> “green”
‘E’ -> “cyan”
‘F’ -> “blue”
‘G’ -> “purple”
但是在某一天,彩虹的颜色少了几种,你能告诉PIPI哪些彩虹的颜色没有出现过吗?

输入

输入包含多组测试用例。
对于每组测试用例,输入n个合法的颜色字符串(0<=n<=100),输出有多少种颜色没有出现过,并分别输出对应的字母。

输出

对于每一组测试样例,输出一个数字,代表缺失的颜色种数,然后按照升序输出缺失颜色对应的字母。

样例输入
3
red
orange
cyan
样例输出
4 
C
D
F
G
来源/分类

2020中南大学研究生招生夏令营机试题

解析:

签到

#include<iostream>
#include<cstring>
#include<map>
using namespace std;
string a[]= {"red","orange","yellow","green","cyan","blue","purple"} ;
char b[]= {'A','B','C','D','E','F','G'};
int main()
{int n;while(~scanf("%d",&n)){map<string,int> mp;string s;for(int i=1; i<=n; i++){cin>>s;mp[s]=1;}char ans[10];int tot=0;for(int i=0; i<7; i++){if(mp[a[i]]==0){ans[tot++]=b[i];}}printf("%d\n",tot);for(int i=0;i<tot;i++){printf("%c\n",ans[i]);}}return 0;
}

1253: 最小价值和

时间限制: 1 Sec 内存限制: 128 MB
提交: 645 解决: 201
[提交] [状态] [讨论版] [命题人:test]

题目描述

给定 n 个整数对(ai, bi) , 每个整数对的价值是(i-1)*ai + (n-i)*bi (下标从1开始, 这里的 ai 、bi 和输入不一定对应),然后问所有整数对的最小价值总和。

输入

输入包含多组测试用例。
对于每组测试用例,首先输入数对的数量n(n<=1e5)
接下来输入n对数对 ai bi (0<=ai,bi<=1e9)

输出

对于每组测试用例,输出这些整数对的最小价值总和。

样例输入
3
3 2
2 4
6 1
样例输出
11
提示

0 * 6 + 2 * 1 + 1 * 3 + 1 * 2 + 2 * 2 + 0 * 4 = 11

来源/分类

2020中南大学研究生招生夏令营机试题

解析

( i − 1 ) ∗ a i + ( n − i ) ∗ b i = i ∗ ( a i − b i ) + n ∗ b i − a i (i-1)*ai + (n-i)*bi =i*(ai-bi)+n*bi-ai (i1)ai+(ni)bi=i(aibi)+nbiai

#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;
typedef long long LL;
const int N=100005;
struct Node
{LL a,b;
} x[N];
bool cmp1(Node u,Node v)
{return u.a-u.b>v.a-v.b;
}int main()
{int n;while(~scanf("%d",&n)){for(int i=1; i<=n; i++){scanf("%lld%lld",&x[i].a,&x[i].b);}sort(x+1,x+n+1,cmp1);LL ans1=0;for(int i=1;i<=n;i++){ans1+=(i-1)*x[i].a+(n-i)*x[i].b;}printf("%lld\n",ans1);}return 0;
}

1254: PIPI

上学路时间限制: 1 Sec 内存限制: 128 MB
提交: 583 解决: 121
[提交] [状态] [讨论版] [命题人:test]

题目描述

PIPI每天早上都要从CSU的某个位置走到另一个位置。CSU可以抽象为一个n*m的方格。PIPI每天都要从(x1,y1)走到(x2,y2),规定每次可以向下或者向右移动一格。总共有q次询问,每次询问从(x1,y1)走到(x2,y2)有多少条不同的路径,答案对1000000007取模。

输入

输入包含多组测试用例。
对于每组测试用例,首先输入三个整数n,m,q(1<=n,m,q<=5000),代表方格的大小和询问次数。
接下来q行,每行输入四个正整数 x1, y1 ,x2,y2(1<=x1<=x2<=n ,1<=y1<=y2<=m) 。意义如题所示。

输出

4 4 4
1 1 1 1
1 1 2 2
1 1 1 2
1 1 2 1

样例输入
1
2
1
1
来源/分类

2020中南大学研究生招生夏令营机试题

解析:

建议纯暴力,其实也就组合数

#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;
typedef long long LL;
const int N=50005;
const LL mod=1000000007;
LL fact[N+5],infact[N+5];LL qmi(LL a, LL k, LL p)   
{LL res = 1;while (k){if (k & 1)res = (LL)res * a % p;a = (LL)a * a % p;k >>= 1;}return res;
}
LL C(int a,int b)
{return fact[a]*(infact[b]*infact[a-b]%mod)%mod;
}int n,m,q;
int main()
{fact[0] = infact[0] = 1;for (int i = 1; i < N; i ++ ){fact[i] = (LL)fact[i - 1] * i % mod;infact[i] = (LL)infact[i - 1] * qmi(i, mod - 2, mod) % mod;}while(~scanf("%d%d%d",&n,&m,&q)){int x1,x2,y1,y2;for(int i=1; i<=q; i++){scanf("%d%d%d%d",&x1,&y1,&x2,&y2);int a=x2-x1;int b=y2-y1;printf("%lld\n",C(a+b,a)%mod);}}return 0;
}
#include "bits/stdc++.h"
using namespace std;const int maxn = 5e3+7;
const int mod = 1e9+7;int ways[maxn][maxn];int main() {ways[1][0]=1; for(int i=1; i<maxn; ++i) {for(int j=1; j<maxn; ++j) {ways[i][j]=(ways[i-1][j]+ways[i][j-1])%mod;}}int n, m, q;ios::sync_with_stdio(false); cin.tie(0); while(cin>>n>>m>>q) {while(q--) {int x1, y1, x2, y2;cin>>x1>>y1>>x2>>y2;cout<<ways[x2-x1+1][y2-y1+1]<<'\n'; }}
}

1255: 最大容量和

时间限制: 1 Sec 内存限制: 128 MB
提交: 593 解决: 174
[提交] [状态] [讨论版] [命题人:test]

题目描述

有 m 根木棍,m = n * k,n 个桶,每个桶由 k 块木板构成,桶的容量由最短的木板长度决定,桶的底面积为 1,现要求任意两个桶间的容量差小于等于 L,问 n 个桶的最大容量和。
如果无法满足组成n个桶,输出0.

输入

第一行输入三个整数 n,k, L(nk<=1e5)。
第二行输入n
k根木板长度,a1,a2,a3…1 ≤ a**i ≤ 10^9

输出

输出n个木桶最大容量和。

样例输入
4 2 1
2 2 1 2 3 2 2 3
样例输出
7
提示

这四个桶可以是1 2, 2 2, 2 3, 2 3,那么答案就是1+2+2+2 = 7。

来源/分类

2020中南大学研究生招生夏令营机试题

我们仍然只需要从大到小选择木棍,要从不大于 amin+L 的地方开始构建桶即可

#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;
typedef long long LL;
const int N=100005;
int n,k,l;
int a[N];
int two_find(int l,int r,int val)
{while(l<r){int mid=(l+r+1)>>1;if(a[mid]<=val){l=mid;}elser=mid-1;}return l;
}
int main()
{while(~scanf("%d%d%d",&n,&k,&l)){for(int i=1;i<=n*k;i++){scanf("%d",&a[i]);}sort(a+1,a+n*k+1);LL ans=0;if(a[n]-a[1]>l)  {printf("0\n");continue;}int pos=two_find(1,n*k,a[1]+l);//cout<<pos<<endl;if(a[pos]<=a[1]+l){int num=n*k-pos;for(int i=pos;i>=1;i--){//cout<<num<<endl;num+=1;if(num>=k){ans+=a[i];num-=k;}}}printf("%lld\n",ans);}return 0;
}

这篇关于2020中南大学研究生招生夏令营机试题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379109

相关文章

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

研究生生涯中一些比较重要的网址

Mali GPU相关: 1.http://malideveloper.arm.com/resources/sdks/opengl-es-sdk-for-linux/ 2.http://malideveloper.arm.com/resources/tools/arm-development-studio-5/ 3.https://www.khronos.org/opengles/sdk/do

【超级干货】2天速成PyTorch深度学习入门教程,缓解研究生焦虑

3、cnn基础 卷积神经网络 输入层 —输入图片矩阵 输入层一般是 RGB 图像或单通道的灰度图像,图片像素值在[0,255],可以用矩阵表示图片 卷积层 —特征提取 人通过特征进行图像识别,根据左图直的笔画判断X,右图曲的笔画判断圆 卷积操作 激活层 —加强特征 池化层 —压缩数据 全连接层 —进行分类 输出层 —输出分类概率 4、基于LeNet

广东省特殊食品生产试题分享

1.食品污染是指在各种条件下,导致有毒有害物质进入到食物中,造成以下哪项发生转变的过程。(D) A.食品的安全性 B.食品的养分性 C.食品的感官性状 D.以上都是 2.食品污染物是指(D) A.生物性污染物 B.化学性污染物 C.物理性污染物 D.以上都是 3.关于菌落总数的表达,错误的选项是(A) A.反映食品对人体安康的危害程度 B.是食品清洁状态的标志 C.推测食品的耐保藏性 D.指1g检

2020年SEO行业发展变化和趋势分析!

一、搜索引擎算法发展轨迹 第一阶段:人工目录(1997年-2001年“雅虎早期搜索模式”); 第二阶段:文本分析(2001年-2004年“以关键词和背景颜色一样,堆积大量关键词,就会有非常好的排名; 第三阶段:链接分析(2004年-2009年“以反向链接为核心算法的阶段”),这时行业内有句话是内容为王,外链为皇; 第四阶段:智能分析(2009年-现在“以满足用户人性化需求的用户浏览行为分析

2020年数据术语的故事

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 2020年整个技术圈子要说话题最多的,应该是大数据方向。新感念层出不穷,数据湖概念就是其中之一。这篇文章是关于数据仓库、数据湖、数据集市、数据中台等一些列的概念和发展进程。希望给大家带来一个全面的感知。 本文作者:Murkey学习之旅、开心自由天使 本文整理:大数据技术与架构,未经允许不得转载。 如今,随着诸如互联网以及物联网等

汇总(三):2020年12月

1.mysql数据库中,字段类型为tinyint(1)的,在select时,不显示正常的数字而是true或false?  传送门

2020 1.1版本的idea中git的使用场景

1、克隆项目 File-->New-->Project from Version Control 2、拉取远程的分支到本地 右下角-->(Remote Branches)选定分支-->checkout 3、将master分支更新的代码合并至bry分支并提交到远程仓库    (目的:实时与master的最新代码保持一致) 右下角-->(Local Branches)checkout br