A15113 | Railway System
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
As for the technology in the outside world, it is really too advanced for Gensokyo to even look up to.
—Yasaka Kanako, Symposium of Post-mysticism
This is an interactive problem.
Under the direct supervision of Kanako and the Moriya Shrine, the railway system of Gensokyo is finally finished. GSKR (Gensokyo Railways) consists of $n$ stations with $m$ bidirectional tracks connecting them. The $i$ -th track has length $l_i$ ( $1\le l_i\le 10^6$ ). Due to budget limits, the railway system may not be connected, though there may be more than one track between two stations.
The value of a railway system is defined as the total length of its all tracks. The maximum (or minimum) capacity of a railway system is defined as the maximum (or minimum) value among all of the currently functional system's [full spanning forest](https://en.wikipedia.org/wiki/Spanning_tree#Spanning_forests).
In brief, full spanning forest of a graph is a spanning forest with the same connectivity as the given graph.
Kanako has a simulator only able to process no more than $2m$ queries. The input of the simulator is a string $s$ of length $m$ , consisting of characters 0 and/or 1. The simulator will assume the $i$ -th track functional if $s_i=$ 1. The device will then tell Kanako the maximum capacity of the system in the simulated state.
Kanako wants to know the the minimum capacity of the system with all tracks functional with the help of the simulator.
The structure of the railway system is fixed in advance. In other words, the interactor is not adaptive.
—Yasaka Kanako, Symposium of Post-mysticism
This is an interactive problem.
Under the direct supervision of Kanako and the Moriya Shrine, the railway system of Gensokyo is finally finished. GSKR (Gensokyo Railways) consists of $n$ stations with $m$ bidirectional tracks connecting them. The $i$ -th track has length $l_i$ ( $1\le l_i\le 10^6$ ). Due to budget limits, the railway system may not be connected, though there may be more than one track between two stations.
The value of a railway system is defined as the total length of its all tracks. The maximum (or minimum) capacity of a railway system is defined as the maximum (or minimum) value among all of the currently functional system's [full spanning forest](https://en.wikipedia.org/wiki/Spanning_tree#Spanning_forests).
In brief, full spanning forest of a graph is a spanning forest with the same connectivity as the given graph.
Kanako has a simulator only able to process no more than $2m$ queries. The input of the simulator is a string $s$ of length $m$ , consisting of characters 0 and/or 1. The simulator will assume the $i$ -th track functional if $s_i=$ 1. The device will then tell Kanako the maximum capacity of the system in the simulated state.
Kanako wants to know the the minimum capacity of the system with all tracks functional with the help of the simulator.
The structure of the railway system is fixed in advance. In other words, the interactor is not adaptive.
输入格式
The first and only line of input contains two integers $n,m$ ( $2 \leq n \leq 200$ , $1\le m \le 500$ ) — the number of stations and tracks.
输出格式
Begin the interaction by reading $n,m$ .
To make a query, print "? $s$ " (without quotes, $s$ is a string of length $m$ , consisting of characters 0 and/or 1). Then you should read our response from standard input — the maximum capacity of the system in the simulated state.
If your program has made an invalid query or has run out of tries, the interactor will terminate immediately and your program will get a verdict Wrong answer.
To give the final answer, print "! $L$ " (without the quotes, $L$ is the minimum capacity of the system with all tracks functional). Note that giving this answer is not counted towards the limit of $2m$ queries.
After printing a query do not forget to output end of line and flush the output. Otherwise, you will get Idleness limit exceeded. To do this, use:
- fflush(stdout) or cout.flush() in C++;
- System.out.flush() in Java;
- flush(output) in Pascal;
- stdout.flush() in Python;
- see documentation for other languages.
Hacks
The first line of input must contain two integers $n,m$ ( $2 \leq n \leq 200$ , $1\le m \le 500$ ) — the number of stations and tracks.
The next $m$ lines of input must contain exactly $3$ space-separated integers $u_i$ , $v_i$ , $l_i$ ( $1\le u_i,v_i \le n$ , $u_i\ne v_i$ , $1 \leq l_i \leq 10^6$ ) — the endpoints and the length of the $i$ -th track.
To make a query, print "? $s$ " (without quotes, $s$ is a string of length $m$ , consisting of characters 0 and/or 1). Then you should read our response from standard input — the maximum capacity of the system in the simulated state.
If your program has made an invalid query or has run out of tries, the interactor will terminate immediately and your program will get a verdict Wrong answer.
To give the final answer, print "! $L$ " (without the quotes, $L$ is the minimum capacity of the system with all tracks functional). Note that giving this answer is not counted towards the limit of $2m$ queries.
After printing a query do not forget to output end of line and flush the output. Otherwise, you will get Idleness limit exceeded. To do this, use:
- fflush(stdout) or cout.flush() in C++;
- System.out.flush() in Java;
- flush(output) in Pascal;
- stdout.flush() in Python;
- see documentation for other languages.
Hacks
The first line of input must contain two integers $n,m$ ( $2 \leq n \leq 200$ , $1\le m \le 500$ ) — the number of stations and tracks.
The next $m$ lines of input must contain exactly $3$ space-separated integers $u_i$ , $v_i$ , $l_i$ ( $1\le u_i,v_i \le n$ , $u_i\ne v_i$ , $1 \leq l_i \leq 10^6$ ) — the endpoints and the length of the $i$ -th track.
输入输出样例
输入 #1
5 4 0 5 9 7
输出 #1
? 0000 ? 1110 ? 1111 ? 1101 ! 7
Here is the graph of the example, satisfying $l_i=i$ .


C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted