2016计蒜之道初赛

2016计蒜之道初赛

官方题解

另外搜索题解的时候看到一个很有意思的博客..//大一进省赛的妹子otz

第一场

*A 最小pi值

  • 定义:

    青云给每台服务器设置了一个由小写字母a-z组成的密钥。密钥的易破解程度定义如下:

    对于密钥 S1..SnS1..Sn ,我们需要首先计算其对应的 π 数组。对于任意的i(2≤i≤n), πi=max{L|S1...SL=SiL+1...Si,(0L<i)} 。也就是最长的前缀等于后缀的长度。

    则密钥的易破解程度为 ni=2πi ,值越小,易破解程度越高。

    现在已知密钥的 S1...Sn  中每个小写字母的字符个数,小明想知道易破解程度最高是多少?

    思路:我们分类来讨论:1、所有字母都没有出现过的情况,输出0。

    2、只有一种字母的情况,这种情况比较特殊,也是最容易掉坑里边的一种情况,这里注意,前缀和后缀可以有重叠部分,所以这里假如是5个a:

    aaaaa\==10\==1+2+3+4

    aaaa\==6\==1+2+3

    aaa\==3==1+2;

    3、有两种或者两种以上字母的情况,我们不妨用最贪心的思路来想,我们设定出现次数最少的那个字母取一个放在第一个位子上,我们举例子来说:10 4 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0明显字母c是出现最少的字母,我们取一个c放在串的最开头,然后将a,b两个字母随便在c后边排列:caaaaaaaaaabbbb(a,b怎样排列无所谓)然后最后补上其他c:caaaaaaaaaabbbbcc。很明显,其解最小,值为2,也就是3-1;

B 树上所有互质数的距离和

  • 简单: floyd(枚举) O(n2logn)
  • 中级:用  dpi,j  表示节点 i 子树中为 j 的个数。

第二场

A 计算几何

画出以顶点 O 为公共顶点的、夹角为θ 的两条线段l1和l2,其中l1作为圆 C1的直径,l2作为圆 C2的直径。两个圆需要画在同一个圆形的塑料板上。请算出这个塑料板最小的面积是多少。

  • 分析: 最小的覆盖的圆心一定是在两个我女巫去圆心的连线上,直径就是圆心距+r1+r2,余弦定理即可

*B 矩阵连线计数

  • 简单: O(n4)  枚举两个点,得到这两个点构成的直线方程,然后去重即可。
  • 中级: 枚举直线的方向向量 (a,b) ,显然有  gcd(a,b)=1 它本身以及它的前驱在点阵内而它的后继不在点阵内”的点的数量,得出 n1a=1m1b=1[gcd(a,b)=1]((na)(mb)max(n2a,0)max(m2b,0))
  • 复杂: 看不懂= =

第三场

A科学计数法

字符串处理…很坑的是OJ”测试”只是测试能不能够运行…

*B账号选取方案

没看懂题()

总结:

每场过了一道签到题就无力了,说明自己还有很大的提升空间..本来还想拿一件衣服走的但只是签到走了还是挺郁闷的…更郁闷的是官方题解证实了水平有限…题解都看不懂…

不过总结一下第一套里面第一题应该要过的,主要是看了一会题没有思路就不看了,这样是不对的行为,相反应该努力用学过的算法思想去套这个模型,尝试贪心啊DP啊然后没准就出来了.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值