[codeforces 1371A] Magical Sticks 棍子拼接

Codeforces Round #654 (Div. 2)   参与排名人数14349   本场比赛主要心思放在观摩高手如何打比赛,发现初中生真的很厉害。

[codeforces 1371A]    Magical Sticks   棍子拼接

总目录详见https://blog.csdn.net/mrcrack/article/details/103564004

在线测评地址http://codeforces.com/contest/1371/problem/A

ProblemLangVerdictTimeMemory
A - Magical Sticks GNU C++17Accepted31 ms200 KB

题目大意:给定n根长度介于[1,n]的棍子,可以将棍子进行拼接,要求处理后,长度相同的棍子数量最多。输出这个最多的数量。

样例模拟如下:

1

1
拼接前(1)
拼接后,只有1根(1),输出雷同的1根

2

1
拼接前(1,2)
拼接后,只有1根(3),输出雷同的1根

3

2
拼接前(1,2,3)
拼接后,只有2根(1+2=3,3),输出雷同的2根


4

2
拼接前(1,2,3,4)
拼接后,只有3根(2,1+2=4,4),输出雷同的2根


5

3
拼接前(1,2,3,4,5)
拼接后,只有3根(1+4=5,2+3=5,5),输出雷同的3根


6

3
拼接前(1,2,3,4,5,6)
拼接后,只有4根(3,1+5=6,2+4=6,6),输出雷同的3根

7

4
拼接前(1,2,3,4,5,6,7)
拼接后,只有4根(1+6=7,2+5=7,3+4=7,7),输出雷同的4根


8

4
拼接前(1,2,3,4,5,6,7,8)
拼接后,只有4根(1+7=8,2+6=8,3+5=8,8),输出雷同的4根

这些例子举完,规律也就出来了,请看以下AC代码:

#include <stdio.h>
int main(){
	int t,n,i,ans;
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		ans=(n-1)/2+1;
		printf("%d\n",ans);
	}
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值