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

男朋友说是做竞彩网站维护的品牌全案策划

男朋友说是做竞彩网站维护的,品牌全案策划,菜单宣传网站怎么做的,怎么给网站做logoP1020 导弹拦截 の 题目传送门。 解题思路 显然,第一问求的是最长不上升子序列。 于是接下来直接抛开第一问不谈,也不考虑优化,直接考虑第二问。待会就知道原因了。 引理: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.ds6.com.cn/news/121033.html

相关文章:

  • 电子商务网站建设 市场分析写一篇软文推广自己的学校
  • 老年大学网站建设百度app安装免费下载
  • 好的网站模板外链管理
  • 罗湖区做网站的公司新手怎么引流推广推广引流
  • 网站建设培训 通州百度竞价推广屏蔽软件
  • 网站推广哪个平台好汕头网站建设方案开发
  • aspx网站开发 案例广告公司推广软文
  • 易用的做网站软件滨州seo排名
  • 第三方免费做网站网站推广专家十年乐云seo
  • wordpress网站乱码今日军事新闻头条打仗
  • 免费的网站建设一般多少钱小程序制作一个需要多少钱
  • 杭州做网站哪家公司好关键词汇总
  • wordpress 域名www厦门seo报价
  • 基于web的旅游网站设计soso搜索引擎
  • 独立网站商城怎么做软广告经典案例
  • 云建站源码安全优化大师
  • 公司请做网站推广普通话宣传标语
  • wordpress 采集站百度推广怎么收费的
  • chrome wordpress cssaso关键词排名优化是什么
  • 泉州网站制作建设杭州seo网站优化
  • wordpress 首页 菜单seo搜索引擎实战详解
  • app网站开发合同百度推广一个月多少钱
  • bootstrap中文网站模板百度推广网址
  • 百度主机做视频网站怎么样网页推广怎么做
  • 桐城市做网站google入口
  • 品牌网站设计公司哪家好网页设计主题参考
  • 电子商务网站建设含代码网上怎么做广告
  • 连山网站建设seo的主要工作内容
  • 如何做一元购网站自己怎么做引流推广
  • 网站做打火机如何软文编辑器