11
28
2018
1

https://codeforces.com/gym/100959

http://clatisus.com/2015-2016%20Petrozavodsk%20Winter%20Training%20Camp,%20Makoto%20rng_58%20Soejima%20Contest%204

 

E

签到题.

L

直接DP,需要用到观察.

J

prufer.

B

套用prim,用set维护.

C

BFS.

I

最短路.priority_queue用成了大根堆调了一晚上

F

[x/i]只有sqrt种,暴力.

H

根据期望的线性性每个格子独立.对于(i,j)算出第k步的概率.把每个格子的加起来一起算,暴力容斥就行了.

G

省选cbh讲过然而没听,不过挺简单的.

考虑枚举最后有多少段极长的黑块.

然后考虑每段是k条里的哪几条涂成的,容斥即可(DP算容斥系数,状态用map存).

于是转化为每段黑块的长度有个上界和下界,求铺在长度为n的链上的方案数.经典容斥.

O(挺快的).

D

DP状态很显然.f[i][j]表示第一个串前i个数第二个串前j个数形成的本质不同方案数.a[i]!=b[j]时候很容易转移.当a[i]=b[j]时候,为了不重不漏,考虑枚举往前移直到不同的那个地方的数谁在前,分别枚举是在另一个串到哪个数时候被加入的,后面那个形式的方案数可以预处理.

-----------------------------------------------------------------------------------------------------------------------

A

LJOJ4990.当时NOIP模拟赛时候其实不太会。。。

感觉这种题挺××的.

从小到大枚举质因子,如果一个数现在已经不行了,再乘上之后的质因子还是不行的(显然).不断乘新的质因子扩展即可.

O(很快).

M

感觉需要提高一下构造水平。

考虑把这东西弄得尽量均匀,所以把n个点按顺序放在圆上。

考虑这样子构造会比较均匀:每在圆上放一个三角形,就把这个三角形循环位移的所有三角形也放上,即n个n个放。

然后就转化成了相同多数量的1~n-1,要三个三个拎出来,每次拎出来的和%n=0。

不妨试试1~n-1都3个,那么总和=3n*(n-1)/2,n是奇数才有希望。举个例子n=7

1 2 3 4 5 6

1 2 3 4 5 6

1 2 3 4 5 6

注意到1+1,2+2,3+3,,,6+6 % 7 互不相同且!=0,所以直接拎{i,i,n-i-i}就OK了。

至此我们已经解决了n为奇数。

对于偶数,我们发现很难像奇数一样直接构造。

考虑构造题的一般套路,除了直接构造外,还可以把问题(递归)转化为子问题或是已经能解决的问题。

考虑化偶数为奇数,先把特殊点n拎出来。仍然考虑比较均匀地构造,比方说n向圆上所有距离为x的点对搞了个三角形,那么n与圆上所有点连了2条,圆上所有距离为x的连了一条。于是我们发现,圆上少拎一次,少拎的那3个与特殊点n去搞三角形,就做完了。

K

坐等方尤乐秒题。。。

Category: 未分类 | Tags: | Read Count: 120

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com