求奆犇们debug
  • 板块题目总版
  • 楼主一苇可航
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/7/25 11:30
  • 上次更新2023/10/27 18:32:04
查看原帖
求奆犇们debug
33191
一苇可航楼主2022/7/25 11:30

这个代码到底有什么问题,只要运行到第三个for循环立马windows报错,这个简单的动规就因为这个问题弄了一上午也看不出个所以然

只要运行到这里就不行了,这个for进都进不去

for(int i=1;i<=n;i++)
                         
	{
                         
		if(a[i]>maxx)
		{
			b=i;
			maxx=a[i];
		}
	}

完整代码

#include<iostream>
  
#include<cstdio>
  
#include<cstring>
  
#include<algorithm>
  
using namespace std;
  
int a[100001],c[100001],t[100001];
  
int main()
  
{
	int n;
  
	cin>>n;
  
	for(int i=1;i<=n;i++)
                         
		cin>>t[i];
  
	for(int i=1;i<=n;i++)
                         
	{
                         
		int maxx1=0;
                         
		for(int j=i;j>0;j--)
  
		{
  
			if(t[i]>t[j])
  
			maxx1=max(maxx1,a[j]);
  
		}
  
		a[i]=maxx1+1;
  
	}
  
	int maxx=0;
  
	int b=0;
  
	for(int i=1;i<=n;i++)
                         
	{
                         
		if(a[i]>maxx)
		{
			b=i;
			maxx=a[i];
		}
	}
	c[maxx]=a[b];
	int m=maxx;
	for(int j=b;j>0;j++)
	{
		if(a[j]==--maxx)
		{
			c[maxx]=t[j];
		}
	}
	for(int i=1;i<=m;i++)
		cout<<c[i]<<" ";
	return 0;
}
2022/7/25 11:30
加载中...