mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
686 字
2 分钟
切披萨
2026-05-24

时空限制#

C/C++: 1s/256MB

其他语言:2s/512MB

题目背景#

全宇宙 整个真澄町都知道,朱比华做的披萨超级好吃!


辻仓朱比华擅长用一些常见的食材,烤制出被称为绝品的披萨。

题目描述#

烤制好的披萨可以看作一个完美的圆。

速川麦需要把披萨均分给 nn 位镇民。美观起见,朱比华要求麦 至多n1n-1 刀,且每一刀都必须满足以下条件:

  • 每刀必须经过圆心;
  • 每刀必须完全切开披萨,也就是说,一刀会形成一条完整的直径;

切完后,每位镇民可以拿到一块或多块披萨。麦需要保证每位镇民拿到的披萨总面积相同。

披萨块的编号方式如下。

对于每一刀 aia_i,它对应两条射线:ai,ai+180a_i, a_i+180^\circ

将所有 2k2k 条射线的角度按照从小到大的顺序排序,记为:r1,r2,,r2kr_1,r_2,\dots,r_{2k}

其中:0r1<r2<<r2k<3600 \le r_1 < r_2 < \dots < r_{2k} < 360

jj 块披萨定义为从射线 rjr_j 逆时针旋转到射线 rj+1r_{j+1} 之间的扇形,其中:r2k+1=r1+360r_{2k+1}=r_1+360^\circ

因此,当 k>0k>0 时,披萨块共有 2k2k 块,编号为:1,2,,2k1,2,\dots,2k

k=0k=0 时,整张披萨视为唯一的一块,编号为 11

请输出速川麦可能给出的一种合法的切法和分配方式。

输入格式#

第一行包含一个整数 TT (1T1001 \le T \le 100),表示测试用例的数量。

对于每个测试用例:

  • 仅一行包含一个整数 nn (1n10001 \le n \le 1000),表示需要分给的人数。

输出格式#

对于每个测试用例,输出若干行。

首先输出一行,包含一个整数 kk,表示麦要切的刀数。

接下来输出一行,包含 kk 个实数,每输出一个实数 aia_i (0ai<1800 \le a_i < 180),表示第 ii 刀与 xx 轴正方向的夹角,单位为度。

最后输出 nn 行,表示每位镇民分到的披萨块。

ii 行首先输出一个整数 bib_i,表示第 ii 位镇民分到的披萨块数量。

接下来输出 bib_i 个整数,表示这些披萨块的编号。

若存在多种合法方案,输出任意一种即可。

当 checker 比较实数时,若绝对误差或相对误差不超过 10610^{-6},则认为该实数正确。

样例#

用例输入#

2
1
2

用例输出#

0
1 1
1
0.000000
1 1
1 2

说明/提示#

第一个测试用例中,n=1n=1。不需要切披萨,整张披萨作为第 11 块,分给唯一的镇民。

第二个测试用例中,n=2n=2。在 00^\circ 方向切一刀,将披萨分成 22 块面积相等的半圆,分别编号为 {1,2}\{1,2\}。两位镇民各分到一块,因此满足要求。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

切披萨
https://ac.nowcoder.com/acm/contest/134760/B
作者
Amekai
发布于
2026-05-24
许可协议
Unlicensed

部分信息可能已经过时

目录