鱼C论坛

 找回密码
 立即注册
查看: 5505|回复: 1

一道算法问题 能帮我解决一下吗?

[复制链接]
发表于 2011-7-10 21:41:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一道ACM里面的题目 先给个传送门http://poj.org/problem?id=1282
他老是说我wrong answer  有木有人耐心的帮我看看问题...?  
我输入了2组数据显示正确 了啊。。。。。
下面是我的代码

#include<iostream>
using namespace std;

int num;    //定义一共多少个房间
int size;  //门里面圆盘上有多少个格子
int ix;    //当前格子指向 ix=0为最初指向 每ix+1  相当于圆盘转一下
int count=0;
struct A           //定义一个房间类
{
        int x;           //它有自己的编号
        struct A **p;    //这是原盘
        void Init(int s,A * pa)  //初始化  s其实就是size  pa是房间的头指针
        {   int buffer;       //跑堂的
                p=new A*[s];       //原盘有了
                for(int i=0;i<s;i++)
                {
                        cin>>buffer;   //输入数据  表示每个原盘上的格子所指向的房间
          p[i]=pa+buffer-1;   //输入数据  表示每个原盘上的格子所指向的房间

                }



        }




};

struct P         //定义人类
{                  //人类 有他自己的编号
        int x;
        A *p;           //人可以指向一个房间


};


int fx(int a,int b)
{int last=a;
int begin=b;
        int r;

while(b!=0)
{r=a%b;
a=b;
b=r;}
return last*begin/a;
}                  //算公倍数的函数



int get(A *pa,P *pp,int sum)
{


        pp->p=pp->p->p[ix];

count=1;

        while(pp->x!=pp->p->x&&count<100000000)
        {  ix++;
                ix=ix%size;
                pp->p=pp->p->p[ix];
       
               
                count++;
//cout<<pp->p->x<<" "<<pp->x<<endl;

        }                       //这个就是算法  获得某一个人再次回到同一房间所要的次数
if(count>=100000000) return 1000000000;
else return fx(sum,count);  //求出与先前一个sum公倍数


}           





int main()
{

int sum=1;

cin>>num;
cin>>size;
ix=0;
A *pa=new A[200];
P *pp=new P[200];
for(int i=0;i<num;i++)
{(pa+i)->Init(size,pa);
   (pp+i)->p=(pa+i);
   (pp+i)->x=i;
   (pa+i)->x=i;
}   //初始化

for(int ip=0;ip<num;ip++)
{ix=0;        sum=get(pa,pp+ip,sum);
if(sum>=1000000000)break;  


}
if(sum!=1000000000)cout<<sum<<endl;
else cout<<"No one knows."<<endl;



        return 0;
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-11 00:10:15 | 显示全部楼层
米有人啊- -  :L
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 12:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表