Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

终于AC了 够蛋疼.. 能做出此题的人 将来都是操作系统内核专家 : )

Posted by Glinn0v at 2011-12-11 01:15:09 on Problem 1025
/********************************************************/
/******************** 程序驱动核心 **********************/
/********************************************************/
    while(1)
    {
/***************** 读取当前时间每个人的行动 ********************/
        for(int i=1;i<=nAgentNum_Copy;i++)
        {
            if(nNextHour[i]==SysHour //判断下次行动时间是否与系统时间一致
                && nNextMin[i]==SysMin
                && nNextSec[i]==SysSec && bAgentExit[i]==false)
            {
                nCurrentActNum++; //当前行动人数增加1
                nCurrentAgentNum[nCurrentActNum]=i; //记录当前行动人的编号
                enCurrentAct[nCurrentActNum]=enNextAct[i]; //读取下次行动 存入当前行动
            }
        }
/****************** 分配当前行动 ************************/

        for(int i=1;i<=nCurrentActNum;i++)
        {
            int ID=nCurrentAgentNum[i];   //读取当前行动人ID
        /******************* 分析当前行动 分配下次行动 *******************/
            switch(enCurrentAct[i])
            {
                case StayInElevator:
                    {
                        nActNumSum[ID]++; //行动人的行动总数加1
                        SaveAction(ID,nActNumSum[ID],StayInElevator); //保存行动人当前的行动和时间
                        if(nCurrentFloor[ID]>nDestinFloor[ID])  //
                            nNextSec[ID]+=(nCurrentFloor[ID]-nDestinFloor[ID])*30;
                        else
                            nNextSec[ID]+=(nDestinFloor[ID]-nCurrentFloor[ID])*30;
                        nCurrentFloor[ID]=nDestinFloor[ID];
                        TimeAdjust(nNextHour[ID],nNextMin[ID],nNextSec[ID],nAgentDay[ID]);
                        if(nRoom[ID][nCurrentVisitNum[ID]+1]==0)//判断下次是继续进房还是没房进了
                            enNextAct[ID]=Exit;
                        else
                            enNextAct[ID]=ElevatorToRoom;
                        break;
                    }
                case RoomToRoom:

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator