Codechef October Challenge 2018 游记

CHSERVE - Chef and Serves

题目大意:

乒乓球比赛中,双方每累计得两分就会交换一次发球权。

不过,大厨和小厨用了另外一种规则:双方每累计得 K 分才会交换发球权。比赛开始时,由大厨发球。

给定大厨和小厨的当前得分(分别记为 P1 和 P2),请求出接下来由谁发球。

思路:

\((P1+P2)\%K\)判断奇偶性即可。

代码链接

BITOBYT - Byte to Bit

题目大意:

在字节国里有三类居民:

  • 比特:在比特出现 2 毫秒后,它会变成一个半字节;
  • 半字节:在半字节出现 8 毫秒后,它会变成一个字节;
  • 字节:在字节出现 16 毫秒后,它会变成两个比特。

在第 0 毫秒时,字节国里只有一个比特。大厨想知道第 N 毫秒之前(即介于第 N − 1 和第 N 秒之间)字节国的人口。请求出 N 毫秒之前字节国的每类居民各有多少。
\(N\le10^4\)

思路:

按题意模拟即可。
代码链接

MINDSUM - Minimize Digitsum

题目大意:

给定正整数 N 和 D。你可以进行下面两种操作:

  • 令 N 加上 D;
  • 令 N 为 digitsum(N)。

其中,digitsum(x) 代表 x 的各位数之和。例如,digitsum(123) = 1 + 2 + 3 = 6,digitsum(100) =
1 + 0 + 0 = 1。

你可以以任意顺序进行任意次操作。请求出 N 可以达成的最小值,以及达成该最小值所需的最少操作次数。

\(1\le N,D\le10^{10}\)

思路:

最小值可以通过\(N,D\)的\(\operatorname{digitsum}\)来确定。而最少操作次数相当有限,BFS即可。

代码链接

HMAPPY - Appy and Balloons

题目大意:

Appy 最喜欢气球!她想要你连续 N 天(编号 1 ∼ N)都送她气球,第 i 天 Appy 想要 Ai 个气球。不巧的是,你只有 M 个气球。幸运的是,你可以用糖果代替气球送给她。在第 i 天,你每少给 Appy 一个气球,Appy 就会找你要 Bi 颗糖果。具体地,如果第 i 天你给了 Xi 个气球,那么你还需要给她 Ci = max(0, Ai − Xi) · Bi 颗糖果。

你的目标是最小化一天之内给 Appy 的糖果数量,换言之,最小化 max(C1, . . . , CN )。

  • 1 ≤ N ≤ \(10^5\)
  • 0 ≤ M ≤ \(10^{18}\)
  • 0 ≤ Ai ≤ \(10^9\)
  • 0 ≤ Bi ≤ \(10^9\)

思路:

二分答案。二分上界取\(10^{18}\)。

(讲道理最大会达到10^{23}左右,但是不知道为什么一直WA,最后改成\(10^{18}\)就过了。)

代码链接

CCIRCLES - Chef and Circles

题目大意:

平面上有 N 个圆。我们称圆 i 和 j (i ̸= j) 形成一个好的二元组,当且仅当可以在圆 i 上选择一点 P1,圆 j 上选择一点 P2,使得 P1 和 P2 的欧氏距离恰好为 K。注意 P1 和 P2 可以不是整点。

你需要回答 Q 个询问。每个询问给定目标距离 K,你需要求出此时有多少好的二元组。请注意,可能有多个圆重合。

思路:

将所有圆对间最远、近点对处理出来,排序。线性扫一遍,遇到近点对+1,远点对-1。

代码链接

SURCHESS - Chef and Surprise Chessboard

题目大意:

大厨喜欢下国际象棋,所以他买了一块 N 行 M 列的新棋盘。
大厨认为行列数相等,且相邻(即有公共边)的格子颜色不同(也就是所谓的“棋盘格”)的棋盘才是正确的棋盘。不过,大厨新买的这块棋盘未必是正确的。

一块棋盘的子棋盘定义为原棋盘中以任意格子作为左上角,任意格子作为右下角的部分。原棋盘本身也是自己的子棋盘。

大厨可以改变一些格子的颜色,即从白变黑或者从黑变白。在完成改变之后,大厨想从原棋盘上切出面积最大的正确的子棋盘。

大厨还没想好要改变几个格子的颜色。于是,他有 Q 个询问,第 i 个询问中大厨最多改变 ci 个格子的颜色(也可以不改变)。请你告诉大厨,在每个询问的限制下,能切出的面积最大的正确子棋盘的边长。

  • 1 ≤ N, M ≤ 200
  • 1 ≤ Q ≤ \(10^5\)
  • 0 ≤ ci ≤ \(10^9\)

思路:

对于点\((i,j)\),若\(i+j\)为奇数则将该格子颜色翻转,题目就变成了求最大同色矩阵。

动态规划前缀和优化求出每个矩阵至少需要多少步能够同色。然后求出翻转\(i\)步能翻转出多大的矩阵,最后对于每次询问可\(\mathcal O(1)\)回答。

代码链接

BBRICKS - Beautiful Bricks

题目大意:

大厨决定装修自己的餐厅。顾客进入餐厅,需要走过一段笔直的走廊。走廊两侧贴了瓷砖,
每侧有 N 块。所有瓷砖大小相同,且两块瓷砖之间没有缝隙。
不巧的是,所有瓷砖颜色相同,看着有些乏味。大厨想让走廊变得五彩斑斓,为此他准备替
换恰好 K 块瓷砖,而且任意两块替换的瓷砖都不能相邻。
大厨现在要解决一个很复杂的问题:有多少种替换瓷砖的方案数?由于答案可能很大,请输
出其对 \(10^9 + 7\) 取模的结果。

  • 1 ≤ T ≤ 5
  • 1 ≤ N ≤ \(10^9\)
  • 1 ≤ K ≤ 1, 000

思路:

OEIS得到答案为\(\mathrm A104698(n-1,k-1)\times2\)。

对阶乘分段打表即可。

代码链接

Codechef October Challenge 2018 游记的更多相关文章

  1. Codechef September Challenge 2018 游记

    Codechef September Challenge 2018 游记 Magician versus Chef 题目大意: 有一排\(n(n\le10^5)\)个格子,一开始硬币在第\(x\)个格 ...

  2. Codechef April Challenge 2019 游记

    Codechef April Challenge 2019 游记 Subtree Removal 题目大意: 一棵\(n(n\le10^5)\)个结点的有根树,每个结点有一个权值\(w_i(|w_i\ ...

  3. codechef February Challenge 2018 简要题解

    比赛链接:https://www.codechef.com/FEB18,题面和提交记录是公开的,这里就不再贴了 Chef And His Characters 模拟题 Chef And The Pat ...

  4. Codechef STMINCUT S-T Mincut (CodeChef May Challenge 2018) kruskal

    原文链接http://www.cnblogs.com/zhouzhendong/p/9010945.html 题目传送门 - Codechef STMINCUT 题意 在一个有边权的无向图中,我们定义 ...

  5. Codechef October Challenge 2019 Division 1

    Preface 这次CC难度较上两场升高了许多,后面两题都只能借着曲明姐姐和jz姐姐的仙气来做 值得一提的是原来的F大概需要大力分类讨论,结果我写了一大半题目就因为原题被ban了233 最后勉强涨了近 ...

  6. 刷漆(Codechef October Challenge 2014:Remy paints the fence)

    [问题描述] Czy做完了所有的回答出了所有的询问,结果是,他因为脑力消耗过大而变得更虚了:).帮助Czy恢复身材的艰巨任务落到了你的肩上. 正巧,你的花园里有一个由N块排成一条直线的木板组成的栅栏, ...

  7. [Codechef October Challenge 2014]刷漆

    问题描述 Czy做完了所有的回答出了所有的询问,结果是,他因为脑力消耗过大而变得更虚了:).帮助Czy恢复身材的艰巨任务落到了你的肩上. 正巧,你的花园里有一个由N块排成一条直线的木板组成的栅栏,木板 ...

  8. Codechef August Challenge 2018 : Chef at the River

    传送门 (要是没有tjm(Sakits)的帮忙,我还真不知道啥时候能做出来 结论是第一次带走尽可能少的动物,使未带走的动物不冲突,带走的这个数量就是最优解. 首先这个数量肯定是下界,更少的话连第一次都 ...

  9. Codechef August Challenge 2018 : Safe Partition

    传送门 (虽然是A了但是不知道复杂度是不是正确的 考虑以某个位置为结尾的合法划分 先考虑min,带来的影响是限制了最小长度,预处理出这个最小长度后,这可以在处理到这个数时,把不能算的部分去掉(不满足m ...

随机推荐

  1. kafka系列十、kafka常用管理命令

    一.Topic管理 1.创建topic kafka-topics.sh --zookeeper 47.52.199.52:2181 --create --topic test-15 --replica ...

  2. 带你玩转Visual Studio——带你理解微软的预编译头技术

    原文地址:http://blog.csdn.net/luoweifu/article/details/49010627 不陌生的stdafx.h 还记得带你玩转Visual Studio——带你新建一 ...

  3. javaScript——原型继承四步曲

    <script> //js模拟类的创建以及继承 //第一步:创建父类 function Parent(name){ this.name = name; } //给父类添加属性方法 Pare ...

  4. OA系统高性能解决方案(史上最全的通达OA系统优化方案)

    序: 这是一篇针对通达OA系统的整体优化方案,文档将硬件.网络.linux操作系统.程序本身(包括web和数据库)以及现有业务有效结合在一起,进行了系统的整合优化.该方案应用于真实生产环境,部署完成后 ...

  5. 利用mysqltuner工具对mysql数据库进行优化

    mysqltuner工具使用,本工具建议定期运行,发现目前MYSQL数据库存在的问题及修改相关的参数 工具的下载及部署 解决环境依赖,因为工具是perl脚本开发的,需要perl脚本环境 # yun i ...

  6. Android Menu用法全面讲解

    说明:本文只介绍Android3.0及以上的Menu知识点. 菜单的分类 菜单是Android应用中非常重要且常见的组成部分,主要可以分为三类:选项菜单.上下文菜单/上下文操作模式以及弹出菜单.它们的 ...

  7. Java基础96 ajax技术的使用

    本文知识点(目录): 1.ajax的概念   2.使用ajax技术获取服务端的数据_实例   3.使用ajax技术检查用户名是否已存在_实例   4.使用ajax技术验证登录页面的用户名和密码_实例 ...

  8. P3660 【[USACO17FEB]Why Did the Cow Cross the Road III G】

    题外话:维护区间交集子集的小套路 开两个树状数组,一个维护进入区间,一个维护退出区间 $Query:$ 给定询问区间$l,r$和一些其他区间,求其他区间中与$[l,r]$交集非空的区间个数 用上面维护 ...

  9. uva11983扫描线k次覆盖

    自己做的是从下往上扫描的,一直wa,不知道坑在哪里..但是作为模板.我还是找了份不错的ac代码 /* 被覆盖不低于k次的点 每个点对应了一个单位面积,本题把点转面积即是被覆盖不低于k次的面积 可以当做 ...

  10. graphql详解

    随着系统业务量的增大不同的应用和系统共同使用着许多的服务api,而随着业务的变化和发展,不同的应用对相同资源的不同使用方法最终会导致需要维护的服务api数量呈现爆炸式的增长,比如我试着跑了下我们自己业 ...