Description 某学校有三个班,每个班N个同学 每个同学都有一个身高值 现在希望从每个班选出一个同学出来,并且满足 此三人的身高是严格上升的。 问有多少种选法 Format Input 第一行给出数字N 接下来三行,每行给出N个数字,其权值<=1e9 N<=1e5
时间: 2024-06-02 11:10:06 浏览: 10
这是一个典型的动态规划问题。我们可以用 dp[i][0/1/2] 表示选到第 i 个人时,分别以第 i 个人为结尾,第 i 个人和第 i-1 个人为结尾,第 i 个人、第 i-1 个人和第 i-2 个人为结尾的严格上升子序列的个数。其中 0/1/2 分别表示以第 i 个人/第 i-1 个人/第 i-2 个人为结尾。
根据定义,我们可以得到转移方程:
- dp[i][0] = max(dp[j][0]) + 1, j < i 且 h[j] < h[i],表示以第 i 个人为结尾的上升子序列个数为前面所有以身高小于第 i 个人的同学结尾的上升子序列个数的最大值加 1。
- dp[i][1] = max(dp[j][0]) + 1, j < i 且 h[j] < h[i],表示以第 i-1 个人和第 i 个人为结尾的上升子序列个数为前面所有以身高小于第 i 个人的同学结尾的上升子序列个数的最大值加 1。
- dp[i][2] = max(dp[j][1]) + 1, j < i 且 h[j] < h[i],表示以第 i-2 个人、第 i-1 个人和第 i 个人为结尾的上升子序列个数为前面所有以身高小于第 i 个人的同学结尾的上升子序列个数的最大值加 1。
最终结果即为 dp[N][2],即所有同学均选出的情况下,以任意同学为结尾的上升子序列个数。
时间复杂度为 O(N^2)。可以通过状态压缩优化空间复杂度到 O(N)。
相关问题
json数组中有一个数组,怎么遍历每一项组成一段文字
如果 JSON 数组中有一个数组属性,你可以使用嵌套的 `v-for` 循环来遍历每个数组项并将它们组成一段文字。以下是一个示例:
```html
<div v-for="item in jsonArray">
<p>{{ item.title }}</p>
<ul>
<li v-for="subItem in item.subArray">{{ subItem }}</li>
</ul>
<p>{{ item.description }}</p>
</div>
```
在这个示例中,假设 `jsonArray` 是包含对象的 JSON 数组,每个对象都包含一个 `title` 属性、一个 `subArray` 属性(这是一个包含字符串的数组),以及一个 `description` 属性。
在模板中,我们首先使用 `v-for` 循环遍历每个对象,然后使用插值语法显示 `title` 和 `description` 属性的值。在 `ul` 元素中,我们使用另一个 `v-for` 循环遍历 `subArray` 属性中的每个字符串,并将它们包装在 `li` 元素中。
这样就可以将 `subArray` 中的每个字符串组成一段文字了。你可以根据需要调整模板,以便更好地满足你的需求。
设计一个主体栏有四张图片田字型排列,每张图片下有描述文字
好的,以下是一个简单的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>My Website</title>
<style>
/* 主体栏样式 */
.main {
display: flex;
flex-wrap: wrap;
justify-content: center;
padding: 20px;
}
.card {
background-color: #eee;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0,0,0,0.3);
flex-basis: calc(50% - 20px);
margin-bottom: 20px;
padding: 20px;
text-align: center;
}
.card img {
max-width: 100%;
height: auto;
margin-bottom: 10px;
}
.card h2 {
margin-top: 0;
}
</style>
</head>
<body>
<!-- 主体栏 -->
<div class="main">
<div class="card">
<img src="image1.jpg" alt="Image 1">
<h2>Image 1</h2>
<p>Description of Image 1</p>
</div>
<div class="card">
<img src="image2.jpg" alt="Image 2">
<h2>Image 2</h2>
<p>Description of Image 2</p>
</div>
<div class="card">
<img src="image3.jpg" alt="Image 3">
<h2>Image 3</h2>
<p>Description of Image 3</p>
</div>
<div class="card">
<img src="image4.jpg" alt="Image 4">
<h2>Image 4</h2>
<p>Description of Image 4</p>
</div>
</div>
</body>
</html>
```
这个示例中,主体栏采用了 flexbox 布局,并使用了 `justify-content: center;` 来将四张图片居中排列。每个卡片包含一张图片、一个标题和描述文字。您可以将示例代码中的图片和文字替换为您自己的内容。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)