#15140: 不懂哪裡有問題...


2qbingxuan (程式初學者)

學校 : 臺北市立建國高級中學
編號 : 58274
來源 : [114.32.125.176]
最後登入時間 :
2024-04-01 20:23:17
c683. 機遇之池 | From: [223.140.226.160] | 發表日期 : 2018-09-15 21:39

/*

    如題,不大懂XOR加哪才對

    怎麼試都和範例測資不合...

*/

 

#include <iostream>
#include <bitset>

using namespace std;

void f(uint32_t &x, uint32_t &c, uint32_t d) {
    for (int k = 0; k < 16; ++k) {
        c += ((x << k) | (x >> (32 - k))) / d;
        c += ((x >> k) | (x << (32 - k))) / d;
        x += c * 2654435761lu;
        //cout << '\t' << "k = " << k << ",x = " << x << endl;
    }
}

int main(){
    uint16_t n, m;
    uint32_t s[10001] = {}, x, last = 0, c = 0;
    cin >> n >> m;
    for(int i = 0;i < n;i++)cin >> s[i];
    for(int i = 0;i < m;i++){
        cin >> x;

        //x^=last; ?
        for(int i = 0;i < n;i++){
            //x ^= last; ?
            f(x ^= last,c,s[i]);
        }
       cout << x << endl;
    }
return 0;
}

/*
3 4
2 2 2
20 20 20 20

uint32_t trueAns[] = {3997325084u,2705072328u,1928591162u,836263515u};

*/

 
ZeroJudge Forum