hdu 5344 MZL's xor(数学之异或)

Problem Description

MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to know the xor of all (Ai+Aj)(1≤i,j≤n)
The xor of an array B is defined as B1 xor B2...xor Bn

Input

Multiple test cases, the first line contains an integer T(no more than 20), indicating the number of cases.
Each test case contains four integers:n,m,z,l
A1=0,Ai=(Ai−1∗m+z) mod l
1≤m,z,l≤5∗105,n=5∗105

Output

For every test.print the answer.

Sample Input

2
3 5 5 7
6 8 8 9

Sample Output

14
16

Source

2015 Multi-University Training Contest 5

找到了规律就好办了,发现对称性,相同的数异或后等于0,所以最后剩下自身*2来异或,注意要用long long

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<queue>
 6 #include<cmath>
 7 #include<stdlib.h>
 8 #include<map>
 9 using namespace std;
10 #define ll long long
11 #define N 600000
12 ll n,m,z,l;
13 ll a[N];
14 int main()
15 {
16     int t;
17     scanf("%d",&t);
18     while(t--){
19         scanf("%I64d%I64d%I64d%I64d",&n,&m,&z,&l);
20         a[1]=0;
21         for(int i=2;i<=n;i++){
22             a[i]=(a[i-1]*m+z)%l;
23         }
24         ll ans=0;
25         for(int i=1;i<=n;i++){
26             ans=ans^(a[i]+a[i]);
27         }
28         printf("%I64d\n",ans);
29     }
30     return 0;
31 }

hdu 5344 MZL's xor(数学之异或)

时间: 2024-10-14 18:05:08

hdu 5344 MZL's xor(数学之异或)的相关文章

HDU 5344 MZL&#39;s xor (多校)[补7月28]

MZL's xor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 249    Accepted Submission(s): 187 Problem Description MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to k

hdu 5344 MZL&#39;s xor

MZL's xor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 911    Accepted Submission(s): 589 Problem Description MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to k

HDU 5344 MZL&#39;s xor(水题)

MZL's xor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 456    Accepted Submission(s): 322 Problem Description MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to

HDU 5344(MZL&amp;#39;s xor-(ai+aj)的异或和)

MZL's xor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 800    Accepted Submission(s): 518 Problem Description MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to

hdoj 5344 MZL&#39;s xor

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5344 1 #include<stdio.h> 2 #include<cstring> 3 const int MAXN = 500010; 4 int A[MAXN]; 5 void bas( int n, int m, int z, int l){ 6 for( int i = 1;i < n; ++i){ 7 A[i] = ( (long long)A[i-1]*m + z

多校-HDU 5351 MZL&#39;s Border 数学

f[1] = 'b', f[2] = 'a', f[i] = f[i - 1] + f[i - 2] 斐波那契数列的字符串,给你n和m,前m位中,最长的前缀等于后缀的长度是多少.1≤n≤1000, 1≤m≤length(f[n]) 规律题,虽然我不知道为什么. 1 import java.io.*; 2 import java.util.*; 3 import java.math.*; 4 public class Main{ 5 //Scanner cin = Scanner(System.i

hdu 5344 (多校联赛) MZL&#39;s xor --- 位运算

here:    首先看一下题吧:题意就是让你把一个序列里所有的(Ai+Aj) 的异或求出来.(1<=i,j<=n) Problem Description MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to know the xor of all (Ai+Aj)(1≤i,j≤n) The xor of an array B is defined as B1 xor B2...xor B

HDU 5344(2015多校5)-MZL&#39;s xor(水题)

题目地址:HDU 5344 题意:求所有(Ai+Aj)的异或值. 思路:可以发现(Ai+Aj)和(Aj+Ai)的异或值为0,所以最后只剩下(Ai+Ai). #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #include <algorithm>

HDU5344——数学题——MZL&#39;s xor

MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to know the xor of all (Ai+Aj)(1≤i,j≤n)The xor of an array B is defined as B1 xor B2...xor Bn Input Multiple test cases, the first line contains an integer T(no more than 20