求助:代码除了一个if语句都可运行
  • 板块学术版
  • 楼主Ysy2027
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/1/24 11:29
  • 上次更新2025/1/24 11:37:57
查看原帖
求助:代码除了一个if语句都可运行
1473068
Ysy2027楼主2025/1/24 11:29
#include <bits/stdc++.h>
using namespace std;
int n,m=1,sum=0,ans=1,p;
int x[5100],g[5100],l[5100];

int main(){
	ios::sync_with_stdio(false);
	while(cin>>n){
		x[m++]=n;
	}
	for(int i=1;i<=m-1;++i){
		g[i]=1;
		for(int j=1;j<=i-1;++j){//本身不与自己比较
		    if((x[j]>x[i])&&(g[i]<g[j]+1)){//若满足下降条件,就在原基础上加1,同时判断是否为当前最长序列 
		    	g[i]=g[j]+1;
			}
		}
	}
	for(int i=1;i<=m-1;++i){
		sum=max(sum,g[i]);
	}//最长下降子序列
	l[ans]=x[1];
	for(int i=2;i<=m-1;++i){//所有导弹 
		p=0;
		for(int j=1;j<=ans;++j){//所有系统 
			if(x[i]>l[j]){//if语句无法运行 
				if(p==0){
					p=j;
				}else{
					if(l[p]>l[j]) p=j;
				}
			}
		}
		if(p==0){
			ans++;
			l[ans]=x[i];
		}else{
			l[p]=x[i];
		}
	}
	cout<<sum<<'\n'<<ans;
	return 0;
} 

已经按照网上的方法查过一遍了,但还是不行

2025/1/24 11:29
加载中...