zoukankan      html  css  js  c++  java
  • 又是矩阵 Uva上的一道 经典题目

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=20&page=show_problem&problem=1811

    不过我测试数据 第三组没过 估计是 取余这里错了

    代码还是  贴一下吧。。  到时候 再 贴ac代码

    #include<iostream>
    using namespace std;
    struct node{int p[100][100];};
    node a,b,c,f;
    int mod;
    node cheng(node a,node b,int n,int t,int m )
    {
        int i,j,k;
        node c;
        for(i=0;i<n;i++)
            for(j=0;j<m;j++)
            {
                int w;
                c.p[i][j]=0;
                for(k=0;k<t;k++)
                {
                    w=((a.p[i][k]%mod)*(b.p[k][j]%mod))%mod;
                    c.p[i][j]=(c.p[i][j]+w)%mod;
                }
            }
        return c;
    }
    
    
    void solve(__int64 n,int r,int q,int l)
    {
        while(n)
        {
            if(n%2==1)
                b=cheng(a,b,r,q,l);
            a=cheng(a,a,r,q,l);
            n/=2;
        }
    }
    
    int main()
    {
        int i,j,d;
        __int64 n;
        while(scanf("%d%I64d%d",&d,&n,&mod))
        {
            if(d==0&&n==0&&mod==0)
                break;
            for(i=0;i<d;i++)
                for(j=0;j<d;j++)
                {
                    if(i+1==j)
                        a.p[i][j]=1;
                    else if(i==d-1)
                        scanf("%d",&a.p[i][j]);
                    else a.p[i][j]=0;
                }
                for(i=0;i<d;i++)   //b为单位矩阵
                    for(j=0;j<d;j++)
                        if(i==j )  b.p[i][j]=1;
                        else b.p[i][j]=0;
                solve(n-d,d,d,d);
                for(i=0;i<d;i++)
                   scanf("%d",&f.p[i][0]);
                node temp;
                temp=cheng(b,f,d,d,1);
                if(n<=d)
                    printf("%d",f.p[n-1][0]);
                else 
                    printf("%d\n",temp.p[d-1][0]);
                //printf("  mod %d\n",mod);
        }
        return 0;
    }



  • 相关阅读:
    python两个类之间变量和函数的调用
    ubuntu远程桌面设置
    ROS节点分布式运行方法
    pandaboard串口通信调试
    linux下查看cpu使用情况
    树莓派LED指示灯说明
    python多线程实践小结
    关系模型关系模型
    栈和队列的应用
    栈和队列
  • 原文地址:https://www.cnblogs.com/assult/p/3109081.html
Copyright © 2011-2022 走看看