提出 #35934684


ソースコード 拡げる

#include<bits/stdc++.h>
using namespace std;
using ull=unsigned long long;
using mat=array<ull,64>;
#define rep(i,l,r)for(int i=(l);i<(r);i++)
#define bit(s,i)(((s)>>(i))&1)

mt19937_64 rand_gen;

mat mat_gen(){
	mat ret;
	rep(i,0,64)ret[i]=rand_gen();
	return ret;
}

ull mat_prod(mat&m,ull x){
	ull ans=0;
	rep(i,0,64)if(bit(x,i))ans^=m[i];
	return ans;
}

mat mat_mul(mat&x,mat&y){
	mat ret;
	rep(i,0,64)ret[i]=mat_prod(y,x[i]);
	return ret;
}

int main(){
	vector<mat>m(20);
	m[0]=mat_gen();
	rep(i,1,20)m[i]=mat_mul(m[i-1],m[i-1]);
	
	int n,q;
	cin >> n >> q;
	vector<vector<ull>>hash(20,vector<ull>(n));
	rep(i,0,n)cin >> hash[0][i];
	
	rep(i,1,20)rep(j,0,n-(1<<i)+1){
		hash[i][j] = hash[i-1][j] ^ mat_prod(m[i-1],hash[i-1][j+(1<<(i-1))]);
	}
	
	rep(_,0,q){
		int A,B,C,D,E,F;
		cin >> A >> B >> C >> D >> E >> F;
		A--,B--,C--,D--,E--,F--;
		int x=A,y=C,z=E;
		for(int i=19;i>=0;i--){
			if(max({x,y,z})+(1<<i)>n)continue;
			if((hash[i][x]^hash[i][y])!=hash[i][z])continue;
			x+=1<<i;
			y+=1<<i;
			z+=1<<i;
		}
		if(x>B||y>D||z>F)cout << (F-E>B-A?"Yes":"No") << endl;
		else cout << ((hash[0][x]^hash[0][y])<hash[0][z]?"Yes":"No") << endl;
	}
}

提出情報

