QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#622472#7866. Teleportationwzxtsl#TL 7ms3704kbC++231.3kb2024-10-08 21:57:052024-10-08 21:57:06

Judging History

你现在查看的是最新测评结果

  • [2024-10-08 21:57:06]
  • 评测
  • 测评结果:TL
  • 用时:7ms
  • 内存:3704kb
  • [2024-10-08 21:57:05]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define int long long
#define For(i,a,aa) for(int i=a;i<=aa;i++)
const int N=1e5+7;
int n,k;
int a[N];
int minn=0x3f3f3f3f3f;
int d[N];
void dfs(int pos,int cnt){
    if(pos==k){minn=min(minn,cnt);return;}
    int beg=(pos+a[pos])%n;
    for(int i=beg;i<n;i++){
        if(d[i]){
            if(d[i]>cnt+i-beg+1){
                d[i]=min(d[i],cnt+i-beg+1);
               // minn=min(minn,d[i]);
                dfs(i,cnt+i-beg+1);
            }
        }
        else{
            d[i]=cnt+i-beg+1;
          //  minn=min(minn,d[i]);
            dfs(i,cnt+i-beg+1);
        }
    }
    for(int i=0;i<=beg-1;i++){
        if(d[i]){
            if(d[i]>i+n-beg+cnt){
                d[i]=min(d[i],i+n-beg+cnt);
               // minn=min(minn,d[i]);
                dfs(i,i+n-beg+cnt);
            }
        }
        else{
            d[i]=i+n-beg+cnt;
          //  minn=min(minn,d[i]);
            dfs(i,i+n-beg+cnt);
        }
    }

}
void solve(){
    cin>>n>>k;
    For(i,0,n-1) 
        cin>>a[i];
    dfs(0,0);
    cout<<minn<<endl;
    
}
signed main(){
    fast;
    int t=1;
    //cin>>t;
    while(t--){
        solve();
    }
  //  system("pause");
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3580kb

input:

4 3
0 1 2 3

output:

4

result:

ok 1 number(s): "4"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3648kb

input:

4 3
0 0 0 0

output:

4

result:

ok 1 number(s): "4"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3700kb

input:

4 3
2 2 2 2

output:

2

result:

ok 1 number(s): "2"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

2 1
0 0

output:

2

result:

ok 1 number(s): "2"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3704kb

input:

2 1
1 1

output:

1

result:

ok 1 number(s): "1"

Test #6:

score: 0
Accepted
time: 7ms
memory: 3660kb

input:

300 25
182 9 13 211 258 132 27 42 218 200 271 258 164 121 8 84 29 195 141 290 110 0 272 93 142 134 140 32 232 99 162 199 297 287 212 29 182 53 61 98 116 282 75 245 230 165 22 4 179 89 274 231 46 299 248 208 200 285 221 50 221 199 294 241 195 138 22 204 113 100 132 276 158 146 238 178 100 94 131 157 ...

output:

10

result:

ok 1 number(s): "10"

Test #7:

score: 0
Accepted
time: 4ms
memory: 3632kb

input:

300 49
5 0 5 6 8 1 2 6 8 8 0 7 0 0 2 0 7 3 6 0 7 2 6 4 3 9 9 6 5 0 9 1 4 1 5 2 5 5 2 5 5 5 9 9 2 7 0 0 6 6 9 7 10 3 5 2 6 3 0 8 6 4 4 9 7 4 8 0 2 4 5 0 6 5 7 0 9 5 1 3 9 2 3 5 8 2 0 1 0 8 2 4 5 1 10 8 8 8 5 3 1 7 6 8 10 1 6 5 8 2 1 1 10 1 5 1 6 1 7 5 3 3 6 8 8 6 2 0 4 9 7 1 8 5 9 5 0 3 1 8 0 0 2 8 0...

output:

14

result:

ok 1 number(s): "14"

Test #8:

score: -100
Time Limit Exceeded

input:

2000 1535
297 1103 1985 224 645 892 493 1146 258 729 686 230 1509 1197 1970 577 1462 672 1133 737 226 1248 1236 492 473 495 1395 942 641 1010 39 759 625 1684 725 235 327 1217 321 512 675 331 1864 915 1386 713 1559 1475 643 1347 1697 101 1533 1511 1596 1486 776 439 148 460 919 1529 1463 1070 1940 597...

output:


result: