比赛连接戳这里^_^
我才不会说这是我出的题(逃)
周赛题解\((2018.10.14)\)
\(T1\)
\(25\sim50\)分做法\(:\)直接爆搜
作为一个良心仁慈又可爱的出题人当然\(T1\)要送分啦\(qwq\)
\(100\)分做法\(:\)
其实只需要看左上角就行了,因为题目描述写的很清楚,三个人的操作都是为了BLUESKY007能赢,所以游戏一定会结束,那么当横纵坐标最大的非\(B\)颜色方格变为\(B\)颜色时,可操作的方格范围显然是趋向收敛的,又因为操作规则的要求,左上角的方格在每次操作中都会按规则进行变换,当可操作范围收敛到左上角且左上角变为\(B\)颜色时,游戏结束,所以无论中间的操作是怎样进行的,最终左上角的方格一定会变为\(B\)颜色,而且进行操作的人数和操作变换长度相同,所以我们只需要判断左上角方格的颜色即可.

\(T2\)
\(10\)分做法\(:\)特判输出
毕竟数据范围给的那么小,\(n,m\)都\(\leq5\),显然是送分的啊\(qwq\)
\(20\)分做法\(:\)爆搜
就是很裸的爆搜,连优化剪枝之类的高级操作都不需要.但是为什么\(\min(n,m)\leq3\)?这个看下面证明就知道了\(qwq\)
\(100\)分做法\(:\)结论
我们不妨设\(n\)为长,\(m\)为宽

  • \(m\leq2:\)显然对于任何一个位置,在图中都不存在另外一个位置使得两者之间相互可达,所以此时\(n\times m\)的所有位置都可以放置,此时答案为\(n\times m\)
  • \(m=3:\)对于一个\(3\times n\)的图,其中对于第二行的所有点,在图中都不存在另外一个位置使得两者之间相互可达,所以第二行所有位置都可以放置,对于另外两行我们可以发现,\((1,1)\)和\((3,4)\)只能有一个位置放置,\((1,2)\)和\((3,5)\),\((1,3)\)和\((3,6)\),\((3,1)\)和\((1,4)\),\((3,2)\)和\((1,5)\),\((3,3)\)和\((1,6)\)同理.于是当我们最大化放置个数时,每相邻的六列的放置总是相同的且任意相邻六列至多可以放置\(12\)个,所以当我们按如图所示的方式开始时会达到最大值,此时答案为\(n+6\times\lfloor\frac{n}{6}\rfloor+2\times\min(n\%6,3)\)
  • \(m=4:\)同样的,对于一个\(4\times n\)的图,仍然满足相邻六列最多放置\(12\)个,但是对于不同的\(n\)存在不同的起始方案\(:\)
    • \(n\%6=0:\)从任意列开始,此时答案为\(2n\)
    • \(n\%6\in[1,2]:\)从第\(1\)列开始,此时答案为\(2n+2\times(n\%6)\)
    • \(n\%6\in[3,4]:\)从第\(6\)列开始,此时答案为\(2n+4\)
    • \(n\%6=5:\)从第\(6\)列开始,此时答案为\(12\lceil\frac{n}{6}\rceil\)
      所以如果\(m=4\),能考虑到以上情况的话自然就不是写爆搜的了,所以对爆搜的数据范围设置为\(m\leq3\),否则会\(WA\)

  • \(m\geq5:\)如图为\(n=7,m=5\)时的放置方案,类似的,对于任意大小的图都可以进行类似的放置,此时答案为\(\lceil\frac{mn}{2}\rceil\)
    \[
    \begin{vmatrix}
    1&0&1&0&1&0&1\\
    0&1&0&1&0&1&0\\
    1&0&1&0&1&0&1\\
    0&1&0&1&0&1&0\\
    1&0&1&0&1&0&1\\
    \end{vmatrix}
    \]

\(T3\)
\(20\)分做法\(:\)直接输出\(0\)
根据样例解释,\([0,1000]\)内不存在"好朋友",所以对于\(20\%\)数据\(l_i\leq r_i\leq10^3\)显然其中所有的询问答案均为\(0\),所以直接输出就能骗到\(20\)分
\(40\)分做法\(:O(tr\lg(r))\)逐个检验
\(100\)分做法\(:O(t\lg(r))\)数位\(DP\)
因为"好朋友"的定义为含有"007",所以有很多情况都会被视为含有"007",例如"10707","17007"等,此时我们发现对于含有"007"的情况的讨论比较复杂,所以我们不妨讨论不含"007"的情况,也即对于任意的含有\(7\)的数,其中每一个\(7\)前都至多有\(2\)个\(0\),由此可以设\(f_{ij}\)表示在前\(i\)位有\(j\)个\(0\)的数的个数,在数位\(DP\)过程中存当前位置和已有的\(0\)的个数,显然在\(0\)的个数\(\geq2\)时,后面的数位上都不可能再有\(7\).在求出不含"007"的数之后,用区间\(l_i,r_i\)上数的个数减去不含"007"的数的个数即可得到在\(l_i,r_i​\)上含有"007"的数的个数

Nowcoder | [题解-N210]牛客OI月赛2-提高组的更多相关文章

  1. 牛客OI月赛12-提高组题解

    牛客OI月赛12-提高组 当天晚上被\(loli\)要求去打了某高端oj部分原创的模拟赛,第二天看了牛客的题觉得非常清真,于是就去写了 不难发现现场写出\(260\text{pts}\)并不需要动脑子 ...

  2. Nowcoder | [题解-N189]牛客OI赛制测试赛3

    这场说实话确实水(逃*1),表示差一点就AK了(逃*2),然而被卡两个特判的我\(ssfd\)...\(qwq\) 表示这是第一次发整场比赛的题解...还请各位大佬原谅我太蒻写的垃圾啊\(qwq\). ...

  3. 牛客OI周赛8-提高组A-用水填坑

    牛客OI周赛8-提高组A-用水填坑 题目 链接: https://ac.nowcoder.com/acm/contest/403/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制: ...

  4. 牛客OI周赛9-提高组题目记录

    牛客OI周赛9-提高组题目记录 昨天晚上做了这一套比赛,觉得题目质量挺高,而且有一些非常有趣而且非常清奇的脑回路在里边,于是记录在此. T1: 扫雷 题目链接 设 \(f_i\) 表示扫到第 \(i\ ...

  5. 牛客OI周赛7-提高组 A 小睿睿的等式

    链接:https://ac.nowcoder.com/acm/contest/371/A来源:牛客网 小睿睿在游戏开始时有n根火柴棒,他想知道能摆成形如“A+B=n”的等式且使用的火柴棒数也恰好等于n ...

  6. 牛客OI周赛7-提高组 B小睿睿的询问(ST打表)

    链接:https://ac.nowcoder.com/acm/contest/371/B来源:牛客网 小睿睿的n个妹纸排成一排,每个妹纸有一个颜值val[i].有m个询问,对于每一个询问,小睿睿想知道 ...

  7. 牛客OI周赛2-提高组

    A.游戏 链接:https://www.nowcoder.com/acm/contest/210/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语 ...

  8. 牛客OI周赛10-普及组-A眼花缭乱的街市-(加速+二分)

    https://ac.nowcoder.com/acm/contest/901/A 很简单的一道题,全场只有20+AC,卡时间.新学了cin加速语法和数组二分查找的函数调用. 知道有个读写挂,可以加速 ...

  9. 牛客OI周赛11-普及组 B Game with numbers (数学,预处理真因子)

    链接:https://ac.nowcoder.com/acm/contest/942/B 来源:牛客网 Game with numbers 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C+ ...

随机推荐

  1. Python_字符串初识及操作

    字符串初识及操作 str  'alex'.'1235443543'.'[1,2,3]'.可存放少量数据. 索引.切片.步长 索引编号 正向索引 'python' 012345 'p'的正向索引编号为0 ...

  2. FAIL - Deploy Upload Failed, Exception: [org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (112503036) exceeds the configured

    Message:  FAIL - Deploy Upload Failed, Exception: [org.apache.tomcat.util.http.fileupload.FileUpload ...

  3. 一次linux问题分析原因的简要记录

    1. 这边功能测试 一个linux服务器 4c 16g的内存 发现总是出现异常. dotnet run 起来的一个 程序 总是会被killed 现象为: 2. 一开始怀疑是 打开的文件描述符过多 引起 ...

  4. [转帖]nginx配置ssl加密(单/双向认证、部分https)

    nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627   nginx下配置ssl本来是很简单的,无论是去认证 ...

  5. HDU 5898 odd-even number

    题目:odd-even number 链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5898 题意:给一个条件,问l 到r 之间有多少满足条件的 ...

  6. K8S入门学习

    一.k8s是个什么鬼? k8s全名:kubernetes 它是一个工具,在linux上管理应用生命周期的一个工具. 二.k8s有什么卵用? 1.当你把项目部署到服务器集群上,一台服务器挂了,k8s它可 ...

  7. python学习笔记(5-1)-基本数据类型-字符串类型及操作

    五.字符串处理函数  len(x):字符串x的长度.如len("12345")结果为5  str(x):任意类型x所对应的字符串形式. >>> str(123) ...

  8. Java的hashCode和equals方法

    当然健壮的代码,两个都重写那是最好. 用不到hashCode的, 也没有必要重写hashCode. 个人感觉. 哈希机制的Java集合类,例如 Hashtable, HashMap, HashSet ...

  9. BZOJ 1443 游戏(二分图博弈)

    新知识get. 一类博弈问题,基于以下条件: 1.博弈者人数为两人,双方轮流进行决策.2.博弈状态(对应点)可分为两类(状态空间可分为两个集合),对应二分图两边(X集和Y集).任意合法的决策(对应边) ...

  10. 【C/C++】实现牛顿迭代

    #include<bits/stdc++.h> using namespace std; /*(x+2)^2 +1 -2(x-1)^2+7 */ double f(double x){ - ...