HDU5344 MZL's xor

本文分享了一位程序员在解决特定编程问题时的挣扎经历,包括理解异或运算、处理数据和避免常见错误的过程。通过实例解析,强调了正确解读题意、避免混淆测试案例的重要性,以及在复杂数据处理中使用合适的数据类型(如 longlong 或 __int64)的必要性。此外,文章还提供了解决类似问题的策略和技巧,帮助开发者在面对挑战时保持冷静,有效解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先做这道题这是够折腾的、足足提交了15次才总算AC了。。。

由于英语不好,理解题意时就出错了。题目原意是说将1~n范围内所有  B1  xor  B2 ...全部异或、结果我却被( Ai + Aj )给误导了。傻傻地将他们两两求和和再进行异或

运算,结果就是很无情的WA了。。。我却还不知道怎么错了!还是英语太差啊。。。

好不容易搞懂题意,结果又被卡了数据。一道水题愣是折腾的我不要不要的!

由于a[i]+a[j]和a[j]+a[i]是相同的,异或值为0,所以真正有最后的结果还需要乘2。。。

总算明白了:以后做题千万不能光被测试实例迷了。用longlong  或__int64  就对了!

MZL's xor

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 816    Accepted Submission(s): 531


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 )( 1i,jn )
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=(Ai1m+z)   mod   l
1m,z,l5105 , n=5105
 

Output
For every test.print the answer.
 

Sample Input
  
2 3 5 5 7 6 8 8 9
 

Sample Output
  
14 16
 

Author
SXYZ
 

Source
 

Recommend
wange2014   |   We have carefully selected several similar problems for you:   5421  5420  5419  5418  5417 
#include <stdio.h>  
#include <set>  
using namespace std;
long long n, m, z, l;

int main()
{
    int t;
    scanf("%d", &t);
    while (t--)
    {
        scanf("%lld%lld%lld%lld", &n, &m, &z, &l);
        long long a = 0;
        long long k = 0;
        for (int i = 2; i <= n;i++)
        {
            k = (k *m + z) % l;
            a ^= (2 * k);
        }
        printf("%lld\n",a);
    }
    return 0;
}


510 5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值