嘟嘟最近迷恋上了一款游戏:植物大战僵尸。在梦中,他梦到了一个更加刺激的植物大战僵尸版本。有 n 个僵尸从起点出发,每个僵尸占用一个独立的直线道路。第 i 个僵尸在第一秒的速度为 f_if​i​​ ,之后的速度为 s_is​i​​ 。嘟嘟在每一秒结束时,都会选择一个跑在最前面的僵尸(如果存在多个僵尸处于最前面,则选择编号最小的僵尸),使用能量豆将其消灭。

求嘟嘟消灭僵尸的顺序。

输入格式

第一行包含一个整数 Ca ( Ca ≤ 20 ) ,表示有 Ca 组测试数据,对于每组测试数据:

第一行包含一个整数 n ( 1 ≤ n ≤ 50000 ) 。

接下来 n 行每行包含两个整数 f_if​i​​ s_is​i​​ ( 0 ≤ f_if​i​​ ≤ 500 ; 0 < s_is​i​​ ≤ 100 ) 。

输出格式

对于每组测试数据,第一行输出 "Case #c:" ,其中 c 表示测试数据编号;第二行输出 n 个整数,表示僵尸被消灭的顺序。

样例输入

2
3
10 2
9 3
8 4
6
1 1
2 2
3 3
4 4
5 5
6 1

样例输出

Case #1:
1 2 3
Case #2:
6 5 4 3 2 1

思路:因为题目给出的si速度范围在1到100,所以这样我们可以用结构体存100个优先队列,按照fi速度从大到小排序,每次消灭僵尸,只需要在这100个优先队列中找最大的(时间s*速度si)即为第s秒该消灭的僵尸,当然有可能总速度相同,所以结构体中我们还需要有一个存顺序的。

AC代码:

#include <stdio.h>
#include <string.h>
#include<queue>
#include <algorithm>
using namespace std;
struct jj
{
    int a;
    int biaoa;
    friend bool operator <(jj c, jj b)
    {
        if(c.a==b.a){
            return c.biaoa>b.biaoa;
        }
        return c.a <b.a;
    }
} sca,ssa,ppp;
struct node
{
    priority_queue<jj>qq;
} d[200];
int main()
{
    int bb=1;
    int t,a;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&a);
        for(int i=1; i<=a; i++)
        {
            int c,k;
            scanf("%d%d",&c,&k);
            sca.a=c;
            sca.biaoa=i;
            d[k].qq.push(sca);
        }
        printf("Case #%d:\n",bb++);

for(int j=0; j<a; j++)
        {
            int maxn=0;
            int biao=0;
            for(int i=1; i<=100; i++)
            {
                if(!d[i].qq.empty())
                {
                    sca =d[i].qq.top();
                    int zhi=sca.a+j*i;
                    if(zhi>maxn)
                    {
                        biao=i;
                        maxn=zhi;
                    }
                    else if(zhi==maxn&&biao!=0)
                    {
                        ssa=d[i].qq.top();
                        ppp=d[biao].qq.top();
                        if(ssa.biaoa<ppp.biaoa)
                            biao=i;
                    }
                }
            }
            if(biao!=0)
            {
                printf("%d%c",d[biao].qq.top().biaoa,j==a-1?'\n':' ');
                d[biao].qq.pop();
            }
        }
    }
    return 0;
}

