记录平时打 AtCoder 比赛时遇到的一些神题。

ABC128F Frog Jump

Analysis

Tenka1 Programmer Contest 2019 D Three Colors

题目大意

有 $n$ 个正整数 $a_1, a_2,\dots, a_n$($3\le n\le 300$,$1\le a_i \le 300$)。现在要把每个数涂成红,绿,蓝,三种颜色之一。将同色的数之和分别记作 $R,G,B$。试求使得 $R,G,B$ 是某三角形的三边长的涂色方案。结果模 $998244353$ 。

分析

这道题的正解是考虑能构成三角形的涂色方案的数量。拿总方案数 $3^n$ 减去这个数量。

注意到 $R,G,B$ 三个数之和固定,将此和记作 $S$,即 $S = \sum_{i = 1}^{n} a_i$ 。

$R,G,B$ 能构成三角形的充要条件是 $R,G,B$ 中某个数大于等于 $ S/2$ 。

又注意到,当 $S$ 是奇数时,$S/2$ 不是整数,上述充要条件变为 $R,G,B$ 中某个数大于 $S/2$ 。

我们先来考虑 $R, G, B$ 三者中某个数大于 $S/2$ 的方案数。
注意到 $R,G,B$ 三者中最多有一个数可能大于 $S/2$ 。由于染色方案的对称性,我们不妨先考虑 $R > S/2$ 的染色方案数。我们可以用类似于背包的 DP 求出使得 $R$ 等于某个确定值的染色方案数。令 $f[i][j]$ 表示对前 $i$ 个数染色,使得其中被染成红色的数之和为 $j$ 的染色方案数。那么 $3 \sum_{ R = \floor{S/2} + 1}^{S} f[n][R]$ 即为使得 $R, G, B$ 三者中某个数大于 $S/2$ 的染色方案数。

若 $S$ 是偶数,我们可以沿用上述方法求出使得 $R = S/2$ 的染色方案数,即 $f[n][S/2]$ 。但是若直接把 $3f[n][S/2]$ 加到总数里边,会导致重复计数。具体地说,这样做将使得 $R = S/2, G = S/2, B = 0$,$R = S/2, G = 0, B = S/2$ 和 $R = 0, G = S/2, B = S/2$ 这三种情况被计了两次。而这三种情况的数量即从给定的 $n$ 个数中选择一些数使得其和为 $S/2$ 的方案数,用类似于背包的 DP 可以求出这个数量。将此数量记作 $k$ 。

总之,若 $S$ 为奇数,答案是 $ 3^n - 3 \sum_{ R = \floor{S/2} + 1}^{S} f[n][R] $;若 $S$ 为偶数,答案是 $3^n - 3\sum_{ R = S/ 2}^{S} f[n][R] + 3k$ 。

ExaWizards 2019 C Snuke the Wizard

Key observation: 最后剩下的小球最初所在的盒子必定是连续的一段。

将盒子从左到右编号为 $1$ 到 $n$ 。

如果最初在 $i$ 号盒子里的小球,从左侧消失,那么 $1$ 号到 $i$ 号盒子中的小球必定都从左边消失了。

如果最初在 $i$ 号盒子里的小球,从右侧消失,那么 $i$ 号到 $n$ 号盒子中小球必定都从右边消失了。

我们可以二分搜索最后剩下的小球最初所在的范围的左右边界。

转载于:https://www.cnblogs.com/Patt/p/10629863.html

AtCoder 神题汇总相关推荐

  1. AtCoder 杂题训练

    前言: 因为要普及了,今年没一等就可以退役去学文化课了,所以暑假把历年noip普及组都刷了一遍,离noip还有50+天,想弄点强化训练什么的. 想了想,就这些天学文化课之余有空就把AtCoder之前那 ...

  2. 洛谷 P2679 子串 【dp神题】【滚动数组】【2015 noip d2t2】

    偷个懒,题解看这里:https://www.luogu.org/problemnew/solution/P2679 看作者 GuessYCB  写的 ===2018.9.6=== 这一次算理解深一点了 ...

  3. 2017-2018-1 《信息安全系统设计基础》课下测试错题汇总

    2017-2018-1 <信息安全系统设计基础>课下测试错题汇总 (多选题|1分)假设用ADD指令完成C表达式t=a+b的功能,有关条件码寄存器的说法正确的是() A.若t==0,则ZF= ...

  4. 【CF913F】Strongly Connected Tournament 概率神题

    [CF913F]Strongly Connected Tournament 题意:有n个人进行如下锦标赛: 1.所有人都和所有其他的人进行一场比赛,其中标号为i的人打赢标号为j的人(i<j)的概 ...

  5. mysql面试100题及答案_PHP面试100题汇总

    PHP面试100题汇总 1,Http 和Https的区别 第一:http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议 第二:http和https使用的是完全不同的连接方 ...

  6. 山东大学计算机系统原理,山东大学计算机组成原理三套题汇总

    <山东大学计算机组成原理三套题汇总>由会员分享,可在线阅读,更多相关<山东大学计算机组成原理三套题汇总(18页珍藏版)>请在人人文库网上搜索. 1.2 .按功能分类,存储器可以 ...

  7. 腾讯+字节+阿里面经真题汇总,Android篇

    简介 首先,Android是不是真的找工作越来越难呢?这个可能是大家最关心的.这个受大的经济环境以及行业发展前景的影响,同时也和个人因素有关. 近期一方面是所在的公司招聘Java开发人员很难招到合适的 ...

  8. c语言程序设计基础1千克,c语言学习知识编程经典编辑题汇总整编.doc

    c语言学习知识编程经典编辑题汇总整编.doc - C语言编程基础习题汇总1.设计一个由键盘输入三个整数,求这三个数的平均数的程序.2.编写一个程序,用于水果店售货员结账.已知苹果每斤2.50元,鸭梨每 ...

  9. python课设代码_python课程编程题汇总(上)

    python编程题汇总 众所周知,由于疫情的原因,大家都在上网课,我也不例外啦~ 用这个贴子来记录也和大家分享一下我们课上的编程讨论题 中篇在此→python课程编程题汇总(中) 下篇在此→pytho ...

  10. 软考信息安全工程师考试历年真题汇总及试题分布统计

    软考信息安全工程师考试历年真题汇总 2018年上半年信息安全工程师考试真题与答案(上午题) 2018年上半年信息安全工程师考试真题与答案(下午题) 2017年上半年信息安全工程师考试真题含答案(上 ...

最新文章

  1. 渲染好的页面怎么转为图片_图片导成PDF后页面大小不同怎么办
  2. java压缩----使用ANT JDK压缩---只压缩选中目录的指定文件夹
  3. Linux设置SFTP服务用户目录权限
  4. 盘点数据科学最流行的29个Python库
  5. 基于三层结构的CRM系统(Agent X)的设计和开发
  6. 物联那点事儿之自制网络温湿度计(arduino+点灯科技篇)
  7. DayDayUp:2020,再见了,不平凡的一年,让我懂得了珍惜,让我明白了越努力越幸运
  8. python教程(八)之异常(8.Warn)
  9. Python做一个藏头诗生成器
  10. IDEA中SurroundWith里面没有逻辑语句模板问题的解决方案
  11. Flutter高仿微信-第28篇-好友详情-查看个人头像
  12. 如何自己制作装机工具装系统,硬装系统
  13. 学计算机的参加数学建模有什么用吗,数学建模是什么?对于编程来说有什么意义?...
  14. 面对勒索软件,除了交赎金,还能怎么办?——我们有11个建议给你
  15. 《Linux命令行与shell脚本编程大全》读书笔记 之一
  16. 功能测试的测试点全集
  17. 用Python做信号处理
  18. 小米门卡协议加载失败_小米手机门禁卡空白卡开通步骤及写入激活方法
  19. 爬取腾讯新闻中省份疫情数据到Mysql数据库
  20. 7-1 计算π的值 (10分)_PTA_Java基础练习

热门文章

  1. logback无忧配置文件
  2. 【历史上的今天】2 月 7 日:“电脑大王”王安诞生;发明“上网冲浪”的程序员出生;2013 年图灵奖得主生日
  3. STM32F103_study52_The punctual atoms(STM32 The running light experiment )
  4. 变形金刚11280超清迅雷下载
  5. 学习记录 - - 准备APS
  6. 二分法解经典题目:切木头
  7. 【LLS-Player】webrtc m94下载
  8. 组件化----组件抽离
  9. Python IDLE的下载,安装和使用
  10. JWT 详解及源码分析