Codeforces Round #654 (Div. 2) 参与排名人数14349 本场比赛主要心思放在观摩高手如何打比赛,发现初中生真的很厉害。
[codeforces 1374A] Magical Sticks 棍子拼接
Problem
Lang
Verdict
Time
Memory
GNU C++17
Accepted
31 ms
200 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
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;
}