首页 > 其他分享 >CSP-S(提高级)2024年T1 决斗

CSP-S(提高级)2024年T1 决斗

时间:2024-11-15 16:48:20浏览次数:3  
标签:怪兽 游戏 10 样例 T1 2024 leq 136 CSP

[CSP-S 2024] 决斗

题目描述

今天是小 Q 的生日,他得到了 n n n 张卡牌作为礼物。这些卡牌属于火爆的“决斗怪兽”,其中,第 i i i 张卡代表一只攻击力为 r i r_i ri​,防御力也为 r i r_i ri​ 的怪兽。

一场游戏分为若干回合。每回合,小 Q 会选择某只怪兽 i i i 以及另一只怪兽 j ( i ≠ j ) j(i \neq j) j(i=j),并让怪兽 i i i 向怪兽 j j j 发起攻击。此时,若怪兽 i i i 的攻击力小于等于怪兽 j j j 的防御力,则无事发生;否则,怪兽 j j j 的防御被打破,怪兽 j j j 退出游戏不再参与到剩下的游戏中。一只怪兽在整场游戏中至多只能发起一次攻击。当未退出游戏的怪兽都已发起过攻击时,游戏结束。

小 Q 希望决定一组攻击顺序,使得在游戏结束时,未退出游戏的怪兽数量尽可能少。

输入格式

输入的第一行包含一个正整数 n n n,表示卡牌的个数。

输入的第二行包含 n n n 个正整数,其中第 i i i 个正整数表示第 i i i 个怪兽的攻击力及防御力 r i r_i ri​。

输出格式

输出一行包含一个整数表示游戏结束时未退出游戏的怪兽数量的最小值。

样例 #1

样例输入 #1

5
1 2 3 1 2

样例输出 #1

2

样例 #2

样例输入 #2

10
136 136 136 2417 136 136 2417 136 136 136

样例输出 #2

8

提示

【样例 1 解释】

其中一种最优方案为:第一回合让第 2 2 2 只怪兽向第 1 1 1 只怪兽发起攻击,第二回合让第 5 5 5 只怪兽向第 4 4 4 只怪兽发起攻击,第三回合让第 3 3 3 只怪兽向第 5 5 5 只怪兽发起攻击。此时没有退出游戏的怪兽都进行过攻击,游戏结束。可以证明没有更优的攻击顺序。

【样例 3】

见选手目录下的 duel/duel3.in 与 duel/duel3.ans。

该样例满足 ∀ 1 ≤ i ≤ n , r i ≤ 2 \forall 1 \leq i \leq n, r_i \leq 2 ∀1≤i≤n,ri​≤2。

【样例 4】

见选手目录下的 duel/duel4.in 与 duel/duel4.ans。

【数据范围】

对于所有测试数据,保证: 1 ≤ n ≤ 1 0 5 1 \leq n \leq 10^5 1≤n≤105, 1 ≤ r i ≤ 1 0 5 1 \leq r_i \leq 10^5 1≤ri​≤105。

测试点 n n n r i r_i ri​特殊性质
1 ∼ 4 1\sim 4 1∼4 ≤ 10 \leq 10 ≤10 ≤ 1 0 5 \leq 10^5 ≤105无特殊性质
5 ∼ 10 5\sim 10 5∼10 ≤ 1 0 5 \leq 10^5 ≤105 ≤ 2 \leq 2 ≤2无特殊性质
11 ∼ 15 11\sim 15 11∼15 ≤ 30 \leq 30 ≤30 ≤ 1 0 5 \leq 10^5 ≤105特殊性质 A
16 ∼ 20 16\sim 20 16∼20 ≤ 1 0 5 \leq 10^5 ≤105 ≤ 1 0 5 \leq 10^5 ≤105无特殊性质

特殊性质 A:保证每个 r i r_i ri​ 在可能的值域中独立均匀随机生成。

【解析】
此题要求剩下的怪兽最少,那么就尽量消灭更多的怪兽,所以我们可以先将怪兽按攻击防御力由小到大排序,枚举每个怪兽,找到攻击力最小可以消灭他的怪兽消灭他,详见代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int a[100005];
int main() {
    cin >> n;
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    sort(a + 1, a + n + 1);//由小到大排序
    int ans = n;//初始化怪兽数量
    int p = 1;//未攻击怪兽指针
    for(int i = 1; i <= n; i++) {//枚举每个怪兽
        while (p <= n && a[p] <= a[i]) {//找到第一个可以消灭它的怪兽
            p++;
        }
        if (p <= n) {//若找到了
            ans--;//消灭一个怪兽
            p++;//该怪兽攻击过了,换下一个
        }
        if (p > n) {//若找不到
            break;//退出循环
        }
    }
    cout << ans;
    return 0;
}

标签:怪兽,游戏,10,样例,T1,2024,leq,136,CSP
From: https://blog.csdn.net/qq_36230375/article/details/143677274

相关文章

  • 学习日记-2024.11.12
    想使用xarm搭建一个通过视觉(yolo)进行抓取的系统.(仅供参考,自己复盘用,初学者)1,先使用xarm_ros(github)搭建自己想要的环境.准备使用xarm_gazebo中的xarm6_beside_table.launch文件(但是world选择xarm_camera_scene.aorld).我希望在xarm末端处有一个D435i摄像机.同时,在桌......
  • 学期2024-2025 20241308 《计算机基础与程序设计》第八周学习总结
    作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标 <写上具体方面>功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释......
  • NOIP2024模拟赛#21 总结
    坐牢3h+。赛时开T1,发现好唐啊,10min切了。过了全部大样例。开T2,现在是8:10。?现在是8:27,我怎么把T2大样例全过了。是不是太水了。我只是胡了一个贪心啊。开T3,现在是8:30。草,T1加样例了,做法假了。先不管T1了,先去看T3。感觉保证每次操作后都会满足对于\(i......
  • 2024-2025-1 20241322《计算机基础与程序设计》第八周学习总结
    2024-2025-120241322《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08这个作业的目标功能设计与面向对象......
  • [2024.11.15]NOIP 模拟赛
    赛后的思路永远比赛时清晰。赛时T1玩了一会发现\(a_3\sima_7\)一定是相邻的,所以只需要考虑两个数字即可。答案显然有单调性,所以考虑先二分\(a_2\),再二分\(a_1\)。两个二分的思路都很简单,第二个二分用lower_bound即可。第一个的话其实就是模拟lower_bound内置,赛时调......
  • 2024四川省大学生网络安全技能大赛--crypto
    1、easyrsa题目n=23792583705374189545679156857755903878016250540127710246753745617274304389583344704113138589733408235780341088002610330172981310203101669419279485446903080470828101625401545395900167347886555843342450664942132024224786444135999300216368287......
  • 2024 年 Java 面试最全攻略:程序员求职跳槽必刷题目 1000+,横扫一切技术盲点!
    写在前面马上又要到收割Offer的季节,你准备好了吗?曾经的我,横扫各个大厂的Offer。还是那句话:进大厂临时抱佛脚是肯定不行的,一定要注重平时的总结和积累,多思考,多积累,多总结,多复盘,将工作经历真正转化为自己的工作经验。面经分享今天给大家分享一个面试大厂的完整面经,小伙......
  • YOLOv11改进,YOLOv11结合DynamicConv(动态卷积),CVPR2024,二次创新C3k2结构
    摘要大规模视觉预训练显著提高了大规模视觉模型的性能。现有的低FLOPs模型无法从大规模预训练中受益。在本文中,作者提出了一种新的设计原则,称为ParameterNet,旨在通过最小化FLOPs的增加来增加大规模视觉预训练模型中的参数数量。利用DynamicConv动态卷积将额外的参......
  • YOLOv8改进,YOLOv8结合DynamicConv(动态卷积),CVPR2024,二次创新C2f结构
    摘要大规模视觉预训练显著提高了大规模视觉模型的性能。现有的低FLOPs模型无法从大规模预训练中受益。在本文中,作者提出了一种新的设计原则,称为ParameterNet,旨在通过最小化FLOPs的增加来增加大规模视觉预训练模型中的参数数量。利用DynamicConv动态卷积将额外的参......
  • 李沐《动手学深度学习》kaggle树叶分类(ResNet18无预训练)python代码实现
    前言    在尝试这个树叶分类之前,作者仅仅看完了ResNet残差网络一章,并没有看后面关于数据增强的部分,这导致在第一次使用最原始的ResNet18直接跑完训练数据之后的效果十分的差,提交kaggle后的准确仅有20%左右。本文最后依然使用未经预训练的手写ResNet18网络,但做了一定的......