【2012百度之星/资格赛】B:小诺爱USB设备

本文介绍了一个USB设备迷面对ThinkPad X系列笔记本仅有一个USB接口的问题,通过使用USB Hub来扩展接口数量,解决多个USB设备同时连接的需求。文章提供了一段C++代码,用于计算在给定数量和类型的USB Hub条件下,最多可以连接多少个USB设备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间限制:
1000ms
内存限制:
65536kB
描述

在百度工作的小诺是一个USB设备迷,在他桌上有一堆的USB设备——USB鼠标、USB小音箱、USB按摩器……但是,公司配给小诺的ThinkPad X系列的电脑只有一个能用的USB接口。不过还好,小诺有一堆的USB Hub,可以把一个可用的USB接口变成多个USB接口。但是,小诺很难确定这些USB Hub能否满足他他众多的USB设备的需求。

输入
输入首行包括一个整数N(1 ≤ N ≤ 20),表示测试数据组数。接下去的N行,每行包括一组测试数据。每组测试数据行以一个整数K开头(1 ≤ K ≤ 10),表示这组测试数据提供的USB Hub的数量;紧接着,在同一行,有K个整数(每两个整数之间由一个空格分隔开),{M 1,M 2…M i…M K}(2 ≤ M i≤ 10),每个整数表示了这个USB Hub能将一个USB接口数变成的多个USB接口的数量。
输出
针对每组测试数据输出一个结果,表示小诺用这组提供的USB Hub后,能最多使用的USB设备的数量。每个输出占一行。
样例输入
3
2 2 2
3 3 2 4
6 2 2 2 3 4 5
样例输出
3
7
13

实现代码:

#include<iostream>
#include<cstdio>
using namespace std;
int main(void)
{
	int port,usb,t,k,i;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&k);
		usb = 0;
		for(i = 0 ; i < k ; ++i)
		{
			scanf("%d",&port);
			usb += port;
		}
		usb -= (k-1);
		printf("%d\n",usb);
	}
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值