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

2023 ICPC ECfinal J

J. Travel 2

思维,模拟搜索。

如果从 \(u\) 选一条边到 \(v\),然后再从 \(v\) 又刚好选到一条边回来 \(u\),那么 \(u-v\) 这条边我们已经知道它分别在 \(u\)\(v\) 里的排名了,一共有 \(m\) 条边,显然 \(2m\) 次可以拿来确定有哪些边。

一开始什么都不知道,考虑从 \(1\) 的第 \(1\) 条边一直出发,以此到 \(v_1,v_2,...\) 的第一条边去找,假如某次询问后又回到了上一个点,那么就从上一个点的第二条边出发,以此往复。

假如某次询问后回到 \(u\) 这个点,而这个点已经已经确定了所有的边,那么可以把这个点标记,接下来去从它所连向的点中找没有确定完所有边的点 \(v\) 去进行上面的搜索过程,确定完 \(v\) 的所有边后再从 \(v\) 回溯到 \(u\),再去找下一个点。

手动模拟一下可以发现的是,除去那 \(2m\) 条确定边的过程中,已经确定完所有边的 \(u\) 去找未确定完所有边的 \(v\) 的过程,就是以 \(u\)\(v\) 的父节点的图中的一颗生成树的树边,而这样的查询过程,向下只会找 \(n-1\) 次,向上回溯需要 \(n-1\) 次,总次数 \(2m+2(n-1)\) 次。

点击查看代码
#include <bits/stdc++.h>using i64 = long long;void solve() {const int N = 2500;std::vector<int> d(N);auto move = [&](int i)->int{std::cout << "> " << i << std::endl;int x;std::cin >> x >> d[--x];return x;};int x, n = 0;std::cin >> x >> d[--x];std::vector<char> vis(N);std::vector<std::vector<int>> adj(N);auto dfs = [&](auto &&self, int u)->void{n = std::max(n, u);if(adj[u].size() < d[u]) {int v = move(adj[u].size() + 1);adj[u].push_back(v);self(self, v);} else{vis[u] = 1;for(int i = 0; i < adj[u].size(); i += 1) {int v = adj[u][i];if(vis[v]) continue;move(i + 1);self(self, v);for(int j = 0; j < adj[v].size(); j += 1) {if(adj[v][j] == u) {move(j + 1);break;}}}}};dfs(dfs, 0);std::cout << "! ";for(int i = 0; i < n; i += 1) {for(auto &v : adj[i]) {if(i > v) {continue;}std::cout << i + 1 << " " << v + 1 << " ";}}std::cout << std::endl;std::string s;std::cin >> s;}
int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t;std::cin >> t;while (t--) {solve();}return 0;
}
http://www.zskr.cn/news/19748.html

相关文章:

  • 实时Galgame - 动漫角色 语言生成+图片生成
  • 平安好车主小程序 充电站、加油站列表vmp+wasm逆向
  • Linux文件系统的实验
  • CPU多进程切换导致过载-CPU上下文切换
  • Vue3 之pinia状态管理
  • 乐理 -01识谱
  • 服务器丢包分析-iptables规则-MTU大小设置错误-perf-火焰图分析处理请求时内核线程调用
  • 2025 年水泥管厂家最新推荐排行榜,国标水泥管,二级水泥管,钢筋混凝土水泥管,大口径水泥管,平口水泥管公司推荐!
  • Day1 经典Holle word
  • 2025 年金属复合板厂家推荐广东粤洋建材科技有限公司,实力产能与定制服务全景解析金属复合板公司推荐
  • 致技术社区的英雄们:一场关于文明未来的建造邀请
  • SCP/NOIP 复习:插板法
  • 完整教程:iSCSI服务器
  • 非常好的学习方式是哪样
  • 【Trie】 UVA1401 Remember the Word - 教程
  • 2025 年 MES 服务商 TOP 平台机构推荐排行榜,mes 系统 /mes 软件 /mes 制造执行系统 /mes 生产制造执行系统 /mes 生产管理系统公司推荐
  • 2025 年10月 WMS 服务商最新推荐榜单,wms系统 wms软件,wms仓库管理软件,wms仓库管理系统软件公司推荐
  • Matlab凭借GUI实现点云的中值滤波(附最简版)
  • CF数据结构题做题记录-1
  • CCPC2023女生专场 游记(VP)
  • tp3.2不再生成Runtime/Logs日志
  • 心得:刷算法的痛点-只根据题目的case思考,不考虑边界情况,写出一坨shit
  • 2.4 DQN 变体(Rainbow)
  • Emacs折腾日记(三十二)——org mode的基本美化
  • pp
  • vim配置使用
  • shell展开shell数组
  • 原木
  • 2025年10月镀锌卷板厂家最新推荐排行榜,有花镀锌卷板,无花镀锌卷板,高锌层镀锌卷板,批发镀锌卷板公司推荐
  • 会话跟踪方案