RC-u4 攻略分队
分数 25
作者 DAI, Longao
单位 杭州百腾教育科技有限公司
副本是游戏里的一个特色玩法,主要为玩家带来装备、道具、游戏资源的产出,满足玩家的游戏进程。

在 MMORPG《最终幻想14》里,有一个攻略人数最大达到 56 人的副本“巴尔德西昂兵武塔”,因为有在副本里死亡不能复活、机制比较整蛊等特点,一度被玩家视作洪水猛兽。

在副本的开始,我们会遇到第一个难关:攻略的玩家要分为两组,同时讨伐副本 BOSS “欧文”和“亚特”。

已知以下信息:

玩家会组成 6 支队伍进入副本,其中第 i 队有 V
i

位玩家(i=1,⋯,6)。
每支队伍可能会有一些特殊角色:MT(主坦克)、工兵(负责探测陷阱)和指挥(负责指挥玩家)。
我们的任务是合理安排玩家的分组,以最大程度增加副本通过概率。分组的原则如下:

要将所有队伍分成 2 组,每支队伍必须且仅属于其中一组;
每组必须有至少一个 MT(主坦克)。
如果满足上述原则的分组方案不唯一,则按照下列规则确定唯一解:

优先选择每组有至少一个指挥和至少一个工兵的方案;
如果规则 1 无法满足,则优先选择每组至少有一个指挥的方案;
如果所有方案都不满足规则 2,或经过前 2 个规则筛选后,分组方案仍不唯一,则选择两边人数尽可能接近(即两边人数差尽可能小)的方案;
如果满足规则 3 的方案还不唯一,选择讨伐“欧文”的人数比讨伐“亚特”的人数更多的方案;
如果满足规则 4 的方案还不唯一,选择讨伐“欧文”的队伍编号方案中最小的一个。

本题就请你给出满足所有分组原则的分配方案。

输入格式:
输入第一行给出 6 支队伍的玩家数量,即 6 个非负整数 V
队伍人数为 0 时表示队伍不存在。

随后 6 行,按队伍编号顺序,每行给出一支队伍的特殊角色,格式为 ABC,其中 A 对应 MT,B 对应工兵,C 对应指挥。三种角色对应取值 0 或 1,0 表示没有该角色,1 表示有。

注:由于可能存在一人兼任多个特殊角色的情况,所以一支队伍中的特殊角色数量有可能大于该队伍的玩家数量。

输出格式:
输出分两行,第一行输出讨伐“欧文”的队伍编号,第二行输出讨伐“亚特”的队伍编号。同一行中的编号按升序输出,以 1 个空格分隔,行首尾不得有多余空格。

如果不存在合法的方案,输出GG。

输入样例1:
6 8 7 5 3 0
010
101
110
001
111
000
输出样例1:
2 3
1 4 5
输入样例2:
6 8 7 5 3 0
010
101
010
001
011
000
输出样例2:
GG
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
#include<map>
#pragma GCC optmize(3)
#pragma GCC optmize(2)
using namespace std;int num[8],flag=-1,re=10000,l=-1;
bool st[8];
int cnt[8][3];
// mt, gong, zhihui
vector<int>a,b,s;bool check(vector<int>&x,vector<int>&y)
{   if(x.empty()||y.empty())return false;int res=-1,r1=0,r2=0;static int q[3],e[3];memset(q,0,sizeof q);memset(e,0,sizeof e);for(int i=0;i<x.size();i++){int u=x[i];r1+=num[u];for(int j=0;j<3;j++){if(cnt[u][j])q[j]++;    }}for(int i=0;i<y.size();i++){int u=y[i];r2+=num[u];for(int j=0;j<3;j++){if(cnt[u][j])e[j]++;    }}if(q[0]&&e[0]&&q[1]&&q[2]&&e[1]&&e[2]){if(flag<2){flag=2;re=abs(r1-r2);l=r1-r2>0?1:0;return true;}res=2;}else if(q[0]&&e[0]&&e[2]&&q[2]){if(flag<1){flag=1;re=abs(r1-r2);l=r1-r2>0?1:0;return true;}res=1;}else if(q[0]&&e[0]){if(flag<0){re=abs(r1-r2);l=r1-r2>0?1:0;flag=0;return true;}res=0;}else return false;if(res==flag){if(abs(r1-r2)<re){re=abs(r1-r2);l=r1-r2>0?1:0;return true;}else if(abs(r1-r2)==re){int j=r1-r2>0?1:0;if(l<j){l=j;return true;}else if(l==j){return x<a;}}}return false;
}int main(){for(int i=1;i<=6;i++){scanf("%d",&num[i]);if(num[i]!=0)s.push_back(i);}for(int i=1;i<=6;i++){string x;cin>>x;for(int j=0;j<3;j++)cnt[i][j]=x[j]-'0';}int t=s.size();for(int i=1;i<1<<t;i++){vector<int>x,y;   for(int j=0;j<s.size();j++){   if(i>>j&1)x.push_back(s[j]);else y.push_back(s[j]);}if(check(x,y))a=x,b=y;} if(!a.size()||!b.size())return puts("GG"),0;for(int i=0;i<a.size();i++){if(i)printf(" ");cout<<a[i];}cout<<endl;for(int i=0;i<b.size();i++){if(i)printf(" ");cout<<b[i];}exit(0);
}

2022 RoboCom 世界机器人开发者大赛-本科组(省赛)RC-u4 攻略分队相关推荐

  1. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)挨打记录

    总结: 在pintia平台做题千万得早点做会的题,要不然等到最后全是疯狂提交撞数据骗分的,最后五分钟,提交一次题要等前面6900多人,根本来不及. 多看板子少摸鱼 学校实验室是真滴爽 做题连接 登录签 ...

  2. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛) CAIP 完整版题解

    文中代码均可AC, 有任何问题欢迎在评论区留言讨论 文章目录 RC-u1 不要浪费金币 题解 AC代码 RC-u2 智能服药助手 题解 AC代码(带注释) RC-u3 跑团机器人 题解 AC代码(详细 ...

  3. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)

    文章目录 1.不要浪费金币 2.智能服药助手 3.跑团机器人 4.攻略分队 5.树与二分图 1.不要浪费金币 哲哲最近在玩一个游戏,击杀怪物能获得金币 -- 这里记击杀第 i 个怪物获得的金币数量为 ...

  4. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)T4, T5

    RC-u4 攻略分队 题意 把 6 支队伍分成两组,把所有的可能方案按照下面的筛选方式找到最佳方案: 思路 比较简洁的一个方法是,将每一条方案中的元素都存储到结构体中,然后在结构体中重载运算符,根据给 ...

  5. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)RC-u4 攻略分队 (已完结)

    其它题目 题目 RC-u4 攻略分队 副本是游戏里的一个特色玩法,主要为玩家带来装备.道具.游戏资源的产出,满足玩家的游戏进程. 在 MMORPG<最终幻想14>里,有一个攻略人数最大达到 ...

  6. 2022 RoboCom 世界机器人开发者大赛-本科组(国赛)

    文章目录 1.智能红绿灯 2.女王的大敕令 3.战利品分配 4.变牛的最快方法 5.养老社区 1.智能红绿灯 为了最大化通行效率同时照顾老年人穿行马路,在某养老社区前,某科技公司设置了一个智能红绿灯. ...

  7. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-- 第三题 跑团机器人 (已完结)

    其它题目 题目 RC-u3 跑团机器人 在桌面角色扮演游戏(TRPG,俗称"跑团")中,玩家需要掷出若干个骰子,根据掷出的结果推进游戏进度.在线上同样可以跑团,方法是由玩家们向机器 ...

  8. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-- 第五题 树与二分图 (已完结)

    其它题目 题目 RC-u5 树与二分图 设 G=(V,E) 是一个无向图,如果顶点集合 V 可分割为两个互不相交的子集 (A,B),并且每条边 (i,j)∈E 的两个端点 i 和 j 分别属于这两个不 ...

  9. 2022 RoboCom 世界机器人开发者大赛-本科组(国赛)-- 第三题 RC-u3 战利品分配

    在某个战争游戏中,多个玩家组成一个大型军团,攻下若干城池,并获得战利品. 具体而言,游戏中有 N 个城市,并以 M 条长度为 1 的无向道路连接,玩家们组成的军团从 S 号城市开始进攻,目的地是 T  ...

  10. 2022 RoboCom 世界机器人开发者大赛-高职组 国赛(RC-v3 智能护理中心统计)

    RC-v3 智能护理中心统计 题意: 给出各管理节点的关系,和每个管理节点的照护老人数量. 两种操作:1. 转院. 2. 查询 该管理节点以下总的老人人数. 知识点: 树. #include<b ...

最新文章

  1. Javassist 使用指南(一)
  2. springcloud都有什么组件?这个列表不得不看!
  3. SDWebImage实现原理(怎么实现图片缓存器)
  4. Windows如何开启虚拟化,以安装虚拟机?
  5. 3D建模学什么?细分的话,有这么多方向
  6. webpack4.0各个击破(3)—— Assets篇
  7. SpringMVC之RequestParam详解
  8. html设置边框dw,Dreamweaver表格边框设置的css语法大全
  9. 第5章 编写主引导扇区代码
  10. BoolToVisibilityConverter In WPF
  11. POI设置背景色采坑记录
  12. 计算机网络考研常见 复试题总结
  13. ajax 与ssh结合,基于AJAX和SSH集成框架的国有资产管理系统
  14. html特殊符号的表示
  15. RTMP 摄像头推流至七牛云直播
  16. 服务器CPU和普通CPU的区别
  17. 草稿 22.10.10 !!!!!! YUYU
  18. 经此一疫,互联网公司格局发生了哪些变化?
  19. rar、zip、7z等压缩率的测试
  20. 怎么修改数据库服务器名字,修改SQL Server数据库服务器名字

热门文章

  1. 《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第3章 TWen-ASR-ONE 多线程和消息队列
  2. IDEA插件系列(105):IDEA Mind Map插件——IDEA思维导图
  3. deepin删除应用程序中图标
  4. POJ——多项式加法(WA)
  5. 2019全球logo设计趋势
  6. 蜀门注册php,蜀门私服常用修改配置大全
  7. 百度SEO与谷歌SEO的10大区别
  8. 服务器seo优化,百度SEO优化服务器选择是什么?
  9. 归零的心态,做好团队回顾
  10. oracle dbms lob,Oracle中LOB 处理(dbms_lob的一些用法)