AT_tenka1_2018_d.Crossing

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个整数 NN。请判断是否存在一组 {1,2,…,N}\{1,2,\ldots,N\} 的子集组 (S1,S2,…,Sk)(S_1, S_2, \ldots, S_k),满足以下条件,并在存在时构造出这样的一组。

  • 对于 1,2,…,N1,2,\ldots,N 中的每个整数,恰好属于 S1,S2,…,SkS_1, S_2, \ldots, S_k 中的两个集合。
  • 对于 S1,S2,…,SkS_1, S_2, \ldots, S_k 中任意两个集合,它们的交集恰好包含一个元素。

输入格式

输入通过标准输入给出,格式如下:

NN

输出格式

如果不存在满足条件的子集组,输出 No。如果存在,先输出 Yes,然后按照如下格式输出子集的信息。设 Si={Si,1,Si,2,…,Si,∣Si∣}S_i = \{S_{i,1}, S_{i,2}, \ldots, S_{i,|S_i|}\}。

如果有多组满足条件的答案,输出任意一组均可。

kk
∣S1∣|S_1| S1,1S_{1,1} S1,2S_{1,2} …\ldots S1,∣S1∣S_{1,|S_1|}
∣S2∣|S_2| S2,1S_{2,1} S2,2S_{2,2} …\ldots S2,∣S2∣S_{2,|S_2|}
⋮\vdots
∣Sk∣|S_k| Sk,1S_{k,1} Sk,2S_{k,2} …\ldots Sk,∣Sk∣S_{k,|S_k|}

输入输出样例

  • 输入#1

    3

    输出#1

    Yes
    3
    2 1 2
    2 3 1
    2 2 3
  • 输入#2

    4

    输出#2

    No

说明/提示

限制

  • 1≤N≤1051 \leq N \leq 10^5
  • NN 是整数

样例解释 1

取 (S1,S2,S3)=({1,2},{3,1},{2,3})(S_1, S_2, S_3) = (\{1,2\}, \{3,1\}, \{2,3\}),可以验证满足条件。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页