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=1nai。
输入描述:
一个正整数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