yzl_rex

对于算法,我只是一个草民!

zoj 1730 Crazy Tea Party

//水题不水啊!
/*类似冒泡程序
 如果所有人是线性排列,那我们的工作就是类似冒泡程序做的工作:1,2,3,4,5变为5,4,3,2,1 ,耗时n(n-1)/2
 但是出现了环,也就是说1,2,3,4,5变为3,2,1,5,4也可满足条件  
我们可以把这个环等分成两个部分 ,每个部分看成是线性的,再把它们花的时间加起来.
 当n是偶数时, 每份人数n/2 ,即 2*(n/2 )*(n/2 -1)/2;
 当n是奇数时,两份的人数分别是n/2和n/2+1,即(n/2)*(n/2 -1)/2 + (n/2 +1)*(n/2)/2
	 */
#include "iostream"
using namespace std;

int main()
{
	int testcase, i, num, minutes;
	cin >> testcase;
	for (i = 0; i < testcase; i++)
	{
		cin >> num;
		minutes = 0;
		if (num % 2 == 0)
		{
			minutes = 2 * (num / 2) * (num / 2 - 1) / 2;
		}
		else
		{
			minutes = (num / 2) * (num / 2 - 1) / 2 + (num / 2 + 1) * (num / 2) / 2;
		}
		cout << minutes << endl;
	}
}

阅读更多
文章标签: 工作
个人分类: ZOJ
上一篇zoj 1751 When Can We Meet?
下一篇zoj 2481 Unique Ascending Array
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