博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #374 (Div. 2)
阅读量:5051 次
发布时间:2019-06-12

本文共 721 字,大约阅读时间需要 2 分钟。

A. One-dimensional Japanese Crossword

  • 统计连续的B长度。

B. Passwords

  • 根据题意模拟下。

C. Journey

  • \(dp(i,j)\)表示走到\(i\)经过\(j\)个点的最小花费。

D. Maxim and Array

  • \[M=\prod_{i=1}^{n}{a_i}\]
  • 假设将\(a_i=a_i+x\),则增量为\(\frac{M}{a_i}\cdot(a_i+x)-M\),即\[\frac{Mx}{a_i}\]
  • 显然为了让值变小,增量需要为负数,且\(|\frac{M}{a_i}|\)需要尽可能大。
  • 根据\(M\)的正负分类讨论取正负值即可。
  • 因为每次取正值最小、负数最大,可以用优先队列维护。

E. Road to Home

  • \(f(i)\)表示在不超过\(r_i\)的前提下最多能唱的数量,\(g(i)\)表示从\(l_i\)前最多能唱的数量。
  • 每次从一个位置开始唱歌,必然是能唱到不能唱为止,否则就算中途停下来也只是将唱歌区间后移了而已。
  • 注意\(f(i)\)的末位置在\((r_i-p,r_i]\)中,这些位置到\(r_i\)都不足以唱一首歌,那么保存最大数量,数量相同的情况下位置最靠左即可。
  • 假设\(f(i)\)的最优位置在\(x\),那么下一次可以唱歌的时间点为\(x+t\),显然需要找到\(j\)满足\(x+t\le r_j\),此时有两种决策:
  1. 唱歌到\(r_j\)边界,更新\(f(j)\)
  2. 停止唱歌直到\(l_{j+1}\),更新\(g(j+1)\)

转载于:https://www.cnblogs.com/mcginn/p/5931415.html

你可能感兴趣的文章
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>
Halcon一日一练:图像拼接技术
查看>>
iOS设计模式 - 中介者
查看>>
centos jdk 下载
查看>>
HDU 1028 Ignatius and the Princess III(母函数)
查看>>
(转)面向对象最核心的机制——动态绑定(多态)
查看>>
token简单的使用流程。
查看>>
django创建项目流程
查看>>
Vue 框架-01- 入门篇 图文教程
查看>>
多变量微积分笔记24——空间线积分
查看>>
poi操作oracle数据库导出excel文件
查看>>
(转)Intent的基本使用方法总结
查看>>
Windows Phone开发(24):启动器与选择器之发送短信
查看>>
JS截取字符串常用方法
查看>>
Google非官方的Text To Speech和Speech Recognition的API
查看>>
stdext - A C++ STL Extensions Libary
查看>>
Django 内建 中间件组件
查看>>
bootstrap-Table服务端分页,获取到的数据怎么再页面的表格里显示
查看>>
进程间通信系列 之 socket套接字及其实例
查看>>
天气预报插件
查看>>