NEUQ-ACM-招新赛

为了实现建设世界一流大学和建设世界一流学科的目标,不少大学都用各种方式提升排名:发表论文、 申请基金、提升多样性. . . 不过看起来这些并不容易,而且 US News 和 Times 这样的机构并不一定会 公正评判你的工作。因此,一些大学更聪明——自己发布排行榜,这可以使得自己的名次间接变好。比如,通过上海某大学发布的软科排名(ARWU)作为桥梁,咖波甚至可以论证他的小汤河职业技术学院要好于清华大学:

现在,给定三个大写字母,你需要判断:

如果这三个大写字母分别为:NEU,则输出:Win

如果这三个大写字母分别为:THU,则输出:Lose

否则输出:?

输入格式:

一行三个大写字母,如题意所示

输出格式:

一行一个字符串,如题意所示

输入样例1:

NEU

输出样例1:

Win

输入样例2:

THU

输出样例2:

Lose

输入样例3:

KFC

输出样例3:

?

代码长度限制

16 KB

时间限制

1000 ms

内存限制

128 MB

 

#include<bits/stdc++.h>
using namespace std;
int main(){
	string a;
	cin>>a;
	if(a=="NEU")cout<<"Win";
	else if(a=="THU")cout<<"Lose";
	else cout<<"?";
}

7-2 比大小

分数 30

全屏浏览题目

切换布局

作者 ACM-CLUB

单位 东北大学秦皇岛分校

知名数学家田所浩二先生证明了:

9>10

证明:写下两个数的十进制表示:

9​.

1​0

观察这两个数字从前到后第一个不相同的数字,由于9>1,因此9>10。

用同样的方法,我们可以很容易地证明1919>114514:

19​19..

11​4514

或者是999>99:

99.​

999​

现在,请你给田所浩二先生写一个程序,用来比较两个输入的数字。

输入格式:

第一行一个整数T(1≤T≤106) ,表示有T组数据

接下来T行,每行两个整数a,b(1≤a,b≤109)

输出格式:

输出总共T行,对于第i行:

如果"a>b",则输出:>

如果"a=b",则输出:=

如果"a<b",则输出:<

输入样例:

5
9 10
114514 1919
999 99
131 131
1314 520

输出样例:

>
<
>
=
<

提示:

为避免输出超时,请使用cout << "\n"替代cout << endl

代码长度限制

16 KB

时间限制

2000 ms

内存限制

128 MB

#include<bits/stdc++.h>
using namespace std;
int main(){
	int T;
	cin>>T;
	string a,b;
	int x,y;
	for(int i=0;i<T;i++){
		cin>>a>>b;
		x=a.length();
		y=b.length();
		for(int j=0;j<max(x,y);j++){
			if(a[j]>b[j]){
				cout<<">"<<"\n";
				break;
			}
			else if(a[j]<b[j]){
				cout<<"<"<<"\n";
				break;
			}
			else if(a[x-1]==b[y-1]){
				if(j==x-1&&j==y-1){
				

				cout<<"="<<"\n";
				break;
			}
			
			}
		}
	}

}

7-3 矩阵乘法

分数 70

全屏浏览题目

切换布局

作者 ACM-CLUB

单位 东北大学秦皇岛分校

Alice在学线性代数。她觉得线代的计算特别麻烦,于是就来找你,希望你可以给她写一个程序计算两个矩阵的乘积。

矩阵乘法介绍:
矩阵A是一个N行P列的矩阵。
矩阵B是一个K行M列的矩阵。
当P=K时,A和B可以相乘(仅限于AB, BA不一定可行)
假设矩阵C=AB,那么Ci,j​=∑t=1P(或K)​Ai,t​∗Bt,j​

举个例子,假设A是一个2×3的矩阵,B是一个3×2的矩阵,最终结果C是一个2×2的矩阵,如下图所示

输入格式:

输入共一行,有三个整数N,P,M(N,P,M≤100)。表示矩阵A是一个N×P的矩阵,矩阵B是一个P×M的矩阵。

接下来N行,每行P个整数,读入矩阵A。

再接下来P行,每行M个整数,读入矩阵B。

数据保证在输入输出数据可以用int类型存储。

输出格式:

输出N行M列的矩阵C。每行最后一个数后面有一个空格。

输入样例:

在这里给出一组输入。例如:

3 3 3
1 3 2
1 0 0
1 2 2
0 0 2
7 5 0
2 1 1

输出样例:

在这里给出相应的输出。例如:

25 17 4 
0 0 2 
18 12 4 

代码长度限制

16 KB

时间限制

1000 ms

内存限制

64 MB

 

