题解:CF1852A Ntarsis' Set
与
首先
模拟赛出了这个的强化版,
相应地,逆推只需要
考虑加速这一过程。让
时间复杂度
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=2e5+5;
int n,k,a[N];
int main(){
int Tn;scanf("%d",&Tn);
while(Tn--){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
if(a[1]!=1){printf("1\n");continue;}
LL Pos=1;
for(int i=1;i<n;i++)
if(Pos<=a[i+1]-i){
int p=min(k,(int)(a[i+1]-1-Pos)/i);
Pos+=p*i;k-=p;
}
Pos+=1ll*k*n;
printf("%lld\n",Pos);
}
return 0;
}