[BZOJ 5074]小B的数字
Description
给你一个长度为 \(n\) 的序列 \(a_1,a_2,\cdots,a_n\) ,让你生成另一个序列 \(b_1,b_2,\cdots,b_n\) ,使得 \(\forall i\in [1,n],b_i=2^{k},k\in\mathbb{Z^*}\) 并且对于 \(\forall i\in [1,n],\prod\limits_{j=1}^n b_j{\large\mid} b_i^{a_i}\) 。 \(T\) 组询问,询问能否构造出这样的 \(b\) 。
\(1\leq n\leq 10^5,a_i\leq 10, T\leq 10\)
Solution
考虑让 \(b_i=2^{c_i},c_i\in \mathbb{Z^*}\) ,那么题设的条件就变为 \(\forall i\in [1,n],2^{\sum\limits_{j=1}^nc_j}{\large\mid} 2^{c_i\times a_i}\)
即
\[\begin{equation}\forall i\in [1,n],\sum\limits_{j=1}^nc_j\leq c_i\times a_i\end{equation}\]
容易发现将 \(c_i\) 整体扩大某个整数倍上述式子依旧成立。
对于 \((1)\) 式,变形为 \(\forall i\in [1,n],\frac{\sum\limits_{j=1}^nc_j}{a_i}\leq c_i\) 。
那么
\[\begin{aligned}\sum_{i=1}^n\frac{\sum\limits_{j=1}^nc_j}{a_i}&\leq \sum_{i=1}^nc_i\\\sum_{i=1}^n\frac{1}{a_i}&\leq 1\end{aligned}\]
我们只要证明上述不等式是 \((1)\) 式的充要条件即可。
对于必要性,比较显然,因为 \((1)\) 式成立的话,上述式子一定成立。
证明充分性,假设上式不成立,那么 \((1)\) 式一定不成立;假设上式子成立,我们考虑令 \(c_i=\frac{1}{a_i}\) 那么两个式子就是相同的。
由上述结论,我们可以构造这样的一组 \(b_i=2^{c_i}\) , \(c_i=\frac{1}{a_i}\) 。
由之前的结论:将 \(c_i\) 整体扩大某个整数倍式子依旧成立。不妨让 \(c_i\) 乘上 \(\text{lcm}_{i=1}^n a_i\) 那么得到解了。
所以判断存在性,只需判断是否满足 \(\sum\limits_{i=1}^n\frac{1}{a_i}\leq 1\) 。
Code
#include <bits/stdc++.h>
using namespace std;
const int fac = 3628800;
void work() {
int n, x; long long s = 0; scanf("%d", &n);
for (int i = 1; i <= n; i++) scanf("%d", &x), s += fac/x;
puts(s <= fac ? "YES" : "NO");
}
int main() {int t; cin >> t; while (t--) work(); return 0; }
[BZOJ 5074]小B的数字的更多相关文章
- [BZOJ 5071]小A的数字
Description 小A成为了一个数学家,他有一串数字A1,A2...An 每次可以进行如下操作,选择一个数字i(1<i<=n),将(Ai-1,Ai,Ai+1) 变为(Ai-1 + A ...
- bzoj 3437 小p的农场
bzoj 3437 小p的农场 思路 \(f[i]=min(f[j]+\sum\limits_{k=j+1}^{i}{b[k]*(i-k)}+a[i])\) \(f[i]=min(f[j]+\sum\ ...
- 【BZOJ5074】[Lydsy十月月赛]小B的数字 数学
[BZOJ5074][Lydsy十月月赛]小B的数字 题解:题目是问你ai*bi>=sum,bi>=0这个不等式组有没有解.因为a<=10,容易想到取ai的lcm,然后变成lcm*b ...
- 【BZOJ5071】[Lydsy十月月赛]小A的数字 发现性质
[BZOJ5071][Lydsy十月月赛]小A的数字 题解:一般遇到这种奇奇怪怪的操作,常用的套路是将原序列差分一下,或者求个前缀和什么的.本题就是直接对原序列求前缀和,然后发现一次操作相当于交换两个 ...
- bzoj 4447 小凸解密码
bzoj 4447 小凸解密码 先将原始状态的 \(B\) 处理出来,可以发现,若不修改,则每次指定的起始位置不同,对这个环 \(B\) 带来的影响只有 \(B_0\) 不同,即每次 \(B_0=A_ ...
- bzoj 4031: 小Z的房间 矩阵树定理
bzoj 4031: 小Z的房间 矩阵树定理 题目: 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时 ...
- BZOJ 5028 小z的加油站
bzoj链接 Time limit 10000 ms Memory limit 262144 kB OS Linux 感想 树上动态gcd的第二题也好了. [x] BZOJ 2257 [JSOI200 ...
- BZOJ 3438 小M的礼物
BZOJ 3438 小M的礼物 Description 小M在MC里开辟了两块巨大的耕地A和B(你可以认为容量是无穷),现在,小P有n中作物的种子,每种作物的种子 有1个(就是可以种一棵作物)(用1. ...
- [BZOJ 5074][Lydsy1710月赛]小B的数字
传送门 \(\color{green}{solution}\) 设 \[b_{i}=2^{w_{i}},sum= \sum_{i=1}^{n}{w_{i}}\] 则对于任意\(a_{i}\)都有 \[ ...
随机推荐
- mac下的抓包工具 -- Charles
# 背景 换了mac电脑,
- 使用ABP框架踩过的坑系列5
DDD领域驱动开发,实际是为复杂的业务场景而生的,为了让开发人员专注于业务,而操作系统.数据库.网络之类的技术细节,必须要持久透明化:实际就是数据库系统DBMS的ORM抽象,目标就是业务不需要考虑数据 ...
- vs 生成事件 +版本号+sed.exe
set ASMINFO=Properties\AssemblyInfo.csFINDSTR /C:"[assembly: AssemblyVersion(" %ASMINFO% | ...
- [.net]线程基础
关于线程的诞生 早期的16位Windows只有一个执行线程,在执行各种程序时,如果这个线程运行出现了问题,就会“冻结”整个系统,使得系统处于未响应状态.这是一件多么尴尬的事儿,无论是用户还是微软自己, ...
- Unreal Open Day游记
前几天去参加了Unreal Open Day,周四早上从北京出发,坐地铁跟徐导,呵呵,simon他们汇合后,打车去了北京南站.一路上有小雨,不禁让人多少有点担心堵车,好在一路顺利.由于还没有一台较牛的 ...
- MongoDB 安装详细教程 + 常用命令 + 与 Python 的交互
MongoDB 简介 MongoDB (名称来自 humongous/巨大无比的, 是一个可扩展的高性能,开源,模式自由,面向文档的NoSQL,基于 分布式 文件存储,由 C++ 语言编写,设计之初旨 ...
- 程序猿的日常——SpringMVC系统架构与流程回顾
web开发经历了很漫长的时间,在国内也快有十几年的时间了.从最开始的进程级到现在的MVC经历了很多的改进和优化,本篇就主要复习了解下Spring MVC相关的知识. 发展历程 第一阶段 CGI进程响应 ...
- 转载-浅谈Ddos攻击攻击与防御
EMail: jianxin#80sec.comSite: http://www.80sec.comDate: 2011-2-10From: http://www.80sec.com/ [ 目录 ]一 ...
- 【12】JMicro微服务-Zookeeper
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到11小节 1. CuratorFramework支持 JMicro目前基于Zookeeper实现统 ...
- 【xsy1172】 染色 dp
题目大意:现有$n$条排成一行的木板,每个木板有一个目标颜色.你每次能将一个区间内的木板分别染成它们的目标颜色,而这次染色的代价为这个区间内不同目标颜色的木板的数量的平方.问将全部木板染成目标颜色的最 ...