【hdu 6396】Swordsman
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
开k个优先队列。每个队列都满足从小到大那种。。
首先将所有的怪物加入到第一个队列中。
然后对于v[i]>=pq[i].top()的怪物,把这个怪物加入到i+1个队列。
然后每个队列都这么做。
直到不会有怪物从一个队列转移到另外一个队列为止。
当某个怪物在第k个队列中也满足转移之后。。那么这个怪物就是能被打败的了。。
每个队列就是一种检验吧。。。如果k个都能。。那就都满足了。。
【代码】
#include <bits/stdc++.h>
using namespace std;priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >pq[6];
const int K = 5;
const int N = 1e5;int n,k;
int v[K+5],a[N+5][K+5],b[N+5][K+5];namespace IO {const int MX = 4e7;char buf[MX]; int c, sz;void begin() {c = 0;sz = fread(buf, 1, MX, stdin);}inline bool read(int &t) {while(c < sz && buf[c] != '-' && (buf[c] < '0' || buf[c] > '9')) c++;if(c >= sz) return false;bool flag = 0; if(buf[c] == '-') flag = 1, c++;for(t = 0; c < sz && '0' <= buf[c] && buf[c] <= '9'; c++) t = t * 10 + buf[c] - '0';if(flag) t = -t;return true;}
}int main()
{//freopen("D:\\rush.txt","r",stdin);IO::begin();int T;IO::read(T);while (T--){for (int i = 1;i <= 5;i++) while (!pq[i].empty()) pq[i].pop();IO::read(n);IO::read(k);for (int i = 1;i <= k;i++)IO::read(v[i]);for (int i = 1;i <= n;i++){for (int j = 1;j <= k;j++) IO::read(a[i][j]);for (int j = 1;j <= k;j++) IO::read(b[i][j]);}for (int i = 1;i <= n;i++) pq[1].push(make_pair(a[i][1],i));bool ok = false;int cnt = 0;while (!ok){ok = true;for (int j = 1;j <= k;j++)while (!pq[j].empty()){int value = pq[j].top().first,id = pq[j].top().second;if (v[j]<value) break;if (j==k){ok = false;cnt++;pq[j].pop();for (int l = 1;l <= k;l++) v[l]+=b[id][l];}else{pq[j+1].push(make_pair(a[id][j+1],id));pq[j].pop();}}}printf("%d\n",cnt);for (int i = 1;i <= k;i++) {printf("%d",v[i]);if (i==k) puts("");else putchar(' ');}}return 0;
}
转载于:https://www.cnblogs.com/AWCXV/p/9470006.html
【hdu 6396】Swordsman相关推荐
- 大数加法【HDU 1002】
大数加法模板 一般的加法只要int类型的两数直接相加即可,大一点的数可以设为long long类型,而超过长整型的数则属于大数问题了,大数加法其实也比较简单,利用数组实现就可以啦: 主要思想如下: ( ...
- 【 HDU - 5093】Battle ships(匈牙利算法,二分图匹配)
题干: Dear contestant, now you are an excellent navy commander, who is responsible of a tough mission ...
- 【HDU - 1455】Sticks (dfs + 剪枝)
题干: George took sticks of the same length and cut them randomly until all parts became at most 50 un ...
- 【HDU - 4006】The kth great number (优先队列,求第k大的数)
题干: Xiao Ming and Xiao Bao are playing a simple Numbers game. In a round Xiao Ming can choose to wri ...
- 【HDU - 4217 】Data Structure? (线段树求第k小数)
题干: Data structure is one of the basic skills for Computer Science students, which is a particular w ...
- 【HDU - 1754】I Hate It (线段树模板 单点覆盖更新+区间最大值查询)
题干: 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当 ...
- 【HDU 5765】Bonds(进制运算妙用)
[HDU 5765]Bonds(进制运算妙用) Bonds Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K ...
- 【HDU 5755】Gambler Bo(高斯消元)
[HDU 5755]Gambler Bo(高斯消元) Gambler Bo Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 131072 ...
- 【HDU 6973】Bookshop 树剖+平衡树
[HDU 6973]Bookshop 树剖+平衡树 [引言] 平衡树的题做得比较少,难得补一次神题,记录一下供以后学习. [题意] 给出一棵 nnn 个结点的树,每个结点有一个价值为 pip_ ...
最新文章
- Android性能优化典范第二季
- OpenCV——RGB三通道分离
- 洛谷P1265 公路修建题解
- 【Java面试题视频讲解】提取不重复的整数
- 如何在SAP云平台ABAP编程环境里创建自己的Z表
- net与树莓派的情缘-安装与卸载MySql(五)
- JAVA中CLASS.FORNAME的含义
- 华为徐直军:今年超3亿设备搭载鸿蒙系统
- 【Word】无分页符却出现异常分页情况
- java大作业私人管家系统_微软蓝天云平台:中小企业的私人管家
- 小案例:基于python的动态时钟,带十二时辰和经络养身
- Nebula Graph 在企查查的应用
- 优秀的免费高清图片素材网站推荐
- 怎么做餐饮行业的引流?
- MongoDB之查询文档
- ret和retf的区别和用法
- 《一周搞定模电》—集成运算放大器
- pdf文件的简单介绍-提取pdf中的内容
- ISE启动Modelsim时报错:Platform Mismatch!
- 微信开发者工具的版本管理如何使用
热门文章
- VMware ESXI5.0的安装配置
- Oracle Net Services 配置:Xlib: connection to :0.0 refused by server
- python 工程结构加固_[原创]某企业级加固[四代壳]VMP解释执行+指令还原
- qcow2镜像转换为iso_电子数据镜像格式的转换,以qcow2转raw为例
- 翁恺老师C语言学习笔记(十一)字符串
- 图神经网络的可解释性
- SAP License:赠品处理原理浅析
- Find the longest route with the smallest starting point
- git使用总结(持续更新,个人总结记录使用)
- 使用JavaScript将图片保存至本地