686 字
2 分钟
切披萨
时空限制
C/C++: 1s/256MB
其他语言:2s/512MB
题目背景
全宇宙 整个真澄町都知道,朱比华做的披萨超级好吃!
辻仓朱比华擅长用一些常见的食材,烤制出被称为绝品的披萨。
题目描述
烤制好的披萨可以看作一个完美的圆。
速川麦需要把披萨均分给 位镇民。美观起见,朱比华要求麦 至多 切 刀,且每一刀都必须满足以下条件:
- 每刀必须经过圆心;
- 每刀必须完全切开披萨,也就是说,一刀会形成一条完整的直径;
切完后,每位镇民可以拿到一块或多块披萨。麦需要保证每位镇民拿到的披萨总面积相同。
披萨块的编号方式如下。
对于每一刀 ,它对应两条射线:
将所有 条射线的角度按照从小到大的顺序排序,记为:
其中:
第 块披萨定义为从射线 逆时针旋转到射线 之间的扇形,其中:
因此,当 时,披萨块共有 块,编号为:
当 时,整张披萨视为唯一的一块,编号为 。

请输出速川麦可能给出的一种合法的切法和分配方式。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
对于每个测试用例:
- 仅一行包含一个整数 (),表示需要分给的人数。
输出格式
对于每个测试用例,输出若干行。
首先输出一行,包含一个整数 ,表示麦要切的刀数。
接下来输出一行,包含 个实数,每输出一个实数 (),表示第 刀与 轴正方向的夹角,单位为度。
最后输出 行,表示每位镇民分到的披萨块。
第 行首先输出一个整数 ,表示第 位镇民分到的披萨块数量。
接下来输出 个整数,表示这些披萨块的编号。
若存在多种合法方案,输出任意一种即可。
当 checker 比较实数时,若绝对误差或相对误差不超过 ,则认为该实数正确。
样例
用例输入
212用例输出
01 110.0000001 11 2说明/提示
第一个测试用例中,。不需要切披萨,整张披萨作为第 块,分给唯一的镇民。
第二个测试用例中,。在 方向切一刀,将披萨分成 块面积相等的半圆,分别编号为 。两位镇民各分到一块,因此满足要求。
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 智能推荐






