题意:给一个序列,为了使序列为从左到中间、从中间到右分别为递增、递减(中间最大),求从序列中删去的最少元素个数
思路:转换一下思路,求删去最少元素即求n-留下最多元素,对于每个中间点i
,留下的元素个数等于从左到i
求最长递增子序列和从右到i-1
求最长递增子序列,两者相加即可得到最长留下长度。首先从左到右求一次,再从右到左求一次,答案即为dp1[i]+dp2[i]-1
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 105;
int a[maxn], dp1[maxn], dp2[maxn], n;
int main()
{
while (cin >> n) {
for (int i = 0; i < n; i++) {
cin >> a[i];
dp1[i] = dp2[i] = 1;
}
for (int i = 0; i < n; i++)
for (int j = 0; j < i; j++)
if (a[i] > a[j])
dp1[i] = max(dp1[i], dp1[j]+1);
for (int i = n; i >= 0; i--)
for (int j = n; j > i; j--)
if (a[i] > a[j])
dp2[i] = max(dp2[i], dp2[j]+1);
int ans = 0;
for (int i = 0; i < n; i++)
ans = max(ans, dp1[i]+dp2[i]-1);
cout << n-ans << endl;
}
return 0;
}
7-2 杨辉三角#include <iostream>using namespace std;int main(){ int a[100][100] = { 0 }; int i, j, n; //cout << "请输入行数:" << endl; cin >> n; for (i = 0; i < n; i++) { for(j = 0; j <= i; j++) { if (j < 1) a[i][j] =
学习永无止境。本期橙子邀请到淘系技术部算法同学分别就「NLP领域」、「图神经网络」、「推荐领域」三个技术模块,结合行业技术发展与研究,重新整理历史经典综述文献与最新文献,去其糟粕,取其精华...
包和引入摘要:在本篇中,你将会了解到Scala中的包和引入语句是如何工作的。相比Java不论是包还是引入都更加符合常规,也更灵活一些。本篇的要点包括:1. 包也可以像内部类那样嵌套2. 包路径不是绝对路径3. 包声明链x.y.z并不自动将中间包x和x.y变成可见4. 位于文件顶部不带花括号的包声明在整个文件范围内有效5.包对象可...
在Fortran中应用OpenMP,有时会遇到一行中openmp的编译指令太长,需要换行的情形。今天在网上看到一段例程,明白了该如何处理这种情形。!$omp parallel &!$omp shared ( h, n ) &!$omp private ( i, x ) 源自http://people.sc.fsu.edu/~jburkardt/f_src/openmp/comp
最近做项目用到了这两个函数,本人经过仔细对比,认为它们的功能应该是完全一样的,都是将一个较多通道的特征变成较少通道的特征,具体定义如下:def depth_to_space(input, block_size, name=None): block_size用来说明数据移动的方式。该函数的操作是将block_size x block_size数目的特征图转换成一个不重叠的特征,...
上周五分析了下mt6752的pdaf对焦规律,以前一直认为pdaf对焦不可能准到一步到位,应该是走到清晰点附近后再用CAF(反差式)对焦到最清晰点. 但通过log查看,感觉应该是分几种情况,如果pdaf的可信度高,比如色彩分明,环境亮度高,则可以一步到位,但到位后,pdaf会在清晰问题再次进行pdaf确认,如果确认是清晰的则就停在此位置,反之则继续移动(每次停留两帧,猜测应该是一帧无法获取准确的p
解决GitHub连不上的问题fatal: unable to access ‘https://github.com/dmlc/dgl.git’: Failed to connect to github.com port 443: Connection refused1、使用ssh key在终端输入:git clone [email protected]:dmlc/dgl.git配置ssh key见下方链接https://blog.csdn.net/u013778905/article/deta
目标就可以让人工作和生活充满动力,SMART原则指导我们如何设定有效目标……
构造函数主要用来初始化对象。它又分为静态(static)和实例(instance)构造函数两种类别。大家应该都了解如果来写类的构造函数,这里只说下默认构造函数的作用,以及在类中保留默认构造函数的重要性。实际上,我说错了。正确的说法是:以及在类中保留空参数构造函数的重要性。我们来写一个类A,代码如下:public class A{ public int Number;
原文出自:http://blog.csdn.net/makang456/article/details/52873121【效果】【实例】 一、html代码[html] view plain copy span style="font-family:KaiTi_GB2312;
题目描述在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。分析:先找到所有的腐烂橘子,入队,用第一批带出新一批腐烂的橘子。每一批橘子都会在一分钟之内腐烂,所以此题可以转化...
项目中发现margin-bottom 在一些情况下会失效后找到的一种解决办法,虽然low了点,但能用(小程序同理)html:<div class="clear"></div>小程序:<view class="clear"></view>css:.clear{ clear:both;}...