A6102 | 「THUPC 2017」气氛 / Luft
时间限制1s
内存限制512MB
通过 / 提交0/0
题目描述
北大街,在中国是一个非常常见的地名,比较著名的有上海北大街,西安北大街,成都北大街,太原北大街,中关村北大街等。
我们都知道,北的意思是自由民主,大的意思是兼收并蓄,所以住在北大街的人也性情迥异,我们假设在北大街住了 $n$ 个人。
有人向住在北大街的这 $n$ 个人提了 $n-1$ 个问题,比如:
「用不用筷子?」
「吃不吃红烧肉?」
「写代码用 tab 还是 space」
「大括号换不换行?」
「……」
根据每个人的回答,他会被分配一个 $n-1$ 维的零一坐标,也就是一个点。这样 $n$ 个点可以恰好构成一个 $n-1$ 维空间中的凸包。
北大街的居民认为,在这个多面体内,便是华夏;多面体之外,便是蛮夷。我们可以很容易的计算出华夏部分的广义凸包体积。
有一天,清华路的 B 君来北大街玩,听说了这个故事觉得很有趣,于是也试着给出了这 $n - 1$ 个问题的答案,
清华路的 B 君,当然认为自己属于华夏,但是北大街表示在 $n-1$ 维空间中如果有 $n+1$ 个点的话,华夏部分的体积难以计算。
这下子气氛突然江化。所以这个问题就留给你了,输入 $n - 1$ 维度空间中的 $n + 1$ 个点,求广义凸包的体积。
由于这个体积可能不是整数,你只需要输出体积乘以 $n - 1$ 的阶乘,然后对 $1000000007$ 取模的结果。
我们都知道,北的意思是自由民主,大的意思是兼收并蓄,所以住在北大街的人也性情迥异,我们假设在北大街住了 $n$ 个人。
有人向住在北大街的这 $n$ 个人提了 $n-1$ 个问题,比如:
「用不用筷子?」
「吃不吃红烧肉?」
「写代码用 tab 还是 space」
「大括号换不换行?」
「……」
根据每个人的回答,他会被分配一个 $n-1$ 维的零一坐标,也就是一个点。这样 $n$ 个点可以恰好构成一个 $n-1$ 维空间中的凸包。
北大街的居民认为,在这个多面体内,便是华夏;多面体之外,便是蛮夷。我们可以很容易的计算出华夏部分的广义凸包体积。
有一天,清华路的 B 君来北大街玩,听说了这个故事觉得很有趣,于是也试着给出了这 $n - 1$ 个问题的答案,
清华路的 B 君,当然认为自己属于华夏,但是北大街表示在 $n-1$ 维空间中如果有 $n+1$ 个点的话,华夏部分的体积难以计算。
这下子气氛突然江化。所以这个问题就留给你了,输入 $n - 1$ 维度空间中的 $n + 1$ 个点,求广义凸包的体积。
由于这个体积可能不是整数,你只需要输出体积乘以 $n - 1$ 的阶乘,然后对 $1000000007$ 取模的结果。
输入格式
从标准输入读入数据。
第一行一个整数 $t$ 表示组数,接下来是 $t$ 组数据
每组数据的第一行是一个整数 $n$ 。
接下来 $n + 1$ 行,每行 $n - 1$ 个整数,表示在 $n - 1$ 为空间中的一个点。
第一行一个整数 $t$ 表示组数,接下来是 $t$ 组数据
每组数据的第一行是一个整数 $n$ 。
接下来 $n + 1$ 行,每行 $n - 1$ 个整数,表示在 $n - 1$ 为空间中的一个点。
输出格式
输出到标准输出。
对于每组数据,输出一行一个整数表示答案。
输入 $n + 1$ 个点的凸包体积乘以 $n - 1$ 的阶乘,然后对 $1000000007$ 取模的结果。
对于每组数据,输出一行一个整数表示答案。
输入 $n + 1$ 个点的凸包体积乘以 $n - 1$ 的阶乘,然后对 $1000000007$ 取模的结果。
输入输出样例
输入 #1
1 3 0 0 0 1 1 0 1 1
输出 #1
2
$1 \leq t \leq 100$
$3 \leq n \leq 35$
点的坐标一定是 $0$ 或者 $1$。
$3 \leq n \leq 35$
点的坐标一定是 $0$ 或者 $1$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?