关于导弹拦截的求助
查看原帖
关于导弹拦截的求助
292622
童年的小士兵楼主2020/10/26 12:46

正在做导弹拦截这道题,然而TLE了 T_T 下面是代码,各位大佬帮帮忙吧

#include <bits/stdc++.h>
using namespace std;
int main() {
	int n = 0;
	int a[100000 + 10];
	while (~scanf("%d", &a[++n])); 
	n--;	
	int dp[200000 + 10] = { 0 }, dp2[200000 + 10] = { 0 };
	int ans = 0, ans2 = 0;
	for (int i = 1; i <= n; i++) {
        dp[i] = 1;
        dp2[i] = 1;
        for (int j = 1; j < i; j++) {
            if (!(a[j] < a[i])) {
                dp[i] = max(dp[i], dp[j] + 1);
            }
            if (a[j] < a[i]) {
            	dp2[i] = max(dp2[i], dp2[j] + 1);
			}
        }
        ans = max(ans, dp[i]);
        ans2 = max(ans2, dp2[i]);
    }
    printf("%d\n%d\n", ans, ans2);
    return 0;
}
2020/10/26 12:46
加载中...