在ACM程序设计竞赛赛场,每个队伍每正确解答一道题目后就会在其前面升起1个彩色气球。为了增加比赛的气氛,也为了选拔优秀选手参加5月份的省赛,所以,我们也来让气球升起来吧。估计题目的难度并结合实际,需要购买8种不同颜色的气球。每种颜色的气球只能用于一道题目上,所以气球不能相互替代。现在告诉你上面所说的各色气球需要的个数,对应各色气球现在已有的气球个数,请你统计总共还要购买多少个气球。 输入格式: 测试数据有多组,先输入测试组数T(1<=T<=20)。然后输入T组测试数据。 每组测试的第一行是8种各色气球需要的个数(都是小于1000的正整数),第二行是8种各色气球已有的个数(都是小于1000的正整数)。 输出格式: 对于每组测试,在一行上输出还需要购买的气球总数。
时间: 2023-06-20 13:09:34 浏览: 213
题目描述
在ACM程序设计竞赛赛场,每个队伍每正确解答一道题目后就会在其前面升起1个彩色气球。为了增加比赛的气氛,也为了选拔优秀选手参加5月份的省赛,所以,我们也来让气球升起来吧。估计题目的难度并结合实际,需要购买8种不同颜色的气球。每种颜色的气球只能用于一道题目上,所以气球不能相互替代。现在告诉你上面所说的各色气球需要的个数,对应各色气球现在已有的气球个数,请你统计总共还要购买多少个气球。
输入格式:
测试数据有多组,先输入测试组数T(1<=T<=20)。然后输入T组测试数据。
每组测试的第一行是8种各色气球需要的个数(都是小于1000的正整数),第二行是8种各色气球已有的个数(都是小于1000的正整数)。
输出格式:
对于每组测试,在一行上输出还需要购买的气球总数。
样例输入
2
10 2 4 3 6 7 7 5
6 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
样例输出
27
8
算法1
(暴力枚举) $O(n)$
根据题目所说,每种颜色的气球只能用于一道题目上,所以气球不能相互替代。因此,对于每种颜色的气球,需要买的数量等于需要的数量减去已经有的数量。
时间复杂度
每组数据需要遍历8次,因此时间复杂度为$O(8T)$,即$O(T)$。
空间复杂度
只需要常数个变量,空间复杂度为$O(1)$。
C++ 代码
算法2
(暴力枚举) $O(n)$
blablabla
时间复杂度
blablabla
空间复杂度
blablabla
C++ 代码
相关问题
c语言 参加ACM/ICPC比赛时,每支队伍有题目AC就会得到一只气球,题号与对应的气球颜色如下表所示。 编写程序,输入一支队伍所得到的所有气球颜色,请输出他们AC的题号。
好的,这是一个简单的问题,以下是解决方案:
```c
#include <stdio.h>
#include <string.h>
int main() {
char colors[50];
fgets(colors, 50, stdin); // 从标准输入读入颜色字符串
int len = strlen(colors);
for(int i = 0; i < len; i++) {
if(colors[i] == 'B') printf("%d ", i+1);
else if(colors[i] == 'G') printf("%d ", i+11);
else if(colors[i] == 'R') printf("%d ", i+21);
else if(colors[i] == 'Y') printf("%d ", i+31);
}
return 0;
}
```
这个程序首先从标准输入读入一支队伍获得的所有气球的颜色,然后根据颜色输出对应的题号。其中,'B'表示蓝色,'G'表示绿色,'R'表示红色,'Y'表示黄色。题号的计算方式是,如果是蓝色,题号为i+1;如果是绿色,题号为i+11;如果是红色,题号为i+21;如果是黄色,题号为i+31。最后,程序输出所有AC的题号。
注意,这个程序假设输入的颜色字符串长度不超过50个字符。如果需要处理更长的字符串,需要修改程序。
acm程序设计竞赛基础教程(第2版 ) pdf
《ACM程序设计竞赛基础教程(第2版)》是一本经典的程序设计竞赛教材,旨在帮助学习者掌握ACM程序设计竞赛的基础知识和解题技巧。
该教材以清晰简明的语言详细介绍了ACM竞赛所需的基本知识,包括数据结构、算法设计与分析、动态规划、图论等。同时,它提供了大量的例题和习题,帮助学习者巩固知识,培养解题能力。
与其他类似的教材相比,这本教材具有以下几个特点:
首先,该教材内容全面,不仅介绍了ACM竞赛中常见的基础知识,还涵盖了一些高级内容。通过学习这本教材,学习者能够建立起扎实的程序设计基础,为进一步深入学习和应用打下坚实的基础。
其次,该教材注重实战,提供了大量的例题和习题。这些题目都是经过精心挑选和设计的,能够帮助学习者理解和掌握各种解题技巧。通过反复练习,学习者能够逐渐提高自己的编程水平和解题能力。
最后,该教材配有详细的讲解和解答,帮助学习者更好地理解和掌握知识点。无论是初学者还是有一定基础的学习者,都可以根据自己的情况选择性地学习和提升。
《ACM程序设计竞赛基础教程(第2版)》是一本值得推荐的优秀教材,它不仅适用于参加ACM竞赛的学生,也适用于对算法和程序设计感兴趣的人。通过学习这本教材,学习者能够提高自己的编程能力,锻炼解决问题的思维方式,为将来的学习和工作打下良好的基础。