8.20 并不是一个好收尾的杭电10
1004-Permutation Counting
题意
给定 $n-1$ 长度的 $01$ 关系数组,$0$ 和 $1$ 代表原数组中当前位和前一位的大小关系。问有多少种符合条件的原数组方案。
代码
1 | #include<bits/stdc++.h> |
1010-Tic-Tac-Toe-Nim
题意
给定 $3*3$ 的石子堆,$a$ 、$b$ 两人轮流拿石子,每人的第一轮必须整堆拿走,其余任意。问先手有几种取法能保证必胜。
思路
枚举 $a$ 第一步取的点,再枚举 $b$ 第一步能取的剩下 $4$ 个点。如果有 $b$ 能赢的状态就不计数。
最优局势到最后一定是除了三个横纵坐标各不相同的点为 $0$ 外其他全是 $1$ 。这时候再两步就一定走到结局。所以枚举 $a$ 、$b$ 初始点后,异或第三个能取到 $0$ 的点的值和其他点的值 $-1$ 。为 $0$ 的话 $b$ 胜利。
代码
1 | #include<bits/stdc++.h> |
1011-Task Scheduler
题意
有 $n$ 个任务,每个任务需要 $t_i$ 个人完成。公司一共有 $m$ 个员工,其中有 $k$ 个掉线。随机安排在当前没任务的员工分配任务,随机到掉线的员工就重新分配直到分配完成。问如何安排任务顺序可以使分配次数的期望最少,如果有多个方案输出其中字典序最小的。
思路
特判 + $sort$ ,就这是第三简单???
代码
1 | #include<bits/stdc++.h> |