#include<bits/stdc++.h>
using namespace std;
int main(){
	int N,P,M;
	cin>>N>>P>>M;
	

	int A[N][P],B[P][M];
	for(int i=0;i<N;i++){
		for(int j=0;j<P;j++){
			cin>>A[i][j];
		}
	}
	for(int i=0;i<P;i++){
		for(int j=0;j<M;j++){
			cin>>B[i][j];
		}
	}
	int s=0;
	int C[N][M]={0};
	for(int i=0;i<N;i++){
		for(int j=0;j<M;j++){
			for(int t=0;t<P;t++){
			
			s+=A[i][t]*B[t][j];
		}
		C[i][j]=s;
		s=0;
		}
	}
	for(int i=0;i<N;i++){
		for(int j=0;j<M;j++){
			cout<<C[i][j]<<" ";
		}
		cout<<endl;
	}

}

7-4 疯狂星期四

分数 200

全屏浏览题目

切换布局

作者 ACM-CLUB

单位 东北大学秦皇岛分校

已知2022年10月11日是星期二

现在给定你一个日期,你需要计算当天是星期几。

输入格式:

一行三个整数M,D,Y,表示所求日期为:M月D日,Y年

1600≤Y≤2400,保证输入日期均为合法日期。

输出格式:

输出一个数字,表示当前是星期几。

如果星期天,则输出0。

输入样例1:

8 17 1926

输出样例1:

2

输入样例2:

2 29 1904

输出样例2:

1

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

 

from  import *
a,b,c=map(int,input().split())
theday=date(c,a,b)
print ((theday.weekday()+1)%7)

7-5 排列

分数 100

全屏浏览题目

切换布局

作者 ACM-CLUB

单位 东北大学秦皇岛分校

给你一个长度为n的排列p1​,p2​,p3​,...,pn​(1≤pi​≤n,且对于任意i=j,都有pi​=pj​)

再给你一个整数k,每次操作的定义如下:

选定一个下标j(1≤j≤n−k+1),记m=max{pj​,pj+1​,...,pj+k−1​},然后令pj​,pj+1​,...,pj+k−1​的值都等于m。

你需要使用最少的操作次数,使得p中所有元素的值都等于n。

输入格式:

第一行两个整数n,k (2≤n≤106,2≤k≤n)

接下来一行n个整数,用空格隔开,分别表示p1​,p2​,...,pn​

输出格式:

一行一个整数,表示最小的操作次数。

输入样例:

6 3
1 6 4 2 3 5

输出样例:

3

样例解释:

第一次操作选择:j=1,操作后p为:6 6 6 2 3 5

第二次操作选择:j=3,操作后p为:6 6 6 6 6 5

第三次操作选择:j=4,操作后p为:6 6 6 6 6 6

代码长度限制

16 KB

时间限制

1000 ms

内存限制

128 MB

#include<bits/stdc++.h>
using namespace std;
int main() {
	double n,k;
	cin>>n>>k;
	cout<<ceil((n-1)/(k-1));
}

 

7-6 小步点

分数 100

全屏浏览题目

切换布局

作者 ACM-CLUB

单位 东北大学秦皇岛分校

现在是跑步时间。

咖波需要依次经过地图上的五个点位才能完成任务,为了节省体力,他希望以最短的距离跑完这五个点位。

现在给出这五个点位的坐标,你需要帮咖波求出最短距离。(咖波可以从任意一个坐标开始跑步)

输入格式:

总共五行

第i行有两个整数xi​,yi​(−103≤xi​,yi​≤103),表示第i个点位的坐标值。

数据保证不存在坐标相同的点。

输出格式:

输出一个实数,表示最短的跑步距离(保留三位小数)

输入样例:

0 0
0 2
2 2
2 0
1 1

输出样例:

6.828

样例解释:

可选择从(0,0)点开始,依次经过(0,2),(1,1),(2,0),(2,2)

此时距离为:2+2​+2​+2=6.828,可以证明这是最短的路径。

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<bits/stdc++.h>
using namespace std;
double juli(double x1,double y1,double x2,double y2) {
	double d;
	d=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
	return d;
}
int main() {
	double x[5],y[5];
	double s=0;
	double min=999999;
	for(int i=0; i<5; i++) {
		cin>>x[i]>>y[i];
	}
	for(int i=0; i<5; i++) {
		s=0;
		for(int j=0; j<5; j++) {
			if(j!=i) {
				for(int h=0; h<5; h++) {
					if(h!=i&&h!=j) {
						for(int k=0; k<5; k++) {
							if(k!=i&&k!=j&&k!=h) {
								for(int g=0; g<5; g++) {
									if(g!=i&&g!=j&&g!=h&&g!=k) {
										s=juli(x[i],y[i],x[j],y[j])+juli(x[k],y[k],x[g],y[g])+juli(x[h],y[h],x[j],y[j])+juli(x[k],y[k],x[h],y[h]);
										if(s<=min)min=s;
									}
								}
							}

						}
					}
	
				}
	
			}
		}
	}
		printf("%.3f",min);


}

	

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值