第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛

A.大学期末现状

题目描述

作为一名大学生的你,现在又到了期末查成绩的时候,当你的成绩大于等于60时请输出“jige,haoye!”,否则输出"laoshi,caicai,laolao"。

输入描述:

一行,一个整数x代表你的成绩(0<=x<=100)

输出描述:

一行字符串

示例1

输入

60

输出

jige,haoye!

代码:

#include <iostream>
using namespace std;

int main() {
	int x;
	cin >> x;
	if (x >= 60)
		cout << "jige,haoye!";
	else
		cout << "laoshi,caicai,laolao";
	return 0;
}

B.G1024

题目描述
        期末考试结束后,图灵杯出题组的几位同学卑微地留在校出题,但是由于疫情影响,他们不得不尽快乘坐G1024号火车离开学校 ,现在假设图灵杯出题组共nnn人,并且通过APP可以知道G1024在接下来kkk天的已购票数xxx,总票数mmm,现在Phenix想知道在所有人都一起上火车的前提下最早在第几天可以离开学校,如果无论怎样都无法离开请输出“G!”

输入描述:

        第一行两个整数n,kn,kn,k,表示出题组人数和天数(n,k<1000)(n,k<1000)(n,k<1000)

接下来kkk行,第iii行两个整数x,mx,mx,m表示接下来第iii天G1024的已购票数和总票数(0<=x<=m<1000)(0<=x<=m<1000)(0<=x<=m<1000)

输出描述:

一行,在所有人都一起上火车的前提下最早在第几天可以离开学校,如果不能离开请输出“G!”

示例1

输入

7 5
100 100
99 100
95 100
900 1000
0 1000

输出

4

代码:

#include <bits/stdc++.h>
using namespace std;
int n, k, ans;

int main() {
	scanf("%d%d", &n, &k);
	for (int i = 1; i <= k; i ++) {
		int x, y;
		scanf("%d%d", &x, &y);
		if (y - x >= n && !ans) {
			ans = i;
		}
	}
	if (ans)
		printf("%d\n", ans);
		puts("G!");
	return 0;
}

C.NEUQ

题目描述
        一天Phenix得到了一个长度为nnn的字符串,字符串仅由大写字母A~Z组成,现在Phenix想知道最少需要删除多少个字符使字符串变成NEUQNEUQ……这种由若干个"NEUQ"组成的形式。

输入描述:

第一行一个整数nn,表示字符串长度(n<=10^6n<=106)
第二行一个字符串

输出描述:

一个整数,表示最少需要删除的字符数量

示例1

输入

10
NEUUQNEUQQ

输出

2

示例2

输入

9
ILOVENEUQ

输出

5

代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;

char S[N], T[] = {'N', 'E', 'U', 'Q'};

int main() {
	int n;
	scanf("%d", &n);
	cin >> S;
	int cnt = 0, now = 0;
	for (int i = 0; i < n; i ++) {
		if (T[now] == S[i]) {
			now++;
			if (now == 4)
				cnt++, now = 0;
		}
	}
	printf("%d\n", n - 4 * cnt);
	return 0;
}

D.小G的任务

题目描述

Phenix在验完题目之后,觉得图灵杯里面的简单题太多了,不符合图灵杯考验算法编程能力的初衷,决定增加一道难度更大的题目,将出题的任务交给了小G 。

众所周知,小G的水平十分有限,目前无法原创难度大的题目,于是他打算去各大oj里面白嫖题目 。

目前小G能查询到的oj一共有nnn 个 , 对于第iii 个oj, 可以白嫖的难度合适题目数量我们定义为aia_iai​ ,aia_iai​ 的大小定义为 数字i 的各数位之和 。

例如  ,i=233,ai=2+3+3=8i = 233 , a_i = 2 + 3 + 3 = 8i=233,ai​=2+3+3=8。

 i=2048,ai=2+0+4+8=14i = 2048 , a_i = 2 + 0 + 4 + 8 = 14i=2048,ai​=2+0+4+8=14 。

现在给定 有nnn 个oj可以白嫖 , 小G想知道,最后他有多少个题目可以白嫖 。
即求∑i=1nai\sum_{i = 1}^{n} a_i∑i=1n​ai​。

 

输入描述:

一个正整数n <= 1000000n<=1000000

输出描述:

一个正整数表示有多少个题目可以白嫖

示例1

输入

9

输出

45

示例2

输入

99

输出

900

代码:

#include <cstdio>
#include <iostream>
using namespace std;
#define int long long
int sum ;
int n ;
int ans ;

signed main() {
	cin >> n ;
	for (int i = 1 ; i <= n ; ++i) {
		int x = i ;
		while (x)
			ans += x % 10, x /= 10 ;
	}
	cout << ans << endl ;
}

E.nn与游戏

题目描述
nn最近突然对做游戏非常感兴趣,于是他去找做游戏的xf询问相关话题,而xf此时正好在做一个游戏demo。
目前游戏中有一个n×nn\times nn×n大小的地图,里面有若干个可控制的己方单位、与己方单位同数量的敌对单位和一些障碍物。为了充分达成对各个单位的克制,玩家需要手动控制各个不同单位移动到自己所克制的敌对单位附近攻击。
现在xf将这样一个功能的实现强行塞给了nn:需要让玩家立刻了解到自己可控制的所有单位是否能绕过各个障碍移动到各自所克制的地方单位附近。
你能帮nn解决这个问题吗?

输入描述:

第111行输入nnn,mmm,代表该地图大小为n×nn\times nn×n,存在mmm个障碍。
第2∼m+12\sim m+12∼m+1行每行依次输入x,yx,yx,y,代表每个障碍的坐标位置。
第m+2m+2m+2行输入ttt,代表总共有ttt个可控制单位和ttt个敌对单位。
第m+3m+3m+3行往后每行依次输入x1,y1,x2,y2x_1,y_1,x_2,y_2x1​,y1​,x2​,y2​,(x1,y1)(x_1, y_1)(x1​,y1​)代表一个己方可控制单位的位置,(x2,y2)(x_2,y_2)(x2​,y2​)代表被其克制的敌对单位的位置(即该可控制己方单位的目标点)。
数据保证任何单位与障碍都不会出现重叠,地图的x,yx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白凤倚剑归

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值