题目名称 4445. 饭团
输入输出 riceball.in/out
难度等级 ★
时间限制 2000 ms (2 s)
内存限制 512 MiB
测试数据 11
题目来源 黄笑凡 于2026-08-16加入修改该题
开放分组 全部用户
提交状态
分类标签
分享题解
通过:5, 提交:17, 通过率:29.41%
左清源 100 8.905 s 11.80 MiB C++
杨正一 100 9.320 s 36.89 MiB C++
黄笑凡 100 9.376 s 12.42 MiB C++
hxf 100 10.460 s 13.49 MiB C++
hxf 100 10.519 s 13.52 MiB C++
黄笑凡 91 9.663 s 11.88 MiB C++
黄笑凡 10 8.082 s 11.74 MiB C++
黄笑凡 10 8.091 s 11.72 MiB C++
黄笑凡 10 8.093 s 11.72 MiB C++
黄笑凡 10 8.108 s 11.71 MiB C++
本题关联比赛
果蝇王邀请赛div1
关于 饭团 的近10条评论(全部评论)
https://www.luogu.com.cn/problem/P7124
RpUtl
2026-08-27 15:32 1楼

4445. 饭团

★   输入文件:riceball.in   输出文件:riceball.out   评测插件
时间限制:2 s   内存限制:512 MiB

【题目描述】

机房里有一棵蜜雪树,树上每个节点都生活着一只果蝇,并储存着一种饭团。由于每天都有神秘人馈赠,每个节点的饭团都是无限的。每只果蝇都能吃到子树内的所有饭团。

一天,果蝇王来到机房,决定让每只果蝇都吃到子树外的所有饭团。它可以进行以下操作:

- 指定 $x$,获取 $x$ 节点的饭团。

- 撤回上一次获取操作。

- 指定 $x$,把手上的每种饭团都拿一个给 $x$ 上的果蝇,注意此时手上的饭团必须恰好来自 $x$ 子树外的所有点,该操作并不会改变当前拥有的饭团种类。

果蝇王希望让每个果蝇都吃到子树外的饭团。帮帮它!

【输入格式】

第一行一个数 $T$,表示测试数据组数。

对于每组测试数据:

- 首先一行一个数 $n$,表示节点数。

- 接下来 $n-1$ 行,每行两个数表示树边。

【输出格式】

对于每组测试数据,输出一行。

对于操作一,输出 $+x$,$x$ 为要获取的节点。

对于操作二,输出 $-$。

对于操作三,输出 $=x$,$x$ 为要给饭团的节点。

当操作结束后,输出一个字符 $!$,接着换行。

行内所有字符间不允许有空格。

当已有一个节点的饭团时,不允许再对其进行一操作。

当手上没有饭团时,不允许进行二操作。

必须对每个点进行恰好一次三操作。

【样例输入】

1
6
1 2
3 1
4 2
3 6
5 3

【样例输出】

=1+1+3+5+6=2+2=4----+4+2=3+3+6=5-+5=6!

【数据规模与约定】

对于 10% 的数据,树是一条链。

对于另 10% 的数据,树是以 $1$ 为根的菊花。

对于另 20% 的数据,$n\le 2000$。

对于所有数据,$1\le n\le 10^5$,$1\le T\le 3$。

对于每组测试数据,最多进行 $4.5\times 10^6$ 次一操作。

大样例

【来源】

luogu P7124