非 动态规划---LIS
题目:一个序列有N个数:A[1],A[2],…,A[N],求出最长非降子序列的长度。(见动态规划---LIS)
- /*
- 题目:一个序列有N个数:A[1],A[2],…,A[N],求出最长非降子序列的长度。
- */
- #include <stdio.h>
- unsigned max_len( int [] , size_t );
- size_t b_point( int [] , size_t );
- int max(size_t , size_t );
- int main( void )
- {
- int arr[] = { , , , , , , , , , };
- printf("%u\n" , max_len( arr , sizeof arr / sizeof arr[] ) );
- return ;
- }
- unsigned max_len( int a[] , size_t n )
- {
- if ( n <= 1u )
- return n ;
- size_t m = b_point ( a , n ) ;
- return max( m , max_len ( a + m , n - m ) ) ;
- }
- size_t b_point ( int a[] , size_t n )
- {
- size_t i ;
- for ( i = 1u ; i < n ; i++ )
- if ( a[i-] > a[i])
- return i - 0u ;
- return i - 0u ;
- }
- int max( size_t n1 , size_t n2 )
- {
- if ( n1 > n2 )
- return n1;
- return n2;
- }
- /*
- 题目:一个序列有N个数:A[1],A[2],…,A[N],求出最长非降子序列的长度。
- */
- #include <stdio.h>
- unsigned max_len( int [] , size_t );
- size_t b_point( int [] , size_t );
- int main( void )
- {
- int arr[] = { , , , , , , , , , };
- printf("%u\n" , max_len( arr , sizeof arr / sizeof arr[] ) );
- return ;
- }
- unsigned max_len( int a[] , size_t n )
- {
- size_t len = 0u ;
- while ( n > 0u )
- {
- size_t mid = b_point( a , n );
- if ( mid > len )
- len = mid ;
- a += mid ;
- n -= mid ;
- }
- return len ;
- }
- size_t b_point ( int a[] , size_t n )
- {
- size_t i ;
- for ( i = 1u ; i < n ; i++ )
- if ( a[i-] > a[i])
- return i - 0u ;
- return i - 0u ;
- }
非 动态规划---LIS的更多相关文章
- 2021.12.06 P2501 [HAOI2006]数字序列(动态规划+LIS)
2021.12.06 P2501 [HAOI2006]数字序列(动态规划+LIS) https://www.luogu.com.cn/problem/P2501 题意: 现在我们有一个长度为 n 的整 ...
- BZOJ_1609_[Usaco2008_Feb]_Eating_Together_麻烦的聚餐_(动态规划,LIS)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1609 给出一串由1,2,3组成的数,求最少需要改动多少个数,使其成为不降或不升序列. 分析 法 ...
- 动态规划-LIS最长上升子序列
优化链接 [https://blog.csdn.net/George__Yu/article/details/75896330] #include<stdio.h> #include< ...
- HDU - 1160 FatMouse's Speed 动态规划LIS,路径还原与nlogn优化
HDU - 1160 给一些老鼠的体重和速度 要求对老鼠进行重排列,并找出一个最长的子序列,体重严格递增,速度严格递减 并输出一种方案 原题等于定义一个偏序关系 $(a,b)<(c.d)$ 当且 ...
- HDU-1051/POJ-1065 Wooden sticks 木棍子(动态规划 LIS 线型动归)
嘤嘤嘤,实习半年多的小蒟蒻的第一篇博客(题解) 英文的: There is a pile of n wooden sticks. The length and weight of each stick ...
- POJ_1631_Bridging_Signals_(动态规划,LIS)
描述 http://poj.org/problem?id=1631 铁路左右相连,要求去掉一些边,使得剩下的边不交叉,求剩余边数的最大值. Bridging signals Time Limit: 1 ...
- POJ_1065_Wooden_Sticks_(动态规划,LIS+鸽笼原理)
描述 http://poj.org/problem?id=1065 木棍有重量 w 和长度 l 两种属性,要使 l 和 w 同时单调不降,否则切割机器就要停一次,问最少停多少次(开始时停一次). Wo ...
- 动态规划-LIS
https://vjudge.net/contest/297216?tdsourcetag=s_pctim_aiomsg#problem/E #include<bits/stdc++.h> ...
- P1091 合唱队形题解(洛谷,动态规划LIS,单调队列)
先上题目 P1091 合唱队形(点击打开题目) 题目解读: 1.由T1<...<Ti和Ti>Ti+1>…>TK可以看出这题涉及最长上升子序列和最长下降子序列 2 ...
随机推荐
- 安装MVC3后没有dbcontext生成器的解决方案
安装MVC3后,采用DBFIRS的方式,从数据库生成模型,这样生成的类是基于ObjectContext的,无法使用DbContext的一些方法,比如Set.Find.Entry等.需要用ADO.NET ...
- imx6 KEY_ROW4 power output high fail
imx6 KEY_ROW4的pin设置成gpio之后,不能够输出高电平.解决方法记录于此. 参考链接: https://lists.yoctoproject.org/pipermail/meta-fr ...
- JavaScript:基础表单验证
在用户填写表单的过程之中,往往需要编写一堆的验证操作,这样就可以保证提交的数据时正确的.那么下面就模拟表单验证的处理操作完成. 如果要想进行验证,首先针对于输入的数据来进行一个验证处理. 1.定义一个 ...
- 高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化
高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等 ...
- 中国电信某站点JBOSS任意文件上传漏洞
1.目标站点 http://125.69.112.239/login.jsp 2.简单测试 发现是jboss,HEAD请求头绕过失败,猜测弱口令失败,发现没有删除 http://125.69.112. ...
- nginx源码学习----内存池
最近在进行监控平台的设计,之前一直觉得C/C++中最棘手的部分是内存的管理上,远不止new/delete.malloc/free这么简单.随着代码量的递增,程序结构复杂度的提高.各种内存方面的问题悄然 ...
- Java 多线程Future和FutureTask
Future表示一个任务的周期,并提供了相应的方法来判断是否已经完成或者取消,以及获取任务的结果和取消任务. Future接口源码: public interface Future<V> ...
- SLAM学习笔记(1)基本概念
SLAM (simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建 ...
- MFC和GDI+一起使用
VS2010,新建MFC项目,在头文件stdafx.h中添加: #include <gdiplus.h> using namespace Gdiplus; #pragma comment ...
- Hibernte继承映射
继承映射分为三种: 继承结构共用一张表结构 每个类一张表结构 每个具体类一张表结构 下面使用Animal.Dog.Fish举例 Animal类如下: package com.hml.domain.a; ...