【AGC009E】Eternal Average
【AGC009E】Eternal Average
题面
题解
神仙题.jpg
我们把操作看成一棵\(k\)叉树,其中每个节点有权值,所有叶子节点(共\(n+m\)个)就是\(0\)或\(1\)。
出了叶子节点外的所有节点就代表一次合并,权值就是他们的平均值。
设一开始\(0\)点的深度分别为\(x_1,x_2...x_n\),\(1\)的深度为\(y_1,y_2...y_m\)。
那么根节点的权值为\(\sum (\frac 1k) ^ {y_i}\),而如果我们将所有点的权值改为\(1\),则根节点权值也为\(1\),那么有\(\sum (\frac 1k) ^ {x_i}+\sum (\frac 1k) ^ {y_i}=1\),而如果满足这个条件,则一定可以构造出一种方案。
那么问题转化为有多少个\(z\)能写成\(n\)个\((\frac 1k)^x\),\(1-z\)能写成\(m\)个\((\frac 1k)^y\)相加的形式。
我们将\(z\)表示为\((0.c_1c_2...)_k\),那么若不进位\(\sum c=m\),而进位的话进位一次就减去\(k-1\),那么\(\sum c=m(\bmod\;k-1)\)。
假设小数有\(len\)位,那么\(1-z\)的和应为\((len-1)(k-1)+k-\sum c=len(k-1)-\sum c+1\)。
然后设\(f_{i,j}\)表示到第\(i\)位,目前和为\(j\)的方案数即可,因为末尾不能为\(0\),所以要多开一维记一下最后一位是否为\(0\)。
(大量参考litble的题解)
代码
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const int Mod = 1e9 + 7;
const int MAX_N = 2e3 + 5;
int N, M, K, ans;
int f[MAX_N << 1][MAX_N][2], s[MAX_N];
int main () {
cin >> N >> M >> K;
f[0][0][0] = 1;
for (int i = 1; i <= N + M; i++) {
s[0] = (f[i - 1][0][0] + f[i - 1][0][1]) % Mod;
for (int j = 1; j <= N; j++)
s[j] = (s[j - 1] + (f[i - 1][j][0] + f[i - 1][j][1]) % Mod) % Mod;
for (int j = 0; j <= N; j++) {
f[i][j][0] = (f[i - 1][j][0] + f[i - 1][j][1]) % Mod;
if (j) f[i][j][1] = (s[j - 1] - (j - K >= 0 ? s[j - K] : 0) + Mod) % Mod;
}
for (int j = 0; j <= N; j++)
if (j % (K - 1) == N % (K - 1) &&
(i * (K - 1) - j + 1) % (K - 1) == M % (K - 1) &&
i * (K - 1) - j + 1 <= M)
ans = (ans + f[i][j][1]) % Mod;
}
printf("%d\n", ans);
return 0;
}
【AGC009E】Eternal Average的更多相关文章
- 【Leetcode_easy】637. Average of Levels in Binary Tree
problem 637. Average of Levels in Binary Tree 参考 1. Leetcode_easy_637. Average of Levels in Binary T ...
- 【leetcode】637. Average of Levels in Binary Tree
原题 Given a non-empty binary tree, return the average value of the nodes on each level in the form of ...
- 【LeetCode】637. Average of Levels in Binary Tree 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:DFS 方法二:BFS 日期 题目地址:ht ...
- 【CF61D】Eternal Victory
题目大意:给定一棵 N 个节点的树,求从 1 号节点(根节点)出发,任意节点结束,且至少经过每个节点一次的最短路径是多少. 题解:首先考虑最终要回到根节点的情况,可以发现最短路径长度一定等于该树边权的 ...
- 【LeetCode】二分 binary_search(共58题)
[4]Median of Two Sorted Arrays [29]Divide Two Integers [33]Search in Rotated Sorted Array [34]Find F ...
- 【LeetCode】队列 queue(共8题)
[346]Moving Average from Data Stream [353]Design Snake Game [363]Max Sum of Rectangle No Larger Than ...
- 【LeetCode】设计题 design(共38题)
链接:https://leetcode.com/tag/design/ [146]LRU Cache [155]Min Stack [170]Two Sum III - Data structure ...
- 【原创】开源Math.NET基础数学类库使用(11)C#计算相关系数
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...
- 看懂SqlServer查询计划【转】
原文链接:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html 开始 SQL Server 查找记录的方法 SQL Server ...
随机推荐
- 从URL重写中学习正则表达式
起因: 最近因为业务上的需求,老板要求改写网站的域名.要求把所有的二级域名中的内容放到主域名下,增加资源集中程度,有利于搜索引擎的优化. so.网站中所有的URL定向都要重写,也就是我们所说的伪静态的 ...
- 奥展项目笔记01--不同网站,点击工具--开发人员工具F12,显示的页面怎么不一样
开发人员工具F12,显示的页面不一样: 样式1: 样式2: 解决方案:兼容模式和极速模式的开发者工具不一样,改成极速模式就ok了.
- Linux内核调优部分参数说明
#接收套接字缓冲区大小的默认值(以字节为单位). net.core.rmem_default = 262144 #接收套接字缓冲区大小的最大值(以字节为单位). net.core.rmem_max = ...
- golang --strings 下常用函数api
1. func Compare(a, b string) int {} 比较返回一个按字典顺序比较两个字符串的整数.如果a == b则结果为0,如果a <b则结果为-1,如果a> b则结果 ...
- SQLServer之Case用法
定义 计算条件列表,并返回多个可能的结果表达式之一. 表达式类型 case具有两种格式: 简单case表达式,它通过将表达式与一组简单的表达式进行比较来确定结果. case搜索表达式,它通过计算一组布 ...
- edrawmax使用技巧备忘
由于自己经常需要画图示意,在对比研究了市面上的画图软件后,最终选择了亿图图示,一来是该软件貌似简单强大,有好多现成可用的功能,二来支持国产,并且亿图团队感觉还是不错的一直在用心打磨产品,当然要支持的! ...
- 用Python分析国庆旅游景点,告诉你哪些地方好玩、便宜、人又少
注:本人参考“裸睡的猪”公众号同名文章,学习使用. 一.目标 使用Python分析出国庆哪些旅游景点:好玩.便宜.人还少的地方,不然拍照都要抢着拍! 二.获取数据 爬取出行网站的旅游景点售票数据,反映 ...
- 2019 海看java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.海看等公司offer,岗位是Java后端开发,因为发展原因最终选择去了海看,入职一年时间了,也成为了面试官,之 ...
- Java诊断利器Arthas优雅排查生产环境
前言 Arthas 是Alibaba开源的Java诊断工具.在线排查问题,无需重启:动态跟踪Java代码:实时监控JVM状态.对分秒必争的线上异常,Arthas可帮助我们快速诊断相关问题. 下载安装 ...
- 349套HTML5+CSS3各行各业网站模板免费下载
场景 349套HTML5+CSS3各行各业网站模板. Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征.在互联网的演化进程中,网页制作是Web1.0时代产物,那时网站的主要内容是静态的, ...