社区讨论

乱搞做法求助

P1983[NOIP 2013 普及组] 车站分级参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@logu68xp
此快照首次捕获于
2023/11/02 14:59
2 年前
此快照最后确认于
2023/11/02 18:11
2 年前
查看原帖
在没想到正解的情况下还搞了70分。。
有大佬看看错在哪了吗
CPP
#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;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...