P9317 [EGOI2022] SubsetMex / 子集 mex
qwerty12346 · · 题解
题目传送门
题意
这题就是求最少的操作次数。
思路
直接 for 循环求操作次数。我们再做个函数求操作次数。最后我们只需要算其中
注意要将
代码
#include<bits/stdc++.h>
using namespace std;
long long n,x,a[10005];
long long f(long long i,long long j){//求操作次数的函数
if(!i)return 0;//特判
return a[i]>=j?f(i-1,j):f(i-1,j+j-a[i])+j-a[i];//计算其中n的个数
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
for(int j=1;j<=x;j++)cin>>a[j];
cout<<f(x,1)+1<<endl;//算完加一
}
return 0;
}