当前位置: 首页 > news >正文

GYM106007D-Master of the Arena

GYM106007D-Master of the Arena

题目大意

\(n\) 个战士,给你一个 \(n*n\) 的矩阵,\(a_{ij}==1\) 表示 \(i\) 战士一定可以打败 \(j\) 战士; \(a_{ij}==0\) 表示 \(i\) 战士一定输给 \(j\) 战士; \(a_{ij}==?\) 表示结果尚未确定,你可以自行选择。

你必须安排 \(n-1\) 场一对一的比赛,最终只有一名战士保持不败,这个人必须是标号为 \(1\) 的战士。一个战士可以参加多场比赛直到被淘汰。如果无法做到输出 \(No\) ,否则输出 \(Yes\) 并且按比赛顺序输出 \(n-1\)\(a,b\) 表示在这场比赛中 \(a\) 击败了 \(b\)

题解

对于确定的击败,可以建立一条有向边,对于 \(?\) 建立一条无向边。然后从 \(1\) 开始 \(dfs\) ,可以遍历所有的结点,建立出一棵树,那就存在合法的答案,否则便不存在答案。

对于合法的答案,按照树的形状,从叶子节点开始按照拓扑序输出边即可。

#include<bits/stdc++.h>
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define umap unordered_map
#define endl '\n'
using namespace std;
using i128 = __int128;
const int mod =1e9+7;
template <typename T>void read(T&x){x=0;int f = 1;char c=getchar();for(;!isdigit(c);c=getchar())if(c=='-')f=-1;for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);x*=f;
}
template <typename T>void print(T x) {if (x < 0) { putchar('-'); x = -x; }if (x > 9) print(x / 10);putchar(x % 10 + '0');
}
#define int long long
const int N=500005;
const int M=2000005;
vector<int> fa(2000);
vector<string> s(2000);
vector<int> deg(2000);
vector<int> vis(2000);
int n;
void dfs(int u,int f)
{fa[u]=f;deg[f]++;for(int i=1;i<=n;i++){if(fa[i]!=i) continue;if(s[u-1][i-1]=='1'||s[u-1][i-1]=='?'){dfs(i,u);}}
}void dfs2(int u)
{cout<<fa[u]<<" "<<u<<endl;vis[u]=1;if(fa[u]!=1&&--deg[fa[u]]==0) dfs2(fa[u]);
}
inline void solve()
{cin>>n;for(int i=0;i<n;i++) {cin>>s[i];}for(int i=0;i<=n;i++) fa[i]=i,deg[i]=0,vis[i]=0;dfs(1,0);for(int i=1;i<=n;i++){if(fa[i]==i){cout<<"No"<<endl;return;}}cout<<"Yes"<<endl;for(int i=2;i<=n;i++){if(deg[i]==0&&vis[i]!=1){dfs2(i);}}
}signed main()
{ios;int T=1;cin>>T;for(;T--;) solve();return 0;
}
http://www.jsqmd.com/news/45497/

相关文章:

  • 最牛Ai视频工具 Viggle 放大招了?开放终身会员,积分永不过期!
  • Mac 从零开始配置 VS Code + Claude/Codex AI 协同开发环境教程 - 教程
  • 20232416 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • 深入解析:【2B篇】阿里通义 Qwen3-VL 新增 2B、32B 两个模型尺寸,手机也能轻松运行
  • 2025北京托福机构TOP5榜单!无老师/新通领衔,提分率90%+机构全解析
  • Why did Sanminism fail?
  • 网络安全产品深度对比:Detectify与Halo Security的技术架构剖析
  • pyppeteer: 连接到已打开的chrome
  • 深入解析:【开题答辩过程】以《重庆市社区养老服务小程序设计与实现》为例,不会开题答辩的可以进来看看
  • 2025年玻璃棉夹芯板直销厂家权威推荐榜单:聚氨酯夹芯板/两面企口夹芯板/金属幕墙夹芯板系统源头厂家精选
  • 使用信号量实现父子父子进程交替运行的学习笔记
  • 基于MATLAB实现图像缺陷检测、清晰度评估及自动对焦功能
  • 托福提分认准这些!2025五大靠谱机构推荐,从基础到冲刺全覆盖
  • 海南州一对一辅导机构靠谱推荐:2026最新教育机构榜! 持证师资精准发力
  • 2025 最新切割工程队推荐!混凝土 / 桥梁 / 支撑梁 / 无损切割等全场景工程队口碑排行榜,专业服务权威推荐
  • 2025年淮南一对一家教机构推荐:五大辅导机构测评排行榜,综合实力全解析!
  • 2025 最新基质生产线厂家权威推荐榜:泥炭育苗栽培专用设备,全球测评优质厂家全解析花卉/营养土/椰糠/白泥炭/黑泥炭/齿轮筛基质生产线公司推荐
  • 2025 最新解压机厂家权威推荐榜:椰糠 / 泥炭 / 基质解压机源头厂家测评优选,聚焦专业服务与市场口碑
  • 从源码编译安装gdal3.6.2库
  • 2025 最新包装盒厂家推荐排行榜:一站式定制解决方案权威测评,涵盖食品、美妆、礼品等多领域优质品牌彩盒印刷/茶叶礼盒/烘焙包装盒订制公司推荐
  • 朝阳市一对一辅导机构推荐,2026年课外家教补习机构权威排行榜
  • 完整教程:ctf.show--web入门--爆破
  • 2025 最新工程造价公司咨询推荐榜:国际权威测评认证的全行业靠谱服务商优选指南上海/工程造价审核/工程造价全过程跟踪审计/工程预算造价/厂房工程造价审核/工程结算造价审核公司推荐
  • element-plus表格相同行合并工具
  • 蚌埠一对一辅导机构权威推荐:2025家教机构排行榜,穿透式测评!
  • html-webpack-plugin与PWA:生成Service Worker兼容HTML - 详解
  • 锦州一对一家教机构推荐:2025年辅导机构权威排行榜,5家机构避坑指南
  • 黄南州一对一补习机构良心推荐:2026最新家教机构榜单!费用透明不花冤枉钱
  • 海东一对一家教机构推荐:2026小初高全学科补习机构靠谱辅导推荐,家长避坑指南!
  • 上海一对一辅导机构怎么选?2025最新权威排行榜揭晓,避坑指南 + 优选名单!