Submission #1607274
Source Code Expand
#include <iostream> #include <algorithm> #include <vector> #include <climits> using namespace std; vector<vector<size_t>> mul(const vector<vector<size_t>> &T1, const vector<vector<size_t>> &T2){ int K = T1.size(); vector<vector<size_t>> T(K, vector<size_t>(K, 0)); for(int i=0; i<K; i++) for(int j=0; j<K; j++) for(int k=0; k<K; k++) T[i][j] ^= T1[i][k] & T2[k][j]; return T; } vector<vector<size_t>> bipow(const vector<vector<size_t>> &T, int m){ if(m == 1) return T; if(m % 2 == 0){ auto T2 = mul(T, T); return bipow(T2, m/2); } return mul(T, bipow(T, m-1)); } vector<size_t> vec(const vector<vector<size_t>> &T, const vector<size_t> x){ int K = x.size(); vector<size_t> y(K, 0); for(int i=0; i<K; i++) for(int j=0; j<K; j++) y[i] ^= T[i][j] & x[j]; return y; } int main(){ int K, M; cin >> K >> M; vector<size_t> A(K), C(K); for(int i=0; i<K; i++) cin >> A[i]; for(int i=0; i<K; i++) cin >> C[i]; if(M <= K){ cout << A[M-1] << endl; return 0; } reverse(A.begin(), A.end()); vector<vector<size_t>> T(K, vector<size_t>(K, 0)); for(int i=0; i<K; i++) T[0][i] = C[i]; for(int i=1; i<K; i++) T[i][i-1] = UINT_MAX;; auto T2 = bipow(T, M-K); auto x = vec(T2, A); cout << x[0] << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 漸化式 |
User | suzume |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1450 Byte |
Status | AC |
Exec Time | 48 ms |
Memory | 2816 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, sample_1.txt, sample_2.txt, sample_3.txt, small_1.txt, small_2.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
random_01.txt | AC | 1 ms | 256 KB |
random_02.txt | AC | 1 ms | 256 KB |
random_03.txt | AC | 1 ms | 256 KB |
random_04.txt | AC | 1 ms | 256 KB |
random_05.txt | AC | 1 ms | 256 KB |
random_06.txt | AC | 1 ms | 256 KB |
random_07.txt | AC | 3 ms | 512 KB |
random_08.txt | AC | 8 ms | 896 KB |
random_09.txt | AC | 47 ms | 2688 KB |
random_10.txt | AC | 48 ms | 2816 KB |
random_11.txt | AC | 48 ms | 2816 KB |
random_12.txt | AC | 48 ms | 2816 KB |
random_13.txt | AC | 48 ms | 2816 KB |
random_14.txt | AC | 48 ms | 2816 KB |
random_15.txt | AC | 45 ms | 2688 KB |
sample_1.txt | AC | 1 ms | 256 KB |
sample_2.txt | AC | 1 ms | 256 KB |
sample_3.txt | AC | 2 ms | 512 KB |
small_1.txt | AC | 1 ms | 256 KB |
small_2.txt | AC | 1 ms | 256 KB |