关于要写成"左闭右开"
查看原帖
关于要写成"左闭右开"
241838
microchip楼主2023/11/13 17:34

rt,看到题解以及讨论区都是 f[i][j]=f[i−1][f[i−1][j]]f[i][j]=f[i−1][f[i−1][j]] ,但我这样写也是对的呐,是我哪一点没有理解吗

#include<bits/stdc++.h>
using namespace std;

int n,num,f[280000][100],ans;//f[i][j]:以i为起点,合成j的终点 f[i][j]=f[f[i][j-1]+1][j-1]

int main()
{
	ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>num;
		f[i][num]=i;
	}for(int j=2;j<=58;j++){
		for(int i=1;i<=n;i++){
			if(f[i][j-1]!=0&&f[f[i][j-1]+1][j-1]!=0){
				f[i][j]=f[f[i][j-1]+1][j-1];
				ans=max(ans,j);
			}
		}
	}cout<<ans;
	return 0;
}
2023/11/13 17:34
加载中...