侧边栏壁纸
  • 累计撰写 192 篇文章
  • 累计创建 2 个标签
  • 累计收到 87 条评论

【题解】【贪心】拦截导弹问题

Allen Best
2023-07-18 / 0 评论 / 0 点赞 / 60 阅读 / 337 字
温馨提示:
本文最后更新于 2023-07-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
#include<bits/stdc++.h>
using namespace std;
#define N 1005
#define INF 0x3f3f3f3f
int main()
{
    int a[N], n = 1, ct = 0, h, ans = 0;//ct:拦截的导弹数量 ans:遍历了几趟 
    bool vis[N] = {};
    while(cin >> a[n])
        n++;
    n--;
    while(ct < n)
    {
        h = INF;
        for(int i = 1; i <= n; ++i)
        {
            if(vis[i] == false && h >= a[i])//如果导弹i没被拦截 且 可以被拦截 
            {
                h = a[i];
                vis[i] = true;
                ct++;
            }
        }
        ans++;
    }
    cout << ans;
    return 0;
}
0

评论区