广西大学“中国东信杯”第三届程序设计竞赛-新生组-部分题解

一、A+++++++++++

题目描述:

有一天,小西的好朋友Antinomy来到西大参观,发现校园里有两副巨大的画,一幅的标题是《创新》,一幅的标题是《创业》,但都是空白的。于是Antinomy问小西:“这两幅画应该是画的什么呀?”小西:“里面是正在从事创新或者创业的同学。”Antinomy:“什么是创新?”小西:“从事高水平科研技术研究和参加高水平学科竞赛,简单来说就是学术活动和技能训练。”Antinomy:“什么是创业?”小西:“基于行业实际发展情况和实时政治经济情况,在有限资本下创立可持续盈利且具有较大发展空间的活动。”小西:“至于为什么这两幅画是空白的,因为同学们都在参加创新创业竞赛。”

众所周知,创新创业类竞赛是我们学校人均参加的重量级竞赛,这一类别的竞赛在评奖评优或推免评比的考核中占据绝对性优势,即所谓的“A+”类竞赛。
但众所周知,之所以A+类竞赛是A+类竞赛,只是因为最高只能是这么多,现在Antinomy想知道,假设没有这个限制,给出竞赛名称冠名的Title集合,请求出这个竞赛的等级。
小西认为,对于给出的nnn个title中,每能组成一对<national,nternational><national,international><national,international>(也就是中国国际),那么竞赛的等级就可以在A的基础上增加一个+。

输入描述

输入第一行为测试用例T,接下来有T组测试数据每组测试用例第一行为一个整数n,表示有n个title,接下来n行每行一个字符串表示第i个title,title只可能是national或者international
1≤T≤100
3≤n≤10^4

输出描述

对于每组测试用例输出此时的竞赛等级

示例
输入

4
3
national
international
national
4
national
international
national
international
4
national
national
national
national
4
international
international
national
national

输出

A+
A++
A
A++

这题就是简单的统计national和international的数量,取两者最小值,即两者最多能组成多少对。

#include<iostream>
#include<string>
using namespace std;
int main ()
{
   
	int t;
	cin >> t;
	while ( t-- )
	{
   
		int n, book[2] = {
    0 };
		cin >> n;
		while ( n-- )
		{
   
			string arr;
			cin >> arr;
			if ( arr == "national" )
				book[0]++;
			if ( arr == "international" )
				book[1]++;
		}
		cout << "A";
		for ( int i = 1; i <= min ( book[0], book[1] ); i++ )
			cout << "+";
		cout << endl;
	}

	return 0;
}

二、GDP Carry

题目描述

小西和Antinomy又来到君武楼,这里正在做A+类竞赛校赛的答辩,他们偷偷翻了翻参加答辩的项目组的项目计划书,发现每个计划书都有日流水这样的指标,他们决定做一个游戏。现在有nnn个项目计划书,每个计划书上有一个日流水数字,将这nnn个日流水视为一个长度为nnn的序列fff,两人轮流操作,Antinomy先手,Antinomy每次需要把fff中非空的连续的一段移除,要求这一段的元素和需要为奇数;小西也每次需要把F中非空的连续的一段移除,但是这一段的元素和需要为偶数,如果轮到谁的时候无法操作下去那么这个人就判定为输。移除一段之后,原来这一段之前的部分和原来这一段之后的部分也视为连续。已知他们都会采取最优的策略,给出这nnn个日流水,请问最后谁会赢呢?

输入描述

第一行输入nnn,表示fff的长度,接下来一行nnn个整数分别表示f0,f1·······fn-1
3<=n<=10^6
1<=fi<=10^9

输出描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LOTRcsl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值