东方博弈1229 - 拦截导弹的系统数量求解

题目描述

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。
假设某天雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
输入 n 个导弹依次飞来的高度(给出的高度数据是不大于 30000的正整数),计算如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。
比如:有 8颗导弹,飞来的高度分别为
389 207 175 300 299 170 158 165
那么需要2个系统来拦截,他们能够拦截的导弹最优解分别是:
系统 1 :拦截 389 207 175 170 158
系统 2 :拦截 300 299 165

输入

两行,第一行表示飞来导弹的数量 n(n≤1000);
第二行表示 n 颗依次飞来的导弹高度;

输出

要拦截所有导弹最小配备的系统数 k 。

代码:

#include<bits/stdc++.h>
using namespace std;
int n,b,a[1010],c;
int main(){
	cin>>n;
	while(n--){
		cin>>b;
		int i;
		for(i=1;i<=c&&a[i]<b;i++);
		if(i==c+1)a[++c]=b; else a[i]=b;
	}
	cout<<c;
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Stackelberg动态博弈模型是指一个由一个领导者和一个或多个追随者组成的博弈模型。在这个模型中,领导者先做出决策,然后追随者再根据领导者的决策做出自己的决策。NSGA2算法是一种多目标优化算法,可以用来求解多目标优化问题,包括博弈论中的动态博弈模型。 下面是使用NSGA2算法求解Stackelberg动态博弈模型的步骤: 1. 确定博弈模型中的决策变量和目标函数,并将其转化为多目标优化问题。例如,假设领导者和追随者的决策变量分别为x和y,目标函数为f1(x,y)和f2(x,y)。则可以将其转化为一个具有两个目标函数的多目标优化问题。 2. 使用NSGA2算法求解多目标优化问题。NSGA2算法可以通过多次迭代来寻找最优解。在每次迭代中,NSGA2算法会根据个体的适应度值来选择父代个体,并使用遗传算子对父代个体进行交叉和变异操作,生成新的后代个体。然后,NSGA2算法会根据新的后代个体和父代个体来构建一个完整的种群,并使用非支配排序和拥挤度算子来对种群进行排序,以确定最优解。 3. 根据NSGA2算法得到的最优解,确定领导者和追随者的最优决策。在Stackelberg动态博弈模型中,领导者先做出决策,然后追随者再根据领导者的决策做出自己的决策。因此,根据NSGA2算法得到的最优解,可以确定领导者的最优决策,并计算出追随者对应的最优决策。 需要注意的是,NSGA2算法只能用于求解静态或半静态的动态博弈模型。如果博弈模型具有完全信息和完美信息的特点,可以使用其他算法,如策略迭代算法或者价值迭代算法求解

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Galaxy银河

你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值