计蒜客-植物大战僵尸
嘟嘟最近迷恋上了一款游戏:植物大战僵尸。在梦中,他梦到了一个更加刺激的植物大战僵尸版本。有 n 个僵尸从起点出发,每个僵尸占用一个独立的直线道路。第 i 个僵尸在第一秒的速度为 f_ifi ,之后的速度为 s_isi 。嘟嘟在每一秒结束时,都会选择一个跑在最前面的僵尸(如果存在多个僵尸处于最前面,则选择编号最小的僵尸),使用能量豆将其消灭。
求嘟嘟消灭僵尸的顺序。
输入格式
第一行包含一个整数 Ca ( Ca ≤ 20 ) ,表示有 Ca 组测试数据,对于每组测试数据:
第一行包含一个整数 n ( 1 ≤ n ≤ 50000 ) 。
接下来 n 行每行包含两个整数 f_ifi s_isi ( 0 ≤ f_ifi ≤ 500 ; 0 < s_isi ≤ 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;
}
计蒜客-植物大战僵尸相关推荐
- 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之植物篇
目录 1.单卡片无CD 1.1 思路一 1.2 思路二 2.全卡片无CD 3.豌豆射手射速修改(修改植物射速) 4.实现豌豆射手发射"玉米加农炮"(思路) 上一期教程中,我们学习了 ...
- 杠上植物大战僵尸210331
杠上植物大战僵尸210331 准备工作 着手改关卡 改金币 遇到的问题 准备工作 下载"植物大战僵尸年度版",嘿不错,下载游戏网页界面下就有说用户信息备份在哪里的,('-\植物大战 ...
- 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之其他篇
目录 1.跳关(任意选择关卡) 2.修改金币值 3.实现自动收集阳光 上一期教程中,我们学习了寻找植物大战僵尸僵尸距离基址.实现"秒杀"僵尸的方法.PS:上篇链接:[CE入门教程] ...
- 使用Cheat Enginee(CE)通关“植物大战僵尸”
使用Cheat Enginee(CE)通关"植物大战僵尸" 方法有很多,这里只介绍一种,关于基址的寻找和进制的变换之前已经发过相应博客,感兴趣可以去我的主页学习. 修改关数 之前的 ...
- 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之僵尸篇
目录 1.寻找僵尸位置基址 2.实现"秒杀"僵尸(修改僵尸血量) 上一期教程中,我们学习了修改植物大战僵尸的单卡片无CD.全卡片无CD.豌豆射手射速修改以及实现豌豆射手发射&quo ...
- 女友让我破解植物大战僵尸!我干脆撸了一款一样的....翻身舔狗把歌唱呀
今天给大家分享的开源项目可以说非常适合入门,还比较好玩,更是一个有故事的项目.既能满足想学习的读者,又能满足那些喜欢八卦的读者. 提到植物大战僵尸相信大部分读者都不陌生,可以说是塔防类游戏的鼻祖.就鸟 ...
- 计蒜客 挑战难题 爬楼梯
计蒜客 挑战难题 爬楼梯 假设你现在正在爬楼梯,楼梯有n级.每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部? 格式: 第一行输入一个数n(n<=50),代表楼梯的级数. 接下来一行输 ...
- 无脑博士的试管们java_计蒜客 无脑博士和他的试管们
标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...
- 【植物大战僵尸2】算法 笔记
文章目录 春日活动--旅行原木--特殊事件--植物挑战_超能花菜 春日活动--暖春植树--初春挑战 地图解锁顺序建议 花园战争 超z联赛 无尽挑战 无尽常用植物及装扮 植物排名 春日活动–旅行原木–特 ...
最新文章
- 6_分布式训练框架Horovod使用(20190111)
- 牛客 contest893 G-Truthman or Fakeman
- 非网管交换机和网管交换机的区别
- java 反射基础知识
- 微服务架构开发实战:如何实现微服务的自动扩展?
- Jquery的jqzoom插件的使用(图片放大镜)
- linux该专接本还是工作_先专接本还是先工作?
- 手把手教你打造全宇宙最强的专属 Firefox 浏览器
- svn下载项目到指定文件夹,以及更新提交
- 模型预测控制Paolo Falcone 博士面试 (二) - MPC控制的稳定性
- 易控INSPEC软件与欧姆龙PLC以太网通讯
- bootstrap-入门学习-流体容器与响应式布局容器
- vue项目导入excel数据
- android sqlite同时读写,SQLite同时读写
- Adobe Photoshop裁剪和拉直照片改善构图
- mysql 语法大全
- 智源社区周刊:LeCun等撰文回应Marcus;朱松纯团队价值对齐工作登Science官网头条;马毅沈向洋等公开AI智能综述论文...
- Vue:v-charts图表设置指标别名
- HP笔记本HDMI检测不到外接显示器
- nginx快速配置参考