2022 RoboCom 世界机器人开发者大赛-本科组(省赛)RC-u4 攻略分队
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 攻略分队相关推荐
- 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)挨打记录
总结: 在pintia平台做题千万得早点做会的题,要不然等到最后全是疯狂提交撞数据骗分的,最后五分钟,提交一次题要等前面6900多人,根本来不及. 多看板子少摸鱼 学校实验室是真滴爽 做题连接 登录签 ...
- 2022 RoboCom 世界机器人开发者大赛-本科组(省赛) CAIP 完整版题解
文中代码均可AC, 有任何问题欢迎在评论区留言讨论 文章目录 RC-u1 不要浪费金币 题解 AC代码 RC-u2 智能服药助手 题解 AC代码(带注释) RC-u3 跑团机器人 题解 AC代码(详细 ...
- 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)
文章目录 1.不要浪费金币 2.智能服药助手 3.跑团机器人 4.攻略分队 5.树与二分图 1.不要浪费金币 哲哲最近在玩一个游戏,击杀怪物能获得金币 -- 这里记击杀第 i 个怪物获得的金币数量为 ...
- 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)T4, T5
RC-u4 攻略分队 题意 把 6 支队伍分成两组,把所有的可能方案按照下面的筛选方式找到最佳方案: 思路 比较简洁的一个方法是,将每一条方案中的元素都存储到结构体中,然后在结构体中重载运算符,根据给 ...
- 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)RC-u4 攻略分队 (已完结)
其它题目 题目 RC-u4 攻略分队 副本是游戏里的一个特色玩法,主要为玩家带来装备.道具.游戏资源的产出,满足玩家的游戏进程. 在 MMORPG<最终幻想14>里,有一个攻略人数最大达到 ...
- 2022 RoboCom 世界机器人开发者大赛-本科组(国赛)
文章目录 1.智能红绿灯 2.女王的大敕令 3.战利品分配 4.变牛的最快方法 5.养老社区 1.智能红绿灯 为了最大化通行效率同时照顾老年人穿行马路,在某养老社区前,某科技公司设置了一个智能红绿灯. ...
- 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-- 第三题 跑团机器人 (已完结)
其它题目 题目 RC-u3 跑团机器人 在桌面角色扮演游戏(TRPG,俗称"跑团")中,玩家需要掷出若干个骰子,根据掷出的结果推进游戏进度.在线上同样可以跑团,方法是由玩家们向机器 ...
- 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-- 第五题 树与二分图 (已完结)
其它题目 题目 RC-u5 树与二分图 设 G=(V,E) 是一个无向图,如果顶点集合 V 可分割为两个互不相交的子集 (A,B),并且每条边 (i,j)∈E 的两个端点 i 和 j 分别属于这两个不 ...
- 2022 RoboCom 世界机器人开发者大赛-本科组(国赛)-- 第三题 RC-u3 战利品分配
在某个战争游戏中,多个玩家组成一个大型军团,攻下若干城池,并获得战利品. 具体而言,游戏中有 N 个城市,并以 M 条长度为 1 的无向道路连接,玩家们组成的军团从 S 号城市开始进攻,目的地是 T ...
- 2022 RoboCom 世界机器人开发者大赛-高职组 国赛(RC-v3 智能护理中心统计)
RC-v3 智能护理中心统计 题意: 给出各管理节点的关系,和每个管理节点的照护老人数量. 两种操作:1. 转院. 2. 查询 该管理节点以下总的老人人数. 知识点: 树. #include<b ...
最新文章
- Javassist 使用指南(一)
- springcloud都有什么组件?这个列表不得不看!
- SDWebImage实现原理(怎么实现图片缓存器)
- Windows如何开启虚拟化,以安装虚拟机?
- 3D建模学什么?细分的话,有这么多方向
- webpack4.0各个击破(3)—— Assets篇
- SpringMVC之RequestParam详解
- html设置边框dw,Dreamweaver表格边框设置的css语法大全
- 第5章 编写主引导扇区代码
- BoolToVisibilityConverter In WPF
- POI设置背景色采坑记录
- 计算机网络考研常见 复试题总结
- ajax 与ssh结合,基于AJAX和SSH集成框架的国有资产管理系统
- html特殊符号的表示
- RTMP 摄像头推流至七牛云直播
- 服务器CPU和普通CPU的区别
- 草稿 22.10.10 !!!!!! YUYU
- 经此一疫,互联网公司格局发生了哪些变化?
- rar、zip、7z等压缩率的测试
- 怎么修改数据库服务器名字,修改SQL Server数据库服务器名字
热门文章
- 《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第3章 TWen-ASR-ONE 多线程和消息队列
- IDEA插件系列(105):IDEA Mind Map插件——IDEA思维导图
- deepin删除应用程序中图标
- POJ——多项式加法(WA)
- 2019全球logo设计趋势
- 蜀门注册php,蜀门私服常用修改配置大全
- 百度SEO与谷歌SEO的10大区别
- 服务器seo优化,百度SEO优化服务器选择是什么?
- 归零的心态,做好团队回顾
- oracle dbms lob,Oracle中LOB 处理(dbms_lob的一些用法)