Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/fontdata.js

2015 ACM Syrian Collegiate Programming Contest

A. My Friend of Misery

计算出答案的上下界即可。

时间复杂度O(n)

  

B. Brother Louie

纵坐标根据深度即可计算,比较麻烦的是横坐标。

设最左边的叶子的横坐标为t,那么每个点的横坐标都能表示为t+A_ir+B_ih,根据x_{root}=0,可以解出t,然后就可以计算出对应点的横坐标。

时间复杂度O(n)

  

C. Everything

建立Trie树,dfs一遍得到每个串的字典序,然后枚举前缀,根据排名更新答案即可。

时间复杂度O(n\log n)

  

D. Secure but True

首先计算出答案串的长度,然后看成11进制下的高精度加法即可。

  

E. Going in Circles

切割点只可能是2个,3个或者4个。

首先特判掉整个环全部都是小写字母的情况,然后将每段小写字符压缩成一块,并计算出在每块内部切割的方案数。

枚举每种大写字符,可以得到要切割的两部分应该分布在哪些范围内,设f[i][j]为第i个字符下某个切割块所属的连通块编号,对f进行Hash,那么一定是在Hash值相同的里面选取两个块,每块切1~2刀。

时间复杂度O(n(26+\log n))

  

F. Hey JUDgE

暴力枚举所有合并情况然后检验即可。

时间复杂度O(n^5)

  

G. Paradise City

按题意模拟即可。

  

H. Another Square in the Floor

ans=\max^2(X,Y)

  

I. Home Sweet Home

枚举前导零的个数,然后从两边同时开始数位DP即可,一边从高位到低位转移,另一边从低位到高位转移。

  

J. Smooth Developer

按题意模拟即可。

  

K. Betrayed

首先对于每棵树两遍DP求出以每个点为根的最大深度,就可以得到每棵树爆栈的概率,递推求出期望步数即可。

时间复杂度O(Cn)

  

L. Chance

预处理出f[i]表示[1,i]中二进制下1的个数为素数的个数,然后O(1)回答即可。

  

M. ACPC Headquarters : AASTMT (Stairway to Heaven)

f[i][j]表示志愿者i在第j天需要服务几个赛事,然后检查是否存在j满足f[i][j]>1即可。

  


总结:

  • D题_ilovelife对Claris提供的做法理解上出现了偏差,导致写了一个小时,还交了3发才通过。间接导致I题没有写完,以致没有AK。发生这种情况应考虑换人写。
  • E题poursoul在Claris写代码时进行误导,致使原来正确的公式被改成错误的公式,无故增加一发罚时,下次要注意。

 

posted @   Claris  阅读(1248)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示