zoukankan      html  css  js  c++  java
  • HDU 1214 圆桌会议

    圆桌会议

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 1914    Accepted Submission(s): 1319


    Problem Description
    HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU ACM集训队特有的圆桌会议,有一天你也可以进来体会一下哦:),在一天在讨论的时候,Eddy想出了一个极为古怪的想法,如果他们在每一分钟内,一对相邻的两个ACM队员交换一下位子,那么要多少时间才能得到与原始状态相反的座位顺序呢?(即对于每个队员,原先在他左面的队员后来在他右面,原先在他右面的队员在他左面),这当然难不倒其他的聪明的其他队友们,马上就把这个古怪的问题给解决了,你知道是怎么解决的吗?
     
    Input
    对于给定数目N(1<=N<=32767),表示有N个人,求要多少时间才能得到与原始状态相反的座位顺序(reverse)即对于每个人,原先在他左面的人后来在他右面,原先在他右面的人在他左面。
     
    Output
    对每个数据输出一行,表示需要的时间(以分钟为单位)
     
    Sample Input
    4 5 6
     
    Sample Output
    2 4 6
    /*
    解题思路:
    	如果是所有人排列成一条直线,那么移动的思想与冒泡排序一样,总共需要n*(n-1)/2种方法,
    	求环形的逆序变换最小时间,因为环形是相互连接的,那么只要将n划分为最接近的两个直线,
    	当这两个划分的直线逆序了。那么整条环形便也逆序了。
    
    	圆桌移动要分成两段,证明很简单见:http://blog.csdn.net/lulipeng_cpp/article/details/7609259
    */
    //以后要多做一些数学相关的题目,脑子现在越来越不好使了。。。。
    #include<stdio.h>
    int main()
    {
    	int n,a;
    	while(~scanf("%d",&n))
    	{
    		a=n/2;
    		n-=a;
    		printf("%d\n",a*(a-1)/2+n*(n-1)/2);
    	}
    	return 0;
    }
    

      

    功不成,身已退
  • 相关阅读:
    不可小视视图对效率的影响力
    Maximum Margin Planning
    PhysicsBased Boiling Simulation

    Learning Behavior Styles with Inverse Reinforcement Learning
    Simulating Biped Behaviors from Human Motion Data
    Nearoptimal Character Animation with Continuous Control
    Apprenticeship Learning via Inverse Reinforcement Learning
    回报函数学习的学徒学习综述
    Enabling Realtime Physics Simulation in Future Interactive Entertainment
  • 原文地址:https://www.cnblogs.com/dongsheng/p/2683956.html
Copyright © 2011-2022 走看看