【链接】 我是链接,点我呀:)
【题意】

在这里输入题意

【题解】

开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相关推荐

  1. 大数加法【HDU 1002】

    大数加法模板 一般的加法只要int类型的两数直接相加即可,大一点的数可以设为long long类型,而超过长整型的数则属于大数问题了,大数加法其实也比较简单,利用数组实现就可以啦: 主要思想如下: ( ...

  2. 【 HDU - 5093】Battle ships(匈牙利算法,二分图匹配)

    题干: Dear contestant, now you are an excellent navy commander, who is responsible of a tough mission ...

  3. 【HDU - 1455】Sticks (dfs + 剪枝)

    题干: George took sticks of the same length and cut them randomly until all parts became at most 50 un ...

  4. 【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 ...

  5. 【HDU - 4217 】Data Structure? (线段树求第k小数)

    题干: Data structure is one of the basic skills for Computer Science students, which is a particular w ...

  6. 【HDU - 1754】I Hate It (线段树模板 单点覆盖更新+区间最大值查询)

    题干: 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.  这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当 ...

  7. 【HDU 5765】Bonds(进制运算妙用)

    [HDU 5765]Bonds(进制运算妙用) Bonds Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K ...

  8. 【HDU 5755】Gambler Bo(高斯消元)

    [HDU 5755]Gambler Bo(高斯消元) Gambler Bo Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 131072 ...

  9. 【HDU 6973】Bookshop 树剖+平衡树

    [HDU 6973]Bookshop 树剖+平衡树 [引言] ​ 平衡树的题做得比较少,难得补一次神题,记录一下供以后学习. [题意] ​ 给出一棵 nnn 个结点的树,每个结点有一个价值为 pip_ ...

最新文章

  1. Android性能优化典范第二季
  2. OpenCV——RGB三通道分离
  3. 洛谷P1265 公路修建题解
  4. 【Java面试题视频讲解】提取不重复的整数
  5. 如何在SAP云平台ABAP编程环境里创建自己的Z表
  6. net与树莓派的情缘-安装与卸载MySql(五)
  7. JAVA中CLASS.FORNAME的含义
  8. 华为徐直军:今年超3亿设备搭载鸿蒙系统
  9. 【Word】无分页符却出现异常分页情况
  10. java大作业私人管家系统_微软蓝天云平台:中小企业的私人管家
  11. 小案例:基于python的动态时钟,带十二时辰和经络养身
  12. Nebula Graph 在企查查的应用
  13. 优秀的免费高清图片素材网站推荐
  14. 怎么做餐饮行业的引流?
  15. MongoDB之查询文档
  16. ret和retf的区别和用法
  17. 《一周搞定模电》—集成运算放大器
  18. pdf文件的简单介绍-提取pdf中的内容
  19. ISE启动Modelsim时报错:Platform Mismatch!
  20. 微信开发者工具的版本管理如何使用

热门文章

  1. VMware ESXI5.0的安装配置
  2. Oracle Net Services 配置:Xlib: connection to :0.0 refused by server
  3. python 工程结构加固_[原创]某企业级加固[四代壳]VMP解释执行+指令还原
  4. qcow2镜像转换为iso_电子数据镜像格式的转换,以qcow2转raw为例
  5. 翁恺老师C语言学习笔记(十一)字符串
  6. 图神经网络的可解释性
  7. SAP License:赠品处理原理浅析
  8. Find the longest route with the smallest starting point
  9. git使用总结(持续更新,个人总结记录使用)
  10. 使用JavaScript将图片保存至本地