Codeforces#385div.2 2017-01-13 practice

A  Hongcow Learns the Cyclic Shift

题意:给一个字符串,首尾相接成环形,长度为k,问从上面取连续的k个字符,能找出多少不同字符串.

题解:长度为k,那么从串首开始每次后移一个字符,即最长为2k,因为是环形,所以所给字符串本身接在它自己串尾就行.

代码:传送门


Hongcow Solves A Puzzle

题意:给你一张图版,上面由拼图,"x"代表拼图,'.'代表空,问两张相同的图版拼起来,能否拼出一个长方形.

题解:题意真吊,说的是把图版拼起来,而且无视空格,只要能把相同的拼图拼成长方形就行,那么我们只要判断一个该图形本身是否是长方形即可.

代码:传送门


C   Hongcow Builds A Nation (并查集)

题意:n个点,已存在m条边,现在要尽可能多的添加边,给出k个点,这些点相互不允许可达,问最多可再加多少边.

题解:

       一开始题意看岔了,以为k个点不能互连. 不联通就更简单了.

       每个特殊点必定属于一个联通块,且该联通块仅有一个特殊点,这些联通块之间相互不能连接.

       而不含特殊点的联通块之间可以相互连接,即最后可以连为一个联通块,而这个联通块由可再与一个特殊的联通块 相连.

       那么我们只要找出最大的那个联通块,将它与非特殊联通块连起来,即可保证所添加的边最多.

       含有n个点的联通块,边为 n * (n - 1) / 2条.

代码:传送门

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值