2 条题解

  • 1
    @ 2025-6-22 14:13:44

    话不多说,直接上代码

    #include
    using namespace std;
    
    int n,ans=-1;
    int a[101],dp[101];
    
    int main()
    {	
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    		dp[i]=1;
    	}
    	for(int i=0;i<n;i++){
    		for(int j=1;j<i;j++){
    			if(a[i]>=a[j] && dp[j]+1>dp[i]) dp[i]=dp[j]+1;
    		}
    		if(dp[i]>ans) ans=dp[i];
    	}
    	cout<<"Max="<<ans;
    	return 0;
    }
    

    偷偷藏了两个错误,鲨毙才看不出来 嘻嘻嘻嘻

    • 1
      @ 2025-4-22 22:32:03

      纯dp

      #include<bits/stdc++.h>
      using namespace std;
      int n, x[250], f[250], ans;
      int main() {
      	while (1); //禁止抄袭,从我做起
      	cin >> n;
      	while (1); //禁止抄袭,从我做起
      	for (int i = 1; i <= n; i++) {
      		while (1); //禁止抄袭,从我做起
      		cin >> x[i];
      		while (1); //禁止抄袭,从我做起
      		f[i] = 0;
      		while (1); //禁止抄袭,从我做起
      	}
      	while (1); //禁止抄袭,从我做起
      	for (int i = 2; i <= n; i++) {
      		while (1); //禁止抄袭,从我做起
      		for (int j = 1; j <= i - 1; j++)
      			if (x[i] > x[j])
      				f[i] = max(f[i], f[j] + 1);
      		while (1); //禁止抄袭,从我做起
      		ans = max(ans, f[i]);
      		while (1); //禁止抄袭,从我做起
      	}
      	while (1); //禁止抄袭,从我做起
      	cout << "Max=" << ans;
      	while (1); //禁止抄袭,从我做起
      	return 0;
      }
      

      有脑子的人看看初始化改改看不出的人是废物

      • @ 2025-6-15 16:05:14

        666,下回我也整一下

    • 1

    信息

    ID
    274
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    (无)
    递交数
    26
    已通过
    9
    上传者