2022NEUQ-ACM招新赛

本蒟蒻第一次发文章,有不对的地方望大佬轻喷QWQ

1.WIN

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

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

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

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

否则输出:?

输入格式:

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

输出格式:

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

输入样例1:

NEU

输出样例1:

Win

输入样例2:

THU

输出样例2:

Lose

输入样例3:

KFC

输出样例3:

?

 这个题就比较水了,直接上AC代码

#include
using namespace std;
int main()
{string str;while (cin >> str){if (str == "NEU") cout << "Win";else if (str == "THU") cout << "Lose";else cout << "?";}return 0;
}

2.比大小

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

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

输入样例:

5
9 10
114514 1919
999 99
131 131
1314 520

输出样例:

>
<
>
=
<

 把题目给的两个数据当成数组存起来那这道题就相当于是从数组的第一个字符开始一个个比较大小,而我们的cstring头文件正好有一个函数可以帮我们做这个事情,方法有了,AC代码就出来惹

#include
#include
using namespace std;int main()
{char a[12],b[12];int T;cin >> T;for(int i = 0;i < T;i++){cin >> a;cin >> b;if(strcmp(a,b) > 0) cout << '>' < 0) ? (a - sum) : 0) + (((b - sum) > 0) ? (b - sum) : 0);if (free >= m)cout << a + b;elsecout << a + b - m + free;return 0;
}

 8.漏子文

有意避免使用某个或某几个特定字母的写成的文章称漏字文(英语lipogram,希腊语lipagrammatos,意为“失踪的字母”),漏字文可能在写作或文字游戏中出现。公元前5世纪希腊诗人里斐奥多鲁斯(Tryphiodorus)写的24卷史诗中,每一卷都省略希腊字母中的一个不同字母。

现在给你一段仅由空格和小写字母组成的字符串,请你找出其中最长的一段连续的漏字文,并输出漏字文的长度(即该段文字中字母的个数)。

输入格式:

输入共两行。
第一行一个数N(1≤N≤105),表示有N个由小写字母组成的单词。
第二行是一个字符串,有N个长度不超过10的单词,每个单词间用一个空格隔开。

输出格式:

一个整数,表示漏字文的长度。

输入样例:

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

9
the quick brown fox jumps over the lazy dog

输出样例:

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

32

样例解释

“the quick brown fox jumps over the lazy dog”包含了所有的字母。
其中最长的漏字文是“the quick brown fox jumps over the lazy”,长度是32(即里面有32个字母)。这段文字没有字母d和g,符合漏字文的条件。

这个题漏了点条件,最长的漏字文应该是连续的,不是整个输入去掉漏字的单词,比如

the quick brown fox jumps over the lazy

 这段话漏掉t答案应该是22(quick brown fox jumps over)而不是26(quick brown fox jumps over lazy)

那么基本思路就是从a到z遍历然后一个个漏掉取最大值,代码实现如下

#include 
#include 
using namespace std;struct o
{int len;char a[15];
};bool is(o ob, char z)
{int n = 0;for (int i = 0; i <= ob.len-1; i++){if (ob.a[i] == z)n++;}return n;
}int main()
{int n, ma = 0, le = 0;o arr[100000];cin >> n;for (int i = 0; i <= n-1; i++){cin >> arr[i].a;arr[i].len = strlen(arr[i].a);}for (int i = 'a'; i <= 'z'; i++){for (int j = 0; j <= n-1; j++){if (is(arr[j], i)){ma = (ma > le) ? ma : le;le = 0;continue;}elsele += arr[j].len;}ma = (ma > le) ? ma : le;le = 0;}cout << ma;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部