提出日時
問題 Ex - XOR Sum of Arrays
ユーザ kyopro_friends
言語 C++ (GCC 9.2.1)
得点 600
コード長 1212 Byte
結果 AC
実行時間 2245 ms
メモリ 85336 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果
AC × 2
AC × 68
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_a_small_00.txt, 01_a_small_01.txt, 01_a_small_02.txt, 01_a_small_03.txt, 02_n_small_00.txt, 02_n_small_01.txt, 03_q_small_00.txt, 03_q_small_01.txt, 04_random_00.txt, 04_random_01.txt, 04_random_02.txt, 05_period_in_3_00.txt, 05_period_in_3_01.txt, 05_period_in_3_02.txt, 05_period_in_3_03.txt, 05_period_in_3_04.txt, 05_period_in_3_05.txt, 05_period_in_3_06.txt, 05_period_in_3_07.txt, 05_period_in_3_08.txt, 05_period_in_3_09.txt, 05_period_in_3_10.txt, 05_period_in_3_11.txt, 05_period_in_3_12.txt, 05_period_in_3_13.txt, 05_period_in_3_14.txt, 05_period_in_3_15.txt, 06_period_00.txt, 06_period_01.txt, 06_period_02.txt, 06_period_03.txt, 06_period_04.txt, 06_period_05.txt, 06_period_06.txt, 06_period_07.txt, 06_period_08.txt, 06_period_09.txt, 06_period_10.txt, 06_period_11.txt, 06_period_12.txt, 06_period_13.txt, 06_period_14.txt, 06_period_15.txt, 07_corner_00.txt, 07_corner_01.txt, 08_handmade_00.txt, 09_lcp_eq_1_00.txt, 09_lcp_eq_1_01.txt, 09_lcp_eq_1_02.txt, 09_lcp_eq_1_03.txt, 09_lcp_eq_1_04.txt, 10_lcp_eq_255_00.txt, 10_lcp_eq_255_01.txt, 10_lcp_eq_255_02.txt, 10_lcp_eq_255_03.txt, 10_lcp_eq_255_04.txt, 11_lcp_eq_512_00.txt, 11_lcp_eq_512_01.txt, 11_lcp_eq_512_02.txt, 11_lcp_eq_512_03.txt, 11_lcp_eq_512_04.txt, 12_lcp_eq_1023_00.txt, 12_lcp_eq_1023_01.txt, 12_lcp_eq_1023_02.txt, 12_lcp_eq_1023_03.txt, 12_lcp_eq_1023_04.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 8 ms 3440 KiB
00_sample_01.txt AC 3 ms 3488 KiB
01_a_small_00.txt AC 867 ms 85332 KiB
01_a_small_01.txt AC 1848 ms 85236 KiB
01_a_small_02.txt AC 1920 ms 85328 KiB
01_a_small_03.txt AC 1935 ms 85188 KiB
02_n_small_00.txt AC 126 ms 3632 KiB
02_n_small_01.txt AC 125 ms 3632 KiB
03_q_small_00.txt AC 2069 ms 85188 KiB
03_q_small_01.txt AC 2068 ms 85172 KiB
04_random_00.txt AC 2237 ms 85184 KiB
04_random_01.txt AC 2238 ms 85284 KiB
04_random_02.txt AC 2235 ms 85336 KiB
05_period_in_3_00.txt AC 829 ms 85132 KiB
05_period_in_3_01.txt AC 847 ms 85248 KiB
05_period_in_3_02.txt AC 947 ms 85328 KiB
05_period_in_3_03.txt AC 895 ms 85092 KiB
05_period_in_3_04.txt AC 813 ms 85244 KiB
05_period_in_3_05.txt AC 869 ms 85148 KiB
05_period_in_3_06.txt AC 974 ms 85184 KiB
05_period_in_3_07.txt AC 827 ms 85212 KiB
05_period_in_3_08.txt AC 833 ms 85172 KiB
05_period_in_3_09.txt AC 896 ms 85092 KiB
05_period_in_3_10.txt AC 1009 ms 85248 KiB
05_period_in_3_11.txt AC 898 ms 85236 KiB
05_period_in_3_12.txt AC 815 ms 85248 KiB
05_period_in_3_13.txt AC 857 ms 85240 KiB
05_period_in_3_14.txt AC 992 ms 85188 KiB
05_period_in_3_15.txt AC 853 ms 85248 KiB
06_period_00.txt AC 2002 ms 85188 KiB
06_period_01.txt AC 2224 ms 85184 KiB
06_period_02.txt AC 2236 ms 85276 KiB
06_period_03.txt AC 2229 ms 85252 KiB
06_period_04.txt AC 2120 ms 85184 KiB
06_period_05.txt AC 1943 ms 85244 KiB
06_period_06.txt AC 2210 ms 85092 KiB
06_period_07.txt AC 2214 ms 85212 KiB
06_period_08.txt AC 2213 ms 85336 KiB
06_period_09.txt AC 2230 ms 85168 KiB
06_period_10.txt AC 2245 ms 85096 KiB
06_period_11.txt AC 2232 ms 85184 KiB
06_period_12.txt AC 824 ms 85248 KiB
06_period_13.txt AC 2210 ms 85288 KiB
06_period_14.txt AC 955 ms 85248 KiB
06_period_15.txt AC 2158 ms 85332 KiB
07_corner_00.txt AC 835 ms 85284 KiB
07_corner_01.txt AC 2206 ms 85092 KiB
08_handmade_00.txt AC 4 ms 3548 KiB
09_lcp_eq_1_00.txt AC 2182 ms 85236 KiB
09_lcp_eq_1_01.txt AC 2185 ms 85152 KiB
09_lcp_eq_1_02.txt AC 2184 ms 85328 KiB
09_lcp_eq_1_03.txt AC 2186 ms 85096 KiB
09_lcp_eq_1_04.txt AC 2187 ms 85236 KiB
10_lcp_eq_255_00.txt AC 424 ms 16608 KiB
10_lcp_eq_255_01.txt AC 419 ms 16508 KiB
10_lcp_eq_255_02.txt AC 427 ms 16544 KiB
10_lcp_eq_255_03.txt AC 430 ms 16608 KiB
10_lcp_eq_255_04.txt AC 425 ms 16528 KiB
11_lcp_eq_512_00.txt AC 1437 ms 56324 KiB
11_lcp_eq_512_01.txt AC 1438 ms 56472 KiB
11_lcp_eq_512_02.txt AC 1436 ms 56556 KiB
11_lcp_eq_512_03.txt AC 1438 ms 56396 KiB
11_lcp_eq_512_04.txt AC 1444 ms 56372 KiB
12_lcp_eq_1023_00.txt AC 1437 ms 56500 KiB
12_lcp_eq_1023_01.txt AC 1440 ms 56472 KiB
12_lcp_eq_1023_02.txt AC 1440 ms 56412 KiB
12_lcp_eq_1023_03.txt AC 1437 ms 56556 KiB
12_lcp_eq_1023_04.txt AC 1436 ms 56436 KiB