zoukankan      html  css  js  c++  java
  • hdu 6129 Just do it 找规律

    题意很好理解

    问你一个数组 按照他的规则处理m次之后是什么样的

    看到这道题我一开始也没什么思路

    但是我列了五个数

    把它们m≤4的都算出来之后发现

    如果m把化成二进制的这一位是1

    那么所有相隔是这一位数大小的数都要异或起来

    然后模拟就好了

    (题解中给出了相应的推导证明)

     1 #include<bits/stdc++.h>
     2 #define cl(a,b) memset(a,b,sizeof(a))
     3 #define debug(a) cerr<<#a<<"=="<<a<<endl
     4 using namespace std;
     5 typedef long long ll;
     6 typedef pair<int,int> pii;
     7 
     8 const int maxn=2e5+10;
     9 
    10 int n,m;
    11 int a[maxn];
    12 
    13 void solve()
    14 {
    15     int bits=1;
    16     while(bits*2<=m) bits*=2;
    17     while(m)
    18     {
    19         while(m>=bits)
    20         {
    21             for(int i=bits; i<n; i++) a[i]^=a[i-bits];
    22             m-=bits;
    23         }
    24         bits/=2;
    25     }
    26 }
    27 
    28 int main()
    29 {
    30     int T;
    31     scanf("%d",&T);
    32     while(T--)
    33     {
    34         scanf("%d%d",&n,&m);
    35         for(int i=0; i<n; i++)
    36         {
    37             scanf("%d",&a[i]);
    38         }
    39         solve();
    40         for(int i=0; i<n; i++)
    41         {
    42             printf("%d%c",a[i],i==n-1?'
    ':' ');
    43         }
    44     }
    45     return 0;
    46 }/*
    47 
    48 2
    49 1 1
    50 1
    51 3 3
    52 1 2 3
    53 
    54 */
  • 相关阅读:
    Joda-Time 简介
    SimpleDateFormat 的线程安全问题
    SimpleDateFormat 的线程安全问题
    自定义类加载器
    自定义类加载器
    javap与 i++,++i
    javap与 i++,++i
    I/O模型
    I/O模型
    逻辑运算符(上) ---没用
  • 原文地址:https://www.cnblogs.com/general10/p/7380607.html
Copyright © 2011-2022 走看看