星之哀伤 @ 2023-11-02 14:57:57
在没想到正解的情况下还搞了70分。。
有大佬看看错在哪了吗
#include<bits/stdc++.h>
using namespace std;
int a[1001];
int n,m;
int sum=1,sun=0;
int maxn=-1;
struct node{
int qi;
int zhong;
int che[1001];
}b[1001];
bool p[1001];
int main(){
freopen("P1983_6.in","r",stdin);
cin>>n>>m;
for(int a1,i=1;i<=m;i++){
cin>>a1;
for(int op,j=1;j<=a1;j++){
cin>>op;
if(j==1) b[i].qi=b[i].che[op]=op;
if(j==a1) b[i].zhong=b[i].che[op]=op;
b[i].che[op]=op;
}
}
for(int i=1;i<=m;i++){
bool lp=0;
for(int j=b[i].qi;j<=b[i].zhong;j++){
if(lp==1){
maxn=max(maxn,a[j]);//要升多少级
if(j==b[i].zhong){
sum++;//升级次数
for(int j=b[i].qi;j<=b[i].zhong;j++) if(b[i].che[j]!=0){
a[b[i].che[j]]=maxn+1;
}
maxn=-1;
}
}
if(a[j]>=a[b[i].qi]&&b[i].che[j]==0){ //有升级需要
lp=1;
}
}
}
cout<<sum;
}
by FCJ666 @ 2023-11-02 15:23:17
没return 0;