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了,则打倒此怪兽,将获得的 ...
随机推荐
- JavaScript(JS)实现省市联动选择下拉列表
在开发一个应用的时候需要用刀省市联动的下拉列表,网上找到不少.但是要么太复杂,难以修改:要么根本就用不了,最后自己在一个示例中提取出数据,然后自己写了一个,简单易懂,适合新手... 代码如下: Pro ...
- Angular25 组件的生命周期钩子
1 生命周期钩子概述 组件共有9个生命周期钩子 1.1 生命周期的执行顺序 技巧01:测试时父组件传递对子组件的输入属性进行初始化操作 import { Component, Input, Simpl ...
- Apache htpasswd命令
一.简介 htpasswd是apache的一个工具,该工具主要用于建立和更新存储用户名.密码的文本文件,主要用于对基于http用户的认证. 二.语法 Usage: htpasswd [-cimBdps ...
- 实现一个简单的Plugin
1.准备 1)安装pluginlib_tutorials包: 2)创建一个包 2.创建基类 创建一个基类,所有的插件都将从基类继承,如RegularPolygon基类 创建一个基类头文件 其内容如下 ...
- MFC可视化
当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateData(FALSE):如果你希望知道用户在对话框中到底输入了什么,就应该在访问变量前调用UpdateData(TRUE ...
- Web Pages version 2兼容 Web Pages version 1的设置
If you want to run a site using Web Pages version 1 (instead of the default, as in the previous poin ...
- orcad找不到dll
如果运行Capture.exe找不到cdn_sfl401as.dll,如果运行allegro.exe找不到cnlib.dll,(上面俩个库文件都在C:/Cadence/SPB_16.3/tools/b ...
- poj3274 Gold Balanced Lineup(HASH)
Description Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been abl ...
- Linux 命令之chmod
立贴今日吉,不断更新,欢迎斧正,支持为感! 1. chmod --权限控制 chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Uni ...
- C++初始化,之不明白篇 cout<<x<<endl 与 cout<<"x = "<<cout<<x<<endl的输出的值会不一样
代码如下 #include <iostream> using namespace std; class point { public : int x; int y; ...