AT_xmascon25_g.Gon Pack
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
设 N 为正整数。
令集合 {1,2,…,2N} 的所有划分成 N 元集合的 2 个子集的划分全集为 P。有 ∣P∣=21(N2N)。例如,当 N=3 时,{{1,5,6},{2,3,4}}∈P。
对于满足 1≤a1<a2<⋯<a2N 的整数序列 (a1,a2,…,a2N),好划分定义为:P∈P,且对任意 I∈P,存在一个边长集合为 {ai∣i∈I} 的非退化简单 N 边形。例如,当 N=3 时,{{1,5,6},{2,3,4}} 为好划分的条件是 a1,a5,a6 能作为三角形的三边,且 a2,a3,a4 也能作为三角形的三边。
给定 N 和一个 P∈P。问是否存在仅当 P 是好划分时才成立的整数序列 1≤a1<a2<⋯<a2N?
- 如果存在,则可以证明一定存在 a2N≤1017 的满足条件的 (a1,a2,…,a2N)。请给出一个满足所有条件的 (a1,a2,…,a2N)。
- 如果不存在,则存在满足下列条件的非负整数 k 和划分 Q1,Q2,…,Qk∈P,请输出其中使得 k 最小的一组解:
- 对于 j=1,2,…,k,都有 Qj=P。
- 对任意 1≤a1<a2<⋯<a2N,若 P 是好划分,则 Q1,Q2,…,Qk 至少有一个也是好划分。
在输入输出中,P 的每个元素用由 N 个 0 和 N 个 1 组成的以 1 结尾的字符串表示。每个字符种类索引的集合代表划分的每个子集。例如,当 N=3 时,{{1,5,6},{2,3,4}} 用 100011 表示。
输入格式
输入从标准输入读入,格式如下:
N P
输出格式
根据问题的两种情况,输出以下格式之一:
YES a1 a2 ⋯ a2N
NO k Q1 Q2 ⋯ Qk
输入输出样例
输入#1
3 100011
输出#1
YES 2 4 6 8 10 11
输入#2
3 100101
输出#2
NO 1 100011
说明/提示
部分分
- 满足限制的所有输入数据各包含一种。每个数据点正确可得 N 分。
样例解释 1
P={{1,5,6},{2,3,4}}。
在此输出样例中,2,10,11 可以作为三角形的三边,4,6,8 也可作为三角形的三边,因此 P 是好划分。可以证明其他划分均不是好划分。
样例解释 2
P={{1,4,6},{2,3,5}}。
如果满足如下 3 个条件:
- 1≤a1<a2<a3<a4<a5<a6
- a1,a4,a6 可以作为三角形三边
- a2,a3,a5 可以作为三角形三边
那么下述 2 个条件必然也满足:
- a1,a5,a6 可以作为三角形三边
- a2,a3,a4 可以作为三角形三边
数据范围
- 3≤N≤5。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?