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

Re:谁救救我下,我已经晕了POJ1059 Chutes and Ladders

Posted by shuwen at 2011-05-22 08:03:54
In Reply To:谁救救我下,我已经晕了POJ1059 Chutes and Ladders Posted by:ZhouDL at 2011-05-22 04:08:01
> 谁能给出另外的一些测试数据;我不知道错在哪啊 总是WA??
> #include<iostream>
> #include<math.h>
> using namespace std;
> int main()
> {
> 	int *ramdom=new int[1000],square[101][2]={0},player[6][2]={0},players;
> 	
> 	//ramdom用于保存随即掷出的点数;player[1][0]=56,表示玩家i在第56号格子上;player[1][1]=1,表示玩家的
> 	//状态,0表示正常,1表示可多转一盘,-1表示下一句停一盘;square[][]前一个下标表示格子号,[][0]表示传
> 	//状态,存储下一个传送的格子号;[][1]表示当前格子的turn,0正常,1可以多掷一盘,-1减一盘。
> 	
> 	for(int i=0;i<1000;i++){		//输入随机数;	
> 		cin>>ramdom[i];
> 		if (ramdom[i]==0)
> 			break;
> 	}
> 	players=-1;					
> 	while(players!=0){
> 		cin>>players;							//输入参赛人数;
> 		if(players==0)							//玩家数为0时结束所有游戏;
> 			break;
> 		for(int square1,square2;;){				//初始化各个格子deliver状态;
> 			cin>>square1>>square2;
> 			if(square1==0 && square2==0)
> 				break;
> 			else
> 				square[square1][0]=square2;
> 		}
> 		for(int turn=0;;){						//初始化各个格子的turn状态;
> 			cin>>turn;
> 			if(turn==0)
> 				break;
> 			if(turn<0)
> 				square[(int)fabs((double)turn)][1]=-1;
> 			else
> 				square[turn][1]=1;
> 		}
> 		/*if(players==1){							//玩家数唯一时直接跳回;
> 			cout<<players<<endl;
> 			continue;
> 		}*/
> 
> 		int winner;
> 		for(int i=0,count=0;;i=(++i)%players){
> 			if(player[i][1]==-1)					//判断玩家状态;
> 				continue;
>   oncemore:
> 			if((player[i][0]+=ramdom[count])>100)	//判断玩家格子数不会超过100;
> 				player[i][0]-=ramdom[count];
> 
> 			if(square[player[i][0]][0]!=0)			//判断当前格子是否发生传送;
> 				player[i][0]=square[player[i][0]][0];
> 			if(square[player[i][0]][1]==1){			//当前格子turn=1;
> 				count++;
> 				goto oncemore;
> 			}
> 			else
> 				if(square[player[i][0]][1]==-1)		//当前格子turn=-1;
> 					player[i][1]=-1;
> 
> 			if(player[i][0]==100){					//决定胜利者;
> 				winner=i+1;
> 				break;
> 			}
> 			count++;
> 		}
> 		cout<<winner<<endl;
> 		
> 	}
> 	return 0;
> }
> 
> 
> 
> 
> 

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