拦截导弹代码:
#include<bits/stdc++.h>
using namespace std;int a[1010],i,n,x,p,k,j;
int main(){cin>>n;for(i=0;i<n;i++){cin>>x;//输入导弹高度 p=-1; //做标记 for(j=1;j<=k;j++){ //循环判断是否能拉拦截 if(a[j]>x){p=j; break;}}if(p==-1){//不能拦截 就开一个系统 k++;a[k]=x;}else{ //能拦截,就同步高度 a[p]=x;}}cout<<k;
}
活动选择代码:
#include <bits/stdc++.h>
using namespace std; struct node //每个时间对
{ int begin; int end;
};
struct node a[110];
int n;
bool cmp(node n1,node n2) //按结束时间升序排序
{ return n1.end < n2.end?true:false;
}
int main()
{ int i; cin>>n; for(i = 0; i < n; i++){ cin>>a[i].begin>>a[i].end; } sort(a,a+n,cmp); //第1个活动必选 int ans=1; int t = a[0].end; //在剩余活动中选择 for(int i=1; i<n; i++) { //如果当前活动与之前最后结束的活动不冲突,就接受当前活动。 if(a[i].begin>=t) { ans++; t=a[i].end; } } cout<<ans;return 0;
}