Skip to content

Latest commit

 

History

History
167 lines (89 loc) · 5.92 KB

File metadata and controls

167 lines (89 loc) · 5.92 KB

PA 2001

Round 0

Silnia (sil)

题意:给出$n$,求$n! \bmod 10$。

$0 \le n \le 30000$

题解:略

Round 1

Potęga (pot)

题意:给出$n$,输出$2^n$的个位数

$0 \le n \le 10^{40}$

题解:略

Round 2

Waga binarna (wag)

题意:给出$n$对数$(l,m)$,表示分数$\frac{l}{2^m}$,把它们排序后输出。

$1 \le n \le 2000, 1 \le m \le 10, 0 < l < 2^m$

题解:略

Round 3

Restauracje (res)

题意:给出$n$个点,$m$条边的带权无向图,其中有$k$个特殊点,求其他点到最近特殊点的最大距离。

$1 \le k \le n \le 1000, 1 \le m \le 30000$

题解:多源最短路求一下,然后取最大值。

Rozkłady dwójkowe (roz)

题意:给出一个整数$n$,找出它的一个Signed-digit_representation,要求非零个数最少。

$|n| \le 500$

题解:就是找一个Non-adjacent_form,参考wiki里的算法。

Round 4

Dwubarwne wieże Hanoi (han)

题意:$n$层双色汉诺塔最小步数。

$0 \le n \le 1000$

题解:A033120

Inwestycja (inw)

题意:给出一棵$n$个节点的无根树,找出一条边,删掉之后,两边子树大小乘积最大。

$1 \le n \le 1000$

题解:略

Ustawiony turniej (tur)

题意:有$n$个人,要为他们安排$n-1$场比赛,每一场的胜利者和下一个人打。现在知道了一些比赛结果:$a$和$b$打,$a$一定输,问哪些人存在一种安排序列,必定会在最后胜出。

$1 \le n \le 1000$

题解:首先求出SCC,那么唯一一个入度为$0$的分量就是答案。

Wycieczka (wyc)

题意:有$n$个人,要去$m$个城市旅游。每个人有两个条件,都是一定要去某个城市,或者一定不去某个城市这种形式。

要求选出一个城市列表,满足所有人的需求。

$1 \le n \le 20000, 1 \le m \le 8000$

题解:裸2-SAT

Round 5

Lustrzana skrzynka (box)

题意:给出$n \times m$的格子,有些位置放了镜子:向右的光线会被折射成向上;向上的光线会被折射成向右。

现在告诉你从边界进来的光线,会从哪个边界出去。要求还原镜子的位置。

$1 \le n, m \le 100$

题解:考虑贪心模拟,尽可能先往上走,然后再往右走,假设当前位置是$(x,y)$,终点是$(x^\prime,y^\prime)$

  • 当前光线向右:如果$(x,y)$上方没有镜子并且$y \ne y^\prime$,或者$x \ne x^\prime$,那么可以继续向右;否则在当前位置放一面镜子,改成向上
  • 当前光线向上:如果当前位置有镜子,则改成向右;否则继续向左

Wiejski listonosz (pos)

题意:给出一个$n$个点$m$条边的联通无向图,保证每个点度数是偶数,点$i$的权值是$w_i$。从$1$出发,经过每个点,每条边至少一次,最后回到$1$。如果点$i$是经过的第$k$个不同的点,那么收益是$w_i-k$,每经过一条边的收益是$-1$。

找到一条路径最大化收益。

$1 \le n \le 200, 0 \le w_i \le 1000$

题解:可以证明收益和经过点的顺序无关,令路径长度是$l$,第一次经过点$i$的时候是地$k_i$个不同的点,那么 $$\text{profit}=\sum_{i=1}^{n}w_i-k_i - \sum_{i=1}^{l}1=\sum_{i=1}^{n}w_i-\sum_{i=1}^{n}k_i-l = \sum_{i=1}^{n}w_i-\frac{n(n+1)}{2}-l$$

于是代价和路径长度有关,显然走欧拉回路最靠谱。

Round 6

Skoczki (kni)

题意:$n \times n$的格子上,有$m$个障碍物。问最多可以放多少马,使得任意两个互相不能攻击。

$1 \le n \le 100, 0 \le m \le n^2$

题解:二分图匹配

Marsjańskie mapy (mar)

题意:给$n$个矩形$(x_1,y_1)-(x_2,y_2)$,求面积并。

$1 \le n \le 10000, 0 \le x_1 < x_2 \le 30000, 0 \le y_1 < y_2 \le 30000$

题解:扫描线

Teleporty (tel)

题意:有两座岛A和B,A岛上有$n$个传送门,B岛上有$m$个传送门。传送门可以设置成receiving或者sending模式。如果是receiving模式,则可以接收人;如果是sending模式,只要进入则会把人传送到终点。

现在给出每个传送门的终点,要求设置每个传送门的模式,使得:

  • 任何receiving模式的门至少有一个sending模式的门的终点是它
  • 任何sending模式的门的终点一定要是一个receiving模式的门

$1 \le n, m \le 50000$

题解:先把A岛的全部设置成sending模式,B岛的全部设置成receiving模式。每次从B岛中选择一个useless的门,转换下模式,直到找不到为止。

用个queue维护入度为$0$的点集即可。