69 条题解

  • 0
    @ 2007-07-03 12:58:42

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 351ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:351ms

    最后一个点如何0ms??

  • 0
    @ 2006-09-01 20:08:52

    这个运算满足结合律。因此可以用类似O(logn)的计算数的n次幂的算法来运算。

  • 0
    @ 2006-03-28 12:30:16

    先将k转为m进制的数 然后构造一个与每一位m进制数相对应的结果的表 再通过叠加就可以得到解

    由于不会什么群论 矩阵 这个方法倒还是可以

  • 0
    @ 2006-01-27 11:40:08

    似乎矩阵快速求幂要比用置换群快...

    不过 其实 置换群似乎也有N次幂的阿...

  • 0
    @ 2006-01-22 16:20:00

    根据数据特点,可以采用矩阵乘法解决(当然用群论知识求出环也可)。

  • -1
    @ 2017-11-18 21:28:15

    哈哈哈,水好喝

    #include <iostream>
    #include<cstdlib>
    #include<cstdio>
    #include<map>
    #include<vector>
    #include<cstring>
    #include<algorithm>
    #define FOR(i,x,y) for(i=x;i<=y;++i)
    #define maxa 1000
    using namespace std;
    int a[10][100];
    int p[100],n,q[100];
    bool check()
    {
        int i;
        FOR(i,0,n-1)
        {
            if(p[i]!=i+1)
                return false;
        }
        return true;
    }
    int main()
    {
        int m,k;
        int i,j,t;
        cin>>n>>m>>k;
        FOR(i,0,m-1)
        FOR(j,0,n-1)
        {
            cin>>a[i][j];
        }
        FOR(i,0,n-1)
        p[i] =i+1;
        int flag = 0;
        T:FOR(t,0,k-1)
        {
    
            FOR(i,0,n-1){
              // cout<<t<<" "<<m<<" "<<i<<endl;
            q[i] = p[a[t%m][i]-1];
            //cout<<q[i]<<endl;
            }
            FOR(i,0,n-1){
            p[i] = q[i];
            //cout<<p[i]<<" ";
            }
            //cout<<endl;
            //cout<<endl;
            if(check()&&t%m==(m-1)){
                flag = 1;
                break;
            }
        }
        if(flag)
        {
            k = k%(t+1);
            flag =0;
            goto T;
        }
        FOR(i,0,n-1)
        cout<<p[i]<<" ";
        return 0;
    }
    
    
  • -1
    @ 2017-08-09 12:00:40

    矩阵乘法

  • -1
    @ 2013-02-16 10:16:52
  • -1
    @ 2009-09-23 22:01:25

    找周期T,然后再做p%T

信息

ID
1049
难度
5
分类
组合数学 点击显示
标签
递交数
1460
已通过
497
通过率
34%
被复制
13
上传者