• HDU 4951 Multiplication table(2014 Multi-University Training Contest 8)


    思路   如果进制为p    那么当x<p时 (p-1)*(p-x)=(p-(x+1))  *p +x     因为x<p  所以没有进位  所以高位上的数字为    p-(x+1)。

     根据上面所述。 只要我们能找出 p-1   那么我们根据(p-1)*(p-1)的高位为p-2 就能找出p-2 。找出p-2根据  (p-1)*(p-2)的高位为(p-3) 就能找出p-3.。。。。任务就转化成找出p-1。 我们会发现 从0-(p-2)  都会出现在高位。唯有p-1不会出现。那么就知道要出高位没出现过的数字  就为p-1    那么问题就解决了。由于题目有说读入数据量很大,可以加个读入优化。

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    #include<vector>
    #include <iostream>
    using namespace std;
    int ans[510];
    bool bo[510];
    int a[510][1020];
    inline int ReadInt()//优化接受int数,省时间,具体内容自己看懂,当成模板使用
    {
        char ch = getchar();
        int data = 0;
        while (ch < '0' || ch > '9')
            ch = getchar();
        do
        {
            data = data * 10 + ch - '0';
            ch = getchar();
        } while (ch >= '0' && ch <= '9');
        return data;
    }
    int s[505][505];
    int main() {
        int p,ri=0;
        while(scanf("%d",&p)&&p)
        {
            for(int i=0;i<p;++i)bo[i]=false;
            for(int i=0;i<p;++i)
            {
                for(int j=0;j<2*p;++j)
                {
                    a[i][j]=ReadInt();
                    if(!(j&1))
                    {
                        s[i][j>>1]=a[i][j];
                        bo[a[i][j]]=true;
                    }
                }
            }
            for(int i=0;i<p;++i)
                if(!bo[i])
                {
                    ans[p-1]=i;
                    break;
                }
            int pre=ans[p-1];
            for(int i=p-2;i>=0;--i)
            {
                ans[i]=s[ans[p-1]][pre];
                pre=ans[i];
            }
            printf("Case #%d:",++ri);
            for(int i=0;i<p;++i)
                printf(" %d",ans[i]);
            puts("");
        }
        return 0;
    }
  • 相关阅读:
    为什么你不会redis分布式锁?因为你没看到这篇文章
    JavaScript最佳做法—创建对象
    js构造函数的定义
    作用域和闭包
    js中的call()和apply()的区别
    3种方法快速查找两个数组是否在Javascript中包含任何公共项
    JavaScript继承的6种方式以及它们的优缺点
    JS常见的内存泄漏及可用的解决方法
    Vuex简单入门
    如何使用HTML和CSS为背景创建Wave图片?
  • 原文地址:https://www.cnblogs.com/L-Ecry/p/3913561.html
Copyright © 2020-2023  润新知