XVII Open Cup named after E.V. Pankratiev. Grand Prix of Tatarstan

From EOJ Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Problem A

Solved by Xiejiadong. 0:43 (+1)

题意:定义一个函数 $f(1)=0,f(x)=1(x\in prime),f(x)=f(a\cdot b)=f(a)\cdot b+f(b)\cdot a(x=a\cdot b)$ ,给出 $k$ ,求所有的 $f(n)=k\cdot n$ 。

题解:可以发现当 $k=1$ 的时候,满足要求的数是 $2^2,3^3,5^5,7^7,11^{11},\cdots $ 。

继续打表发现 $k=2$ 的时候是 $(2^2)^2,(2^2)\cdot (3^3),(3^3)^2\cdots $ 。

于是猜测就是从 $k=1$ 的里面任意挑 $k$ 个数组合得到。

直接 dfs 然后对符合要求的数排序即可。

Problem B

Unsolved.

Problem C

Unsolved.

Problem D

Solved by Kilo_5723. 0:46 (+)

Problem E

Solved by Weaver_zhu. 0:48 (+)

Problem F

Upsolved by Weaver_zhu. (-5)

Problem G

Unsolved.

Problem H

Solved by Kilo_5723. 4:34 (+)

Problem I

Unsolved. (-3)

Problem J

Solved by Kilo_5723. 1:50 (+4)

Problem K

Unsolved.

Problem L

Solved by Xiejiadong. 1:50 (+3)

题意:选定一个没有 `+` 的位置放置一个 `+` ,求能攻击掉多少个 `+` 。

题解:显然,`+` 的攻击是可逆的。那么我们对于其中一个 `+` 被激活以后可以攻击到的所有 `+` ,一定是这所有相关联的 `+` 其中一个被激活,即可攻击到所有的。

于是按照这个原理,我们可以把 `+` 按照联通块的形式划分。

然后对于每一个非 `+` ,最多可以放四个方向攻击,判断那个非 `+` 可以攻击最多的 `+` 即可。