提出 #38260304
ソースコード 拡げる
// g++ t.cpp -std=c++14 -I .
#include <iostream>
#include <string>
#include <map>
#include <random>
//#include <atcoder/all>
using namespace std;
using ll = long long;
const int INF = 1e9;
const int M = 998244353;
using P = pair<int, pair<int, int>>;
template<class S, class T> void chmin(S& a, T b) {if (a>b) a=b;}
template<class S, class T> void chmax(S& a, T b) {if (a<b) a=b;}
template<class S, class T> void addMod(S& a, T b) {a=(a+b)%M;}
//int up[]={0,0,1,-1}, lf[]={1,-1,0,0};
int up[]={2,1,-1,-2,-2,-1,1,2}, lf[]={1,2,2,1,-1,-2,-2,-1};
random_device rng;
int an[320][320];
int mp[5000][10000];
int main() {
int _; cin>>_; while(_-->0) {
int n;cin>>n;
int a[n],b[2*n];for(int i=0;i<n;i++)cin>>a[i];for(int i=0;i<n;i++)cin>>b[i];for(int i=0;i<n;i++)b[n+i]=b[i];
fill(mp[0],mp[n],-1);
bool ans = true;
for(int i=0;i<n;i++) {
if (a[i] != b[i]) ans = false;
}
if (ans == true) {
cout<<"Yes"<<endl;
continue;
}
for(int i=0;i<n;i++) {
int dp[n+1][2];fill(dp[0], dp[n+1], i); // {a[i]のi, a[i]を1つ以上捨てたか} -> b[i]のiの最大値
for(int j=0;j<=n;j++) dp[j][0]=i, dp[j][1]=-1;
for(int j=0;j<n;j++) {
int k = j;
int bi0 = dp[j][0];
int bi1 = dp[j][1];
if (mp[k][bi0] == -1) {
int bi = bi0; //cout<<" "<<a[k]<<" =? "<<b[bi]<<endl;
while(bi < 2*n && a[k] == b[bi]) bi++;
for(int l=bi0;l<bi;l++) {
mp[k][l] = bi;
}
chmax(dp[j+1][0], bi);
if (bi >= i+n && j != n-1) ans = true;
} else {
chmax(dp[j+1][0], mp[k][bi0]);
if (mp[k][bi0] >= i+n && j != n-1) ans = true;
}
if (j>0 && bi1>=0 && mp[k][bi1] == -1) {
int bi = bi1;
while(bi < 2*n && a[k] == b[bi]) bi++;
for(int l=bi1;l<bi;l++) {
mp[k][l] = bi;
}
chmax(dp[j+1][1], bi);
if (bi >= i+n) ans = true;
} else {
chmax(dp[j+1][1], mp[k][bi1]);
if (mp[k][bi1] >= i+n) ans = true;
}
chmax(dp[j+1][1], dp[j][0]);
//cout<<i<<" "<<j<<" "<<dp[j][0]<<" "<<dp[j][1]<<" "<<ans<<endl;
if (ans) break;
}
//cout<<i<<" "<<n<<" "<<dp[n][0]<<" "<<dp[n][1]<<" "<<ans<<endl;
if (ans) break;
}
if (ans) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Roller |
| ユーザ | Personify20 |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 500 |
| コード長 | 2473 Byte |
| 結果 | AC |
| 実行時間 | 555 ms |
| メモリ | 199012 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 500 / 500 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | example_00.txt |
| All | example_00.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| example_00.txt | AC | 7 ms | 3680 KiB |
| test_00.txt | AC | 3 ms | 3560 KiB |
| test_01.txt | AC | 555 ms | 199012 KiB |
| test_02.txt | AC | 204 ms | 114472 KiB |
| test_03.txt | AC | 214 ms | 117864 KiB |
| test_04.txt | AC | 16 ms | 15520 KiB |
| test_05.txt | AC | 284 ms | 138916 KiB |
| test_06.txt | AC | 52 ms | 46908 KiB |
| test_07.txt | AC | 2 ms | 3548 KiB |
| test_08.txt | AC | 22 ms | 3528 KiB |
| test_09.txt | AC | 32 ms | 3760 KiB |
| test_10.txt | AC | 34 ms | 3748 KiB |
| test_11.txt | AC | 35 ms | 3700 KiB |
| test_12.txt | AC | 33 ms | 3664 KiB |
| test_13.txt | AC | 33 ms | 3628 KiB |
| test_14.txt | AC | 32 ms | 3800 KiB |
| test_15.txt | AC | 31 ms | 3860 KiB |
| test_16.txt | AC | 32 ms | 3860 KiB |
| test_17.txt | AC | 34 ms | 3912 KiB |
| test_18.txt | AC | 32 ms | 3924 KiB |
| test_19.txt | AC | 32 ms | 3736 KiB |
| test_20.txt | AC | 33 ms | 3784 KiB |
| test_21.txt | AC | 36 ms | 3660 KiB |
| test_22.txt | AC | 34 ms | 3668 KiB |
| test_23.txt | AC | 33 ms | 3784 KiB |
| test_24.txt | AC | 97 ms | 53692 KiB |
| test_25.txt | AC | 262 ms | 150588 KiB |
| test_26.txt | AC | 188 ms | 104936 KiB |
| test_27.txt | AC | 243 ms | 140464 KiB |
| test_28.txt | AC | 192 ms | 117340 KiB |
| test_29.txt | AC | 34 ms | 3916 KiB |
| test_30.txt | AC | 32 ms | 3864 KiB |
| test_31.txt | AC | 34 ms | 3932 KiB |
| test_32.txt | AC | 35 ms | 3980 KiB |
| test_33.txt | AC | 28 ms | 3860 KiB |
| test_34.txt | AC | 410 ms | 198880 KiB |
| test_35.txt | AC | 407 ms | 198996 KiB |
| test_36.txt | AC | 408 ms | 198996 KiB |
| test_37.txt | AC | 411 ms | 199000 KiB |
| test_38.txt | AC | 416 ms | 199000 KiB |
| test_39.txt | AC | 338 ms | 198876 KiB |
| test_40.txt | AC | 526 ms | 198924 KiB |
| test_41.txt | AC | 465 ms | 198944 KiB |
| test_42.txt | AC | 533 ms | 198996 KiB |
| test_43.txt | AC | 245 ms | 198932 KiB |
| test_44.txt | AC | 511 ms | 199012 KiB |
| test_45.txt | AC | 520 ms | 198984 KiB |
| test_46.txt | AC | 541 ms | 198952 KiB |
| test_47.txt | AC | 514 ms | 198880 KiB |
| test_48.txt | AC | 512 ms | 199008 KiB |
| test_49.txt | AC | 127 ms | 198884 KiB |
| test_50.txt | AC | 131 ms | 198940 KiB |
| test_51.txt | AC | 130 ms | 198936 KiB |
| test_52.txt | AC | 128 ms | 198816 KiB |
| test_53.txt | AC | 131 ms | 198876 KiB |
| test_54.txt | AC | 34 ms | 7300 KiB |
| test_55.txt | AC | 34 ms | 7336 KiB |
| test_56.txt | AC | 35 ms | 7448 KiB |
| test_57.txt | AC | 36 ms | 7340 KiB |
| test_58.txt | AC | 38 ms | 7496 KiB |