WIP Initral
This commit is contained in:
commit
ce649523f8
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"type": "cppbuild",
|
||||||
|
"label": "C/C++: g++ 生成活动文件",
|
||||||
|
"command": "/usr/bin/g++",
|
||||||
|
"args": [
|
||||||
|
"-fdiagnostics-color=always",
|
||||||
|
"-g",
|
||||||
|
"${file}",
|
||||||
|
"-o",
|
||||||
|
"${fileDirname}/${fileBasenameNoExtension}"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${fileDirname}"
|
||||||
|
},
|
||||||
|
"problemMatcher": [
|
||||||
|
"$gcc"
|
||||||
|
],
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"detail": "调试器生成的任务。"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": "2.0.0"
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
// ID:1281 TITLE:最大上升子序列
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int length;
|
||||||
|
std::cin >> length;
|
||||||
|
std::vector<int> v(length);
|
||||||
|
std::vector<std::vector<int>> result;
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
int input_element;
|
||||||
|
std::cin >> input_element;
|
||||||
|
v[i] = input_element;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
bool flag = true;
|
||||||
|
int prev = 0;
|
||||||
|
while (!v.empty()) {
|
||||||
|
if (*v.rbegin() > prev) {
|
||||||
|
prev = *v.rbegin();
|
||||||
|
v.pop_back();
|
||||||
|
result.end()->push_back(prev);
|
||||||
|
} else {
|
||||||
|
flag = false;
|
||||||
|
result.push_back(std::vector<int>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int max = 0, max_index = 0;
|
||||||
|
for (int i = 0; i < result.size(); i++) {
|
||||||
|
if (result[i].size() > max) {
|
||||||
|
max_index = i;
|
||||||
|
max = result[i].size();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (auto v : result[max_index]) {
|
||||||
|
std::cout << v << " ";
|
||||||
|
}
|
||||||
|
std::cout << std::endl;
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
// ID:1281 TITLE:最大上升子序列
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int length;
|
||||||
|
std::cin >> length;
|
||||||
|
int v[length], v_size = length - 1;
|
||||||
|
int result[100][length], result_num = 0;
|
||||||
|
for (int i = 0; i < length; i++)
|
||||||
|
{
|
||||||
|
int input_element;
|
||||||
|
std::cin >> input_element;
|
||||||
|
v[i] = input_element;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
bool flag = true;
|
||||||
|
int prev = 0;
|
||||||
|
while (v_size != 0)
|
||||||
|
{
|
||||||
|
if (v[v_size] > prev)
|
||||||
|
{
|
||||||
|
prev = v[v_size];
|
||||||
|
v_size--;
|
||||||
|
result[result_num][]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
# 1281:最长上升子序列
|
||||||
|
|
||||||
|
## 题目描述
|
||||||
|
|
||||||
|
一个数的序列 $b_i$ ,当$b1<b2<...<bS$的时候,我们称这个序列是上升的。对于给定的一个序列(a1,a2,...,aN),我们可以得到一些上升的子序列$a_{i1},a_{i2},...,a_{iK}$,这里 $1≤i1<i2<...<iK≤N$。比如,对于序列$1,7,3,5,9,4,8$,有它的一些上升子序列,如$(1,7),(3,4,8)$等等。这些子序列中最长的长度是 4,比如子序列$(1,3,5,8)$。
|
||||||
|
|
||||||
|
你的任务,就是对于给定的序列,求出最长上升子序列的长度。
|
||||||
|
|
||||||
|
## 输入
|
||||||
|
|
||||||
|
输入的第一行是序列的长度 N(1≤N≤1000)。第二行给出序列中的 N 个整数,这些整数的取值范围都在 0 到 10000。
|
||||||
|
|
||||||
|
## 输出
|
||||||
|
|
||||||
|
最长上升子序列的长度。
|
||||||
|
|
||||||
|
## 样例
|
||||||
|
|
||||||
|
### 输入
|
||||||
|
|
||||||
|
```text
|
||||||
|
7
|
||||||
|
1 7 3 5 9 4 8
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输出
|
||||||
|
|
||||||
|
```text
|
||||||
|
4
|
||||||
|
```
|
|
@ -0,0 +1,34 @@
|
||||||
|
// ID:1285 TITLE:最大上升子序列和
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
const int MAX = 1001;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n, a[1001], b[1001], total = -1;
|
||||||
|
std::cin >> n;
|
||||||
|
for (int i = 1; i <= n; i++)
|
||||||
|
{
|
||||||
|
std::cin >> a[i];
|
||||||
|
b[i] = a[i];
|
||||||
|
}
|
||||||
|
for (int i = 0; i <= n; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < i; j++)
|
||||||
|
{
|
||||||
|
if (a[i] > a[j])
|
||||||
|
{
|
||||||
|
if (a[i] > a[j])
|
||||||
|
{
|
||||||
|
b[i] = std::max(b[i], b[j] + a[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 1; i <= n; i++)
|
||||||
|
{
|
||||||
|
total = std::max(total, b[i]);
|
||||||
|
}
|
||||||
|
std::cout << total;
|
||||||
|
}
|
Loading…
Reference in New Issue