• HDOJ 5344 MZL's xor 【math】


    HDOJ 5344 MZL’s xor 【math】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5344


    先按照规则生成数组
    之后是ai 与 aj 相加的结果依次异或
    建立求和矩阵
    相同的数异或结果为0 最后只保留对角线上的数
    即数组中的数的两倍
    注意运算时乘法的时候可能会溢出 使用 long long

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    typedef long long ll;
    int T, n, m, z, l;
    const int MAXN = 500005;
    int a[MAXN];
    ll sum;
    
    inline ll fun(int ai){
        return (ll)((ll)ai*m+z) % l;
    }
    
    void Input(){
        memset(a, 0, sizeof(a));
        scanf("%d%d%d%d", &n, &m, &z, &l);
        for(int i = 1; i < n; i++){
            a[i] = fun(a[i-1]);
        }
        for(int i = 1; i < n; i++){
            a[i] = a[i]*2;
        }
    //    for(int i = 0; i < n; i++){
    //        printf("%d	", a[i]);
    //    }
    }
    
    void Cale(){
        sum = 0;
        for(int i = 0; i < n; i++){
            sum = sum ^ a[i];
        }
        printf("%I64d
    ", sum);
    }
    
    int main(){
        scanf("%d", &T);
        while(T--){
            Input();
            Cale();
        }
    
        return 0;
    }
    

    标程

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<set>
    #include<map>
    #include<vector>
    #define rep(i,j,k) for(int i=(int)j;i<=(int)k;i++)
    #define per(i,j,k) for(int i=(int)j;i>=(int)k;i--)
    using namespace std;
    typedef long long LL;
    typedef double db;
    int main(){
        int T;scanf("%d",&T);
        while(T--){
            int ans=0;
            int pre=0;int m,n,z,l;
            scanf("%d%d%d%d",&n,&m,&z,&l);
            rep(i,2,n){
                pre=(pre*1ll*m+z)%l; // *1ll 转long long 防止溢出
                ans^=pre;
            }
            printf("%d
    ",ans<<1); // ai*2 == b(ai)+0
            // 0 ^ 0 == 0
            // 故 直接 b(ans)+0 即可
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    AutoFac学习笔记
    AutoMapper学习笔记
    ROSLYN 查看C#方法执行次数
    log4net 动态创建文件名
    WPF可切换按钮,iOS风格
    咕咕咕
    贪吃的小J
    UK Day15
    UK Day15
    UK Day15
  • 原文地址:https://www.cnblogs.com/miaowTracy/p/4836771.html
Copyright © 2020-2023  润新知