HDU6396 (贪心+fread 挂)
题意:初始值你有k个属性的攻击vi,有n个怪兽,每个怪兽有k种属性的血量ai,并且有k种属性的加成bi,当你的k种属性的值全部大于等于某只怪兽的k种属性的血量,你可以杀死他,并且你的攻击力vi会升级,每种属性的攻击力vi都会加上那只怪兽的bi,求你最多能杀死多少怪兽,且输出最终你的每种属性的攻击力。
分析:
由于k最大为5,可以借助最多5个优先队列,每个优先队列qi保存的是所有怪兽的血量ai,先把所有怪兽存在第一个优先队列,然后从第一个优先队列开始,找出所有ai<=vi的怪兽并把它移到下一个优先队列vi+1,当到了最后一个队列,移出去的怪兽代表被杀死,然后更新vi,如果最后一个队列没有移除怪兽,代表已经杀不死任何怪兽了,循环结束;
!!!!!!!!!1这里要用到fread 快速读入挂。。。
普通的快速读入都不行 , 被T成狗。
#include<bits/stdc++.h>
int a[];
using namespace std;
namespace fastIO {
#define BUF_SIZE 100010
//fread -> read
bool IOerror = ;
inline char nc() {
static char buf[BUF_SIZE], *p1 = buf + BUF_SIZE, *pend = buf + BUF_SIZE;
if(p1 == pend) {
p1 = buf;
pend = buf + fread(buf, , BUF_SIZE, stdin);
if(pend == p1) {
IOerror = ;
return -;
}
}
return *p1++;
}
inline bool blank(char ch) {
return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t';
}
inline void read(int &x) {
char ch;
while(blank(ch = nc()));
if(IOerror)
return;
for(x = ch - ''; (ch = nc()) >= '' && ch <= ''; x = x * + ch - '');
}
#undef BUF_SIZE
};
using namespace fastIO;
struct no
{ int id,val;
friend bool operator < (no a , no b)
{
return a.val>b.val;
}
}TT;
priority_queue<no>que[];
struct No
{
int HP[],JHP[];
int id;
}M[];
int main()
{
int T,n,k;
read(T);
// printf("%d\n",T);
while(T--)
{
read(n) , read(k);
for(int i= ; i<=k ; i++)
{
while(!que[i].empty()) que[i].pop();
}
for(int i= ; i<=k ; i++)
{
read(a[i]);
}
for(int i= ; i<=n ; i++)
{
for(int j= ; j<=k ; j++)
read(M[i].HP[j]);
//scanf("%d",&);
for(int j= ; j<=k ; j++)
read(M[i].JHP[j]);
// scanf("%d",&);
} for(int i= ; i<=n ; i++)
{
que[].push({i,M[i].HP[]});
}
int ans=,per=;
while()
{
for(int i= ; i<k ; i++)
{
while(!que[i].empty())
{ TT=que[i].top();
int VAL=TT.val;
if(VAL>a[i]) break;
que[i].pop();// printf("520");
que[i+].push({TT.id,M[TT.id].HP[i+]}); }
}
while(!que[k].empty())
{
TT=que[k].top();
int VAL=TT.val;
if(VAL>a[k]) break;
ans++;
for(int i= ; i<=k ; i++) a[i]+=M[TT.id].JHP[i];
que[k].pop();
}
if(ans==per) break;
per=ans; }
printf("%d\n",ans);
for(int i= ; i<=k ; i++)
{
printf("%d",a[i]);
if(i!=k) printf(" ");
else puts("");
}
}
}
HDU6396 (贪心+fread 挂)的更多相关文章
- 第十三届北航程序设计竞赛决赛网络同步赛 B题 校赛签到(建树 + 打标记)
题目链接 校赛签到 对每个操作之间建立关系. 比较正常的是前$3$种操作,若第$i$个操作属于前$3$种,那么就从操作$i-1$向$i$连一条有向边. 比较特殊的是第$4$种操作,若第$i$个操作属 ...
- NWU现场赛——解题报告
负二进制转换 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Problem Desc ...
- hdu6396 /// fread()快速读入挂
题目大意: 给定n k 给定主角具有的k种属性 给定n个怪兽具有的k种属性和打死该怪兽后能得到的k种属性对应增幅 求主角最多能打死多少怪兽和最终主角的k种属性 k最大为5 开5个优先队列贪心 快速读入 ...
- [黑科技]跑的比fread还快的cin挂和cout挂
CCPC赛后摸鱼搞了个新的奇怪外挂 这里贴上利用sgetn和sputn来实现的读入读出挂,理论上比fread更优 期望在赛中TLE的代码能强行卡过去hhh 利用小规模的Codeforces - 103 ...
- HDU 6396 贪心+优先队列+读入挂
Swordsman Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- fread读入挂and普通读入挂and浮点数读入挂
fread读入挂 版本一 namespace fastIO { #define BUF_SIZE 100000 //fread -> read bool IOerror = 0; inline ...
- hdu6396(思维+输入挂)
Swordsman Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accept ...
- fread 快速读入 (神奇挂!)
注意这里是将后台的所有数据都读入在计算 #include<bits/stdc++.h> using namespace std; #define ll long long namespac ...
- hdu6396 Swordsman(贪心)
Swordsman 题目传送门 解题思路 先将每种属性排序,因为打倒怪兽会使属性增强,所以肯定是能打就打,用cnt[i]记录怪兽i已经被超过的属性数量,如果被超过的属性数为k了,则打倒此怪兽,将获得的 ...
随机推荐
- 17-取石子-hdu1846(巴什博奕)
http://acm.hdu.edu.cn/showproblem.php?pid=1846 Brave Game Time Limit: 1000/1000 MS (Java/Others) ...
- Spring Boot 启动失败,描述/Description: Cannot determine embedded database driver class for database type NONE
异常截图====> 快速解决方式==> 在SpringBoot的启动类上面添加注解:@EnableAutoConfiguration(exclude={DataSourceAutoConf ...
- iOS编程——Objective-C KVO/KVC机制[转]
这两天在看和这个相关的的内容,全部推翻重写一个版本,这是公司内做技术分享的文档总结,对结构.条理做了更清晰的调整.先找了段代码,理解下,网上看到最多的一段的关于KVC的代码 先上代码 1. 1 ...
- (转)IIS处理并发请求时出现的问题及解决
原文地址:http://www.cnblogs.com/hgamezoom/p/3082538.html 一个ASP.NET项目在部署到生产环境时,当用户并发量达到200左右时,IIS出现了明显的请求 ...
- QT开发环境
代码实现界面和槽 代码实现界面和槽 在上述工程的dialog.h中添加如下加黑代码: 加入头文件: #include <QLabel> #include <QLineEdit> ...
- 对request,session,application作用域形象理解
看到一篇比较有意思的文章,分享一下.原网址:http://blog.csdn.net/rushkid02/article/details/8063792 几乎所有的Web开发语言都支持Session功 ...
- 使用IneliJ IDEA 2016将Java Web项目导出为War包
本文记录使用IDEA导出war包的过程以及碰到问题的解决办法 虽说现在改用IDEA进行开发了,但还是用eclipse打war包 -.囧 这样下去不是办法... 于是今天就试着使用IDEA进行打包. 项 ...
- C# 常用正则验证[转]
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- centos7 .net core 使用supervisor守护进程,可以后台运行
1.安装supervisor yum install supervisor 2.配置supervisor vi /etc/supervisord.conf 拉到最后,这里的意思是 /etc/super ...
- 解决golang windows调试问题:Could not determine version number: could not find symbol value for runtime.buildVersion
版本信息: go:1.8.3 windows: win7/64 idea-go-plugin:171.4694.61 在windows下,使用dlv进行调试的时候,如果golang程序引入了c模块,比 ...