计蒜客-植物大战僵尸相关推荐

  1. 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之植物篇

    目录 1.单卡片无CD 1.1 思路一 1.2 思路二 2.全卡片无CD 3.豌豆射手射速修改(修改植物射速) 4.实现豌豆射手发射"玉米加农炮"(思路) 上一期教程中,我们学习了 ...

  2. 杠上植物大战僵尸210331

    杠上植物大战僵尸210331 准备工作 着手改关卡 改金币 遇到的问题 准备工作 下载"植物大战僵尸年度版",嘿不错,下载游戏网页界面下就有说用户信息备份在哪里的,('-\植物大战 ...

  3. 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之其他篇

    目录 1.跳关(任意选择关卡) 2.修改金币值 3.实现自动收集阳光 上一期教程中,我们学习了寻找植物大战僵尸僵尸距离基址.实现"秒杀"僵尸的方法.PS:上篇链接:[CE入门教程] ...

  4. 使用Cheat Enginee(CE)通关“植物大战僵尸”

    使用Cheat Enginee(CE)通关"植物大战僵尸" 方法有很多,这里只介绍一种,关于基址的寻找和进制的变换之前已经发过相应博客,感兴趣可以去我的主页学习. 修改关数 之前的 ...

  5. 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之僵尸篇

    目录 1.寻找僵尸位置基址 2.实现"秒杀"僵尸(修改僵尸血量) 上一期教程中,我们学习了修改植物大战僵尸的单卡片无CD.全卡片无CD.豌豆射手射速修改以及实现豌豆射手发射&quo ...

  6. 女友让我破解植物大战僵尸!我干脆撸了一款一样的....翻身舔狗把歌唱呀

    今天给大家分享的开源项目可以说非常适合入门,还比较好玩,更是一个有故事的项目.既能满足想学习的读者,又能满足那些喜欢八卦的读者. 提到植物大战僵尸相信大部分读者都不陌生,可以说是塔防类游戏的鼻祖.就鸟 ...

  7. 计蒜客 挑战难题 爬楼梯

    计蒜客 挑战难题 爬楼梯 假设你现在正在爬楼梯,楼梯有n级.每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部? 格式: 第一行输入一个数n(n<=50),代表楼梯的级数. 接下来一行输 ...

  8. 无脑博士的试管们java_计蒜客 无脑博士和他的试管们

    标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...

  9. 【植物大战僵尸2】算法 笔记

    文章目录 春日活动--旅行原木--特殊事件--植物挑战_超能花菜 春日活动--暖春植树--初春挑战 地图解锁顺序建议 花园战争 超z联赛 无尽挑战 无尽常用植物及装扮 植物排名 春日活动–旅行原木–特 ...

最新文章

  1. 6_分布式训练框架Horovod使用(20190111)
  2. 牛客 contest893 G-Truthman or Fakeman
  3. 非网管交换机和网管交换机的区别
  4. java 反射基础知识
  5. 微服务架构开发实战:如何实现微服务的自动扩展?
  6. Jquery的jqzoom插件的使用(图片放大镜)
  7. linux该专接本还是工作_先专接本还是先工作?
  8. 手把手教你打造全宇宙最强的专属 Firefox 浏览器
  9. svn下载项目到指定文件夹,以及更新提交
  10. 模型预测控制Paolo Falcone 博士面试 (二) - MPC控制的稳定性
  11. 易控INSPEC软件与欧姆龙PLC以太网通讯
  12. bootstrap-入门学习-流体容器与响应式布局容器
  13. vue项目导入excel数据
  14. android sqlite同时读写,SQLite同时读写
  15. Adobe Photoshop裁剪和拉直照片改善构图
  16. mysql 语法大全
  17. 智源社区周刊:LeCun等撰文回应Marcus;朱松纯团队价值对齐工作登Science官网头条;马毅沈向洋等公开AI智能综述论文...
  18. Vue:v-charts图表设置指标别名
  19. HP笔记本HDMI检测不到外接显示器
  20. nginx快速配置参考

热门文章

  1. 图片采集-输入关键词批量收集图片免费
  2. 中文拼音转换成CMU的音素工具
  3. 视频如何加水印文字?
  4. 低成本快速开发 LoRa 终端:从 1 到 10000
  5. Spring Security优劣之我见
  6. Exploratory Social Network Analysis with Pajek(第三版)11
  7. c语言菜鸟编译器,C语言菜鸟基础教程之Hello World
  8. 《肖申克的救赎》的创业启示
  9. 自由职业接单,大平台,有保障
  10. 京东商品爬虫实战笔记