Login
Register
Problem list
Online status
Huhu_Miao
:
2025-04-17 11:29:45
/** * author: Huhu_Miao * created: 2025.4.17 11:28:00 (UTC+8) **/ #include
#include
int arr[101], dp[101]; void solve(){ int N; std::cin >> N; for(int i = 0 ; i < N; i++) std::cin >> arr[i]; dp[0] = 1; //LNIS for(int i = 1 ; i < N ; i++){ int max = 1; for(int j = 0 ; j < i ; j++) if(arr[i] <= arr[j]) max = std::max(max, dp[j] + 1); dp[i] = max; } std::cout << *std::max_element(dp,dp+N) << '\n'; } int main(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int T; std::cin>>T; while(T--) solve(); return 0; }
syl616
:
2023-04-21 00:53:51
#include
using namespace std; int main() { int time = 0; cin >> time; for (int i = 0; i < time; i++) { int max = 1; int min = 1; int numofelements = 0; cin >> numofelements; int* data = new int[numofelements + 1]; data[0] = 0; int* result = new int[numofelements + 1]; result[0] = 0; for (int i = 1; i <= numofelements; i++) { cin >> data[i]; } for (int i = 1; i <= numofelements; i++) { result[i] = 1; } for (int i = 2; i <= numofelements; i++) { for (int j = 1; j < i; j++) { if (data[j] >= data[i]) { result[i] = result[i] >= result[j] + 1 ? result[i] : result[j] + 1; } } max = max >= result[i] ? max : result[i]; } cout << max << endl; } }
222026
:
2022-11-19 14:09:02
这不就是反过来的最长上升子序列吗?最后看的就是f[0]不是吗? 为什么我这样写有问题呢??
220214837
:
2021-11-05 00:28:38
214861
:
2021-10-24 13:51:10
题目上说的是以后每一发炮弹都不能高于前一发,实际上是以后每一发炮弹都低于前一发,相等也不行。
martinG
:
2020-10-13 22:00:11
09的实例输出好像有问题呀,第一行能拦截的应该只有两个吧。这会导致测试数据里的问题吗?
Post Your Comment