zoukankan      html  css  js  c++  java
  • NEERC Southern Subregional 2011

    NEERC Southern Subregional 2011

    A - Bonnie and Clyde

    solution
    双指针搞搞就好。

    时间复杂度:(O(n))

    B - Building Foundation

    题目描述:给定(n)条线段(水平或垂直),问能构成多少个矩形(只要矩形的四条边都被线段覆盖即可),水平线段不相交,垂直线段不相交。

    solution
    预处理出每条垂直的线段与哪些水平的线段相交,然后枚举两条垂直的线段,数一下有多少公共的水平线段(s),答案增加(C_s^2)

    时间复杂度:(O(n^3))

    C - Dice Tower

    题目描述:用骰子搭成一个(1 imes 1 imes h)的长方体,满足表面的数字的和为(n),输出最小的(h)或无解。

    solution
    注意一个骰子和两个骰子之间的状态是无解,其它的特殊情况都比较好想。

    时间复杂度:(O(1))

    E - Berland Chess

    题目描述:给定一个(n imes m)的棋盘,棋盘上有一个白色的国王,还有若干个黑色的骑士、主教、城堡(总共不超过15个),现在要移动白色国王,问他安全情况下最少多少步吃掉所有黑色棋子(黑色棋子不动)。

    solution
    状压,对黑色棋子进行编号,用((sett, x, y))表示当前还剩的棋子集合以及白色国王的坐标,然后bfs求解。可以先预处理出当棋子集合为(sett)时,那些格子是安全的。

    时间复杂度:(O(8 cdot 2^{15}n^2))

    F - Divisibility

    题目描述:给定一个只有小写字母并且字母种类不超过(10)种,长度不超过(14)的字符串,给每一个字母分配一个(0)~(9)的数字(不同字母数字不同),那么所给的字符串对应一个没有前导零的数字,求得到的数字的公共约数。

    solution
    原问题等价于求所有数字的最大公约数+求一个数字的所有约数。
    先考虑字母种类不超过(9)种的情况,那么对于某一种字母,单独改变这一种字母的分配数字,得到的数字作差,这些数字都是(num)的倍数,其中(num)是指这种字母的位置取(1),其它位置取(0)对应的数字。对于每一种字母求出对应的(num),求(num)的最大公约数。
    考虑字母种类数不超过(10)种的情况,取其中两种字母,其中一种填(1),另一种填(0),其它字母不变,交换两种字母的分配数字,作差,得到数字为两种字母对应的(num)作差,求出所有二元组的最大公约数。
    由于上面得到的最大公约数是作差得到的,所以还要随便求出一种可行的分配方案对应的数字,再求一次最大公约数,才是真正的最大公约数。
    由于数字比较大,所以要把数字分解质因数后,再穷举所有约数。

    时间复杂度:(O(能过))

    K - Emoticons

    solution
    模拟,按照题目要求的做即可。

    时间复杂度:(O(n))

  • 相关阅读:
    java内部类_让你一看就明白_再也不用困惑啦
    hibernate中的java对象有几种状态,其相互关系如何(区别和相互转换)
    未曾谋面却完成了短信发送功能_API是个好中介
    日历(Calendar)_java版(某年的日历,某月的日历)_用户完全自定义
    让你的网站拥有微博(weibo.com)关注图标
    一个demo告诉你优化算法的强大
    给你八分钟搞定dedeCMS(织梦内容管理系统)
    SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
    oracle数据库:jdbc通用sql分页封装
    浅析HTTP协议
  • 原文地址:https://www.cnblogs.com/GerynOhenz/p/9924111.html
Copyright © 2011-2022 走看看