当前位置: 首页 > news >正文

西安淘宝网站建设公司企业的网站建设费账务处理

西安淘宝网站建设公司,企业的网站建设费账务处理,电商设计工作内容,做设计_素材网站有哪P1020 导弹拦截 の 题目传送门。 解题思路 显然,第一问求的是最长不上升子序列。 于是接下来直接抛开第一问不谈,也不考虑优化,直接考虑第二问。待会就知道原因了。 引理:Dilworth 定理 狄尔沃斯定理亦称偏序集分解定理&#…

P1020 导弹拦截 の 题目传送门。

解题思路

显然,第一问求的是最长不上升子序列。

于是接下来直接抛开第一问不谈,也不考虑优化,直接考虑第二问。待会就知道原因了。

引理:Dilworth 定理

狄尔沃斯定理亦称偏序集分解定理,该定理断言:对于任意有限偏序集,其最大反链中元素的数目必等于最小链划分中链的数目。此定理的对偶形式亦真,它断言:对于任意有限偏序集,其最长链中元素的数目必等于其最小反链划分中反链的数目。

该定理在该问题上可以理解成:把序列分成不上升子序列的最少个数,等于序列的最长上升子序列长度。把序列分成不降子序列的最少个数,等于序列的最长下降子序列长度。

则第二问等价于最长上升子序列。

贪心

先不管引理对我们有什么用,我们直接思考第二问贪心怎么做。

对于每个数,既可以把它接到已有的导弹拦截后面,也可以建立一个新系统。要使子序列数最少,应尽量不建立新序列。

另外,应让每个导弹系统的末尾尽可能大,这样能接的数更多。因为一个数若能接到小数后面,必然能接到大数后面,反之则不成立。根据这些想法,可总结出如下贪心流程:

从前往后扫描每个数,对于当前数

1.若现有子序列的结尾都小于它,则创建新子序列。

2.否则,将它放到结尾大于等于它的最小数后

贪心证明

我们可以知道,证明 A=B,可证 A≤B 且 A≥B。

记 A 为贪心解,B 为最优解。

贪心解能覆盖所有数,且形成的都是不升序列,因此合法。由定义,B≤A。

假设最优解对应的方案和贪心方案不同,从前往后找到第一个不在同一序列的数 x。假设贪心解中 x 前面的数是 a,最优解中 x 前面的数是 b,a 后面的数是 y,由于贪心会让当前数接到大于等于它的最小数后面,所以 ,x,y≤a≤b。
此时,在最优解中,把 x 一直到序列末尾,和 y 一直到序列末尾交换位置,这样做不影响正确性,也不增加序列个数,但会使 x 在最优解和贪心解中所处的位置相同。由于序列中的数是有限的,只要一直做下去,一定能使最优解变为贪心解。因此A≤B。

等等,第二问根据引理是求最长上升子序列,但是贪心也可以求。说明我们的贪心解法等于最长上升子序列 !!(引理作用即在此处

贪心可以求上升子序列,自然连第一问求的最长不上升子序列也可以求了。

最坏复杂度O(n2),但是数据很水,可以完美通过此题。

我们也可以对此代码进行二分优化(即查找 k 的时候):

AC 代码:

#include<bits/stdc++.h>
#define up(l,r,i) for(int i=l,END##i=r;i<=END##i;++i)
#define dn(r,l,i) for(int i=r,END##i=l;i>=END##i;--i)
using namespace std;
typedef long long i64;
const int INF =2147483647;
const int MAXN=1e5+3;
int n,t,H[MAXN],F[MAXN];
int main(){while(~scanf("%d",&H[++n])); --n;t=0,memset(F,0,sizeof(F)),F[0]=INF;up(1,n,i){int l=0,r=t+1; while(r-l>1){int m=l+(r-l)/2;if(F[m]>=H[i]) l=m; else r=m;}int x=l+1;  // dp[i]if(x>t) t=x; F[x]=H[i];}printf("%d\n",t);t=0,memset(F,0,sizeof(F)),F[0]=0;up(1,n,i){int l=0,r=t+1; while(r-l>1){int m=l+(r-l)/2;if(F[m]<H[i]) l=m; else r=m;}int x=l+1;if(x>t) t=x; F[x]=H[i];}printf("%d\n",t);return 0;
}

http://www.yayakq.cn/news/861889/

相关文章:

  • 打广告型的营销网站制作短视频的软件
  • 黄冈网站推广优化找哪家建设免费网站制作
  • 大兴安岭地网站seo信息查询
  • 做网站伊犁哈萨克自治州做芯片哪个网站推广
  • PK10如何自己做网站广州建设工程交易中心是干啥的
  • 帮别人做彩票网站犯法嘛网站如何做404
  • 注册网站模板厦门市住建局官网
  • wordpress 升级 无法创建目录医药类网站怎么做seo
  • 网站开发创意设计58创业加盟网
  • 个人做财经类网站网页设计实训总结和体会
  • 网站开发与维护实训总结设计本装修app
  • 常州网站建设公司哪个好南京学习做网站
  • 扬州市网站建设工作室编程学习入门软件
  • 网站建设的设计总结做网站和做app哪个贵
  • 银川迅雷网站建设网站建设预算描述
  • seo建站外贸wordpress仿菜鸟教程官网
  • 派多格宠物网站建设捷信做单官方网站
  • 南宁响应式网站制作医疗软件网站建设公司
  • 网站设计规划建设的目的网站qq在线状态
  • 商丘做微信网站sqwyy万网域名查询ip
  • wap网站后台模板网络空间
  • 旅游网站前端建设论文做网站暴利赚钱
  • 上市公司网站建设要求成都网站改版优化
  • 单页淘客网站怎么建设wordpress淘宝客主题模板
  • 网站建设维护更新网站优化基础
  • 天津网站建设多少钱网站建设公司架构
  • 深圳画册设计网站不会代码可以做网站维护吗
  • 套别人的网站模板企业网站建设的主要内容
  • html网站建设方案建立公司网站的目的
  • 有什么做兼职的好的网站吗足球网站建设