导弹拦截
来源:互联网 发布:mysql tmp 目录在哪 编辑:程序博客网 时间:2024/05/18 00:09
QAQ
虽说是DP题,但是搜索居然又过了,当然这肯定不是正解,但在noip的考场上得了部分分也是极好的。
后来想了一下,其实挺简单的
第一个问题是很简单的,每次打了导弹,系统最大高度就会减小到当前导弹高度,而且导弹是依次打来的,很显然我们只要找一个最大不上升子序列就可以了
主要是第二问,求系统的个数(话说不是试验阶段,只有一套系统么,,,,)
我很无耻的就想到了暴力搜索(还加了个sort)
这个时间复杂度显然是很吓人的,所以肯定不是正解
思路很简单,用一个数组记录系统最大拦截高度,依次枚举导弹,我们在系统中找一个拦截高度最低但可以拦截下导弹的系统,用它拦截这颗导弹就行了,这样肯定是最优解
如果没有系统能够拦住这颗导弹,我们只能新开一个系统了QAQ
下面是搜索代码
#include <cstdio>#include <iostream>#include <algorithm>using namespace std;int h[101];int down[101];int inte[101];int sum=0x7fffffff;int t=0;void dfs(int x,int z)//x导弹编号,z系统总数{ if(x==t+1) { sum=min(z,sum); return; } sort(inte+1,inte+z+1); int i; for(i=1;i<=z;i++) if(inte[i]>=h[x]) break; if(inte[i]>=h[x]) { inte[i]=h[x]; dfs(x+1,z); } else { inte[z+1]=h[x]; dfs(x+1,z+1); inte[z+1]=0; }}int main(){ inte[1]=0x7fffffff; int x=0; while(scanf("%d",&x)!=EOF) h[++t]=x; down[1]=1; for(int i=2;i<=t;i++) { int maxf=0; for(int j=1;j<i;j++) if(h[i]<=h[j]) maxf=max(down[j],maxf); down[i]=++maxf; } int ans=0; for(int i=1;i<=t;i++) ans=max(ans,down[i]); printf("%d\n",ans); dfs(1,1); printf("%d",sum); return 0;}
然后是正解,其实跟第一问思路一样,我们只需要找一下最大上升子序列就行了233
这样找出的便是最少的系统数目
附AC代码
#include <cstdio>#include <iostream>#include <algorithm>using namespace std;int h[101];int rise[101]; int down[101];int t=0;int main(){ int x; while(scanf("%d",&x)!=EOF) h[++t]=x; down[1]=1; for(int i=2;i<=t;i++) { int maxf=0; for(int j=1;j<i;j++) if(h[i]<=h[j]) maxf=max(down[j],maxf); down[i]=++maxf; } int ans=0; for(int i=1;i<=t;i++) ans=max(ans,down[i]); printf("%d\n",ans); rise[1]=1; for(int i=2;i<=t;i++) { int maxf=0; for(int j=1;j<i;j++) if(h[i]>h[j]) maxf=max(rise[j],maxf); rise[i]=++maxf; } ans=0; for(int i=1;i<=t;i++) ans=max(ans,rise[i]); printf("%d",ans); return 0;}
阅读全文
1 0
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 导弹拦截
- 导弹拦截
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 拦截导弹
- 拦截导弹
- spring cloud实现微服务容错处理
- TNetHTTPClient演示
- java中的常用编码表
- Unity中的单例与应用
- ldap
- 导弹拦截
- 面试准备
- Android中WebView的缓存
- SURF特征提取算法原文翻译与理解(下)
- php为什么是弱语言?
- CentOS 6.5 版本下 Tomcat 7 的安装
- [LeetCode] Counting Bits
- java设计模式--单例模式
- CSS3动画和VUE动画整理