| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:谁救救我下,我已经晕了POJ1059 Chutes and LaddersIn 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: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator