文章目录

  • C - Be Together
  • D - Unbalanced
  • E - Children and Candies
  • F - Unhappy Hacking

题目链接

C - Be Together

200200200分 结论

直接取所有数的平均数,由于需要是整数,所以算一下mid,mid+1,mid−1mid,mid+1,mid-1mid,mid+1,mid−1,取最小值即可。

代码

D - Unbalanced

400400400分 结论

不难发现如果有一段是合法的那么一定存在长度为222或者333的串合法,直接找即可。

代码

E - Children and Candies

800800800分 dpdpdp + 前缀和优化

题面太阴间了,简单解释一下。

有nnn个小朋友,ccc个糖果,如果第iii个小朋友分了aaa个糖果,那么他得到的快乐值是xiax_{i}^axia​,一个幼儿园的快乐值是小朋友快乐值乘积,定义f(x1,x2,...,xn)f(x_1,x_2,...,x_n)f(x1​,x2​,...,xn​)为一个幼儿园的快乐值,现在让你计算:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d6J2qEfu-1645840763184)(C:\Users\Libra_Glow\AppData\Roaming\Typora\typora-user-images\image-20220226094553741.png)]

显然考虑dpdpdp,dp[i][j][k][p]dp[i][j][k][p]dp[i][j][k][p] 表示到第iii个人,已经分了jjj个,要分给他kkk个,当前选了xi=px_i=pxi​=p,转移方程也比较明显dp[i][j][k][p]+=∑t=0j−k∑h=ai−1bi−1dp[i−1][j−k][t][h]dp[i][j][k][p]+=\sum_{t=0}^{j-k}\sum_{h=a_{i-1}}^{b_{i-1}}dp[i-1][j-k][t][h]dp[i][j][k][p]+=∑t=0j−k​∑h=ai−1​bi−1​​dp[i−1][j−k][t][h],可以发现对于第三维和第四维我们可以使用前缀和优化掉,更进一步可以发现根本不需要存第三维和第四维,直接记dp[i][j]dp[i][j]dp[i][j]即可,预处理一下[ai,bi][a_i,b_i][ai​,bi​]的区间取某个幂次的和即可,复杂度可以降到O(n3)O(n^3)O(n3)

代码

F - Unhappy Hacking

800800800分 dpdpdp

直接考虑dp[i][j]dp[i][j]dp[i][j]表示用了iii次操作,匹配到了第jjj位,一开始没想出来,因为是将jjj放到了第一层循环,以长度作为dpdpdp决策的转移,也就是考虑dp[i][j],dp[k][j−1]dp[i][j],dp[k][j-1]dp[i][j],dp[k][j−1],这样显然是不好搞的,考虑反过来,以操作次数作为决策点,i−1−>ii-1 -> ii−1−>i只进行了一次操作,显然就只有三个情况,我们依次考虑:

  • dp[i][j]+=dp[i−1][j−1]dp[i][j]+=dp[i-1][j-1]dp[i][j]+=dp[i−1][j−1] 当前操作打111或者000,根据第jjj位确定
  • dp[i][j]+=dp[i−1][j+1]∗2dp[i][j]+=dp[i-1][j+1]*2dp[i][j]+=dp[i−1][j+1]∗2 当前操作选择按回退,因为我们并不关心j+1j+1j+1位是000还是111,所以需要乘222。

注意j=0j=0j=0的时候还需要加上f[i−1][0]f[i-1][0]f[i−1][0]。

复杂度O(n2)O(n^2)O(n2)

代码

还有一种比较巧妙的方法,可以知道长度为lenlenlen的字符串出现的概率都相等,所有情况是2len2^{len}2len,所以我们如果能求出来所有的情况,除上2len2^{len}2len即可。

设dp[i][j]dp[i][j]dp[i][j]表示用了iii次操作,长度为jjj的方案数,直接写转移了:

  • dp[i][j]+=dp[i−1][j−1]∗2dp[i][j]+=dp[i-1][j-1]*2dp[i][j]+=dp[i−1][j−1]∗2 当前操作打1,01,01,0,所以需要乘222
  • dp[i][j]+=dp[i−1][j+1]dp[i][j]+=dp[i-1][j+1]dp[i][j]+=dp[i−1][j+1] 按回退,由于f[i−1][j+1]f[i-1][j+1]f[i−1][j+1]的方案就已经包含了j+1j+1j+1是0,10,10,1的两种情况,所以不需要乘222。

复杂度O(n2)O(n^2)O(n2)

代码

AtCoder Regular Contest 059相关推荐

  1. AtCoder Regular Contest 065

    AtCoder Regular Contest 065 C - Daydream Score : 300300300 points 倒着来就行了,正着来会产生歧义匹配,dreamer,dreamdre ...

  2. AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,你要将其分成四份,让这四份中和的最大值−-−最小值最小,输出这个最小值. n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2 ...

  3. AtCoder Regular Contest 100 E - Or Plus Max Sos dp

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为2n2^n2n的数组,让你对于所有的1≤k≤2n−11\le k\le 2^n-11≤k≤2n−1求最大的ai+aj,0≤i<j≤2n−1 ...

  4. AtCoder Regular Contest 061 E - Snuke‘s Subway Trip(建图 + dijkstra最短路 / 0/1bfs / 并查集)

    AtCoder Regular Contest 061 E - Snuke's Subway Trip problem 洛谷翻译 my idea 最近一直在做网络流,所以一读这题后,我就想到了最小费用 ...

  5. NOMURA Programming Contest 2021(AtCoder Regular Contest 121)

    文章目录 A - 2nd Greatest Distance B - RGB Matching C - Odd Even Sort D - 1 or 2 E - Directed Tree F - L ...

  6. AtCoder题解——AtCoder Regular Contest 107——B - Quadruple

    题目相关 题目链接 AtCoder Regular Contest 107 B 题,https://atcoder.jp/contests/arc107/tasks/arc107_b. Problem ...

  7. AtCoder Regular Contest 071 D - 井井井 / ###

    题目:http://arc071.contest.atcoder.jp/tasks/arc071_b 题意: 有一个二维的平面,给你xn根竖线和ym根横线,问这些线围成的长方形(正方形)的面积和(要求 ...

  8. AtCoder Regular Contest 062 E - AtCoDeerくんと立方体づくり / Building Cubes with AtCoDeer

    题目传送门:https://arc062.contest.atcoder.jp/tasks/arc062_c 题目大意: 给你\(N\)块正方形木板,每块木板四角有四种颜色(可以相同),木板中央有编号 ...

  9. AtCoder Regular Contest 058

    这个应该是第一场有英文的atcoder吧??不过题解却没有英文的... 从前往后慢慢做... C こだわり者いろはちゃん / Iroha's Obsession 数据范围这么小,直接暴力 #inclu ...

最新文章

  1. r怎么保存html文件,leaflet - 为什么在已保存的html文件中缺少传单地图上的杂项,但在Rstudio浏览器中可以正常打印呢? - 堆栈内存溢出...
  2. IDEA常用快捷键整理20191105
  3. oracle 安装及使用方法,Oracle安装及使用小结
  4. uni-app文档需要注意细节点
  5. 用插件的形式编写升级版 jquery_select_interval.js 源码
  6. mysql 多个库一起导出_MYSQL 导出多个库
  7. python中urllib.parse啥意思_python-urllib.parse模块简述
  8. Oracle中varchar2(20)和varchar2(20 byte)区别
  9. 三层交换机对链路层数据帧的处理
  10. (十一)JAVA springboot ssm b2b2c多用户商城系统 - SSO单点登录之OAuth2.0登录流程(2)
  11. Spring(十六)之MVC框架
  12. apache如何加载系统环境变量_游学电子:windows10系统如何用cmd指令设置环境变量...
  13. 魔兽怀旧服服务器怎么修改,魔兽世界怀旧服今日开服 魔兽世界怀旧服剥皮制皮玩法攻略 怀旧服服务器连不上怎么办?...
  14. 电池SOC预估存在哪些难题以及常用方法
  15. java原始人赛车,原始人赛车
  16. Sprite 3D用法和相关特性详解
  17. 从视频中提取图片(截取ppt)
  18. 使用gpg来加密数据
  19. Java解一元一次方程,一元二次方程,一元三次方程
  20. 软件测试笔记——如何测试登陆界面

热门文章

  1. php 读取三级分类,php excel 导入 导入三级分类 表格应该怎么设计才能得到想要的数据格式?汗血宝马...
  2. 遇到可爱女生如何搭讪?
  3. 别太贪婪,这些技能能让你一辈子满足
  4. 数学无用论??我们欠孩子真正的数学阅读
  5. 《SAS编程与数据挖掘商业案例》学习笔记之十八
  6. 按照学号查找学生_[源码和文档分享]基于JAVA和MYSQL数据库的学生成绩管理系统...
  7. 是否显示展开_Creo7.0教程之绝对精度对钣金件展开的作用详解
  8. 表3.5 文章管理测试用例表_本地管理表空间管理机制
  9. redis session java获取attribute_redis里的数据结构
  10. 小学计算机课教学设计,小学信息技术教学设计三篇