P5956-[POI2017]Podzielno【数学】
正题
题目链接:https://www.luogu.com.cn/problem/P5956
题目大意
BBB进制下,给出序列aaa,aia_iai表示数字iii有多少个。求一个最大的XXX在BBB进制下,由给出的数字组成(不一定要用完),且其是B−1B-1B−1的倍数。
qqq次询问XXX的第kkk位是几。
2≤B≤106,1≤q≤105,1≤ai≤106,0≤k≤10182\leq B\leq 10^6,1\leq q\leq 10^5,1\leq a_i\leq 10^6,0\leq k\leq 10^{18}2≤B≤106,1≤q≤105,1≤ai≤106,0≤k≤1018
解题思路
设xix_ixi表示第iii位的话就是
(∑i=0xi×Bi)%(B−1)=0⇒∑i=0(xi×Bi%(B−1))=0\left(\sum_{i=0}x_i\times B^i\right)\%(B-1)=0\Rightarrow \sum_{i=0}\left(x_i\times B^i\%(B-1)\right)=0(i=0∑xi×Bi)%(B−1)=0⇒i=0∑(xi×Bi%(B−1))=0
拆开单独的一个来看
xi×Bi%(B−1)=(xi%(B−1))×(Bi%(B−1))x_i\times B^i\%(B-1)=(\ x_i\%(B-1)\ )\times (\ B^i\%(B-1)\ )xi×Bi%(B−1)=( xi%(B−1) )×( Bi%(B−1) )
=xi%(B−1)×1=x_i\%(B-1)\times 1=xi%(B−1)×1
所以其实就是各位数字的和为B−1B-1B−1的倍数就好了。
然后再回头看题目发现有限制ai≥1a_i\geq 1ai≥1。这样如果用上所有数字的和对B−1B-1B−1取模为ttt的话,若ttt不为000,我们就让ata_tat减去一个111就好了。
然后对于询问求一个前缀和然后二分
时间复杂度O(B+qlogB)O(B+q\log B)O(B+qlogB)
code
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=1e6+10;
ll B,q,a[N];
signed main()
{scanf("%lld%lld",&B,&q);ll t=0;for(ll i=0;i<B;i++){scanf("%lld",&a[i]);(t+=a[i]*i)%=B-1;}if(t)a[t]--;for(ll i=0;i<B;i++)a[i]+=a[i-1];while(q--){ll x;scanf("%lld",&x);x++;if(x>a[B-1])puts("-1");else printf("%lld\n",lower_bound(a,a+B,x)-a);}return 0;
}
P5956-[POI2017]Podzielno【数学】相关推荐
- 群论中的拉格朗日定理(子群的阶必然能整除群阶---数学
前言:仅个人小记.本文记录的证明逻辑上不具有流畅性,主要是在一开始不流畅,拉格朗日神乎其技地引入了一个等价关系,进而实现了整个定理的证明,目前我没能给出拉格朗日是如何想到引入该等价关系. 最后给出推论 ...
- 通俗理解条件熵-数学
就是决策树里面选划分属性用到的计算 条件熵越小表示划分之后各个集合越纯净 前面我们总结了信息熵的概念通俗理解信息熵 - 知乎专栏,这次我们来理解一下条件熵. 我们首先知道信息熵是考虑该随机变量的所有可 ...
- 内积和外积的物理意义-数学
内积和外积的物理意义 Persistently关注 2018.07.31 14:28:46字数 277阅读 6,276 向量的内积 ab=ab cos(θ) 向量a和b的长度之积再乘以它们之间的夹角的 ...
- Ramsey定理数学
https://blog.csdn.net/qq_41551359/article/details/84036876 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上 ...
- 数学上各种空间概念的关系图
https://blog.csdn.net/cc1949/article/details/79744519 数学上有各种空间,概念容易混淆,为了记忆,整理出一张关系图. 目前不清楚无限维的内积空间是什 ...
- 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的内置函数 一.数学函数 1. 取整函数: round ...
- js函数语法:ASCII 码的相互转换,字符串操作,数学计算
ASCII 码的相互转换 for (let i = 'a'.charCodeAt(); i <= 'z'.charCodeAt(); i++) {a.push(String.fromCharCo ...
- 机器学习数学 — 初等函数求导
本文摘自 GitChat 李烨老师 [机器学习极简入门课]课程 1. 数学知识速查手册 机器学习常用微积分知识速查手册 机器学习常用线性代数知识速查手册 2. 初等函数求导公式
- Python学习笔记17:标准库之数学相关(math包,random包)
前面几节看得真心累.如今先来点简单easy理解的内容. 一 math包 math包主要处理数学相关的运算. 常数 math.e # 自然常数e math.pi # 圆周率pi 运算函数 math ...
最新文章
- 齐鲁师范学院计算机专业在那个校区,齐鲁师范学院有几个校区及校区地址 哪个校区最好...
- 二分图模板(女生赛要用)
- 交易性金融资产的账务处理
- vue面向切面_vue:在路由跳转中使用拦截器
- STL源码剖析---红黑树原理详解下
- Adobe Acrobat Pro设置高亮快捷键
- 牛客小白月赛16 小石的签到题(博弈)
- python文件目录操作方法_Python常用的文件及文件路径、目录操作方法汇总介绍
- 区块连教程(一):前置知识-linux补充
- Together与Visual.Studio.NET的结合使用(一)
- 实战篇:如何用Keras建立神经网络(附全部代码) 1
- nginx 过滤请求URL参数及重定向
- 德保罗大学计算机专业,2020年德保罗大学排名TFE Times美国最佳计算机科学硕士专业排名第75...
- Java实现小说分割器
- C语言常见缩写和英文
- webstorm官网中文破解版(转自http://blog.csdn.net/vchen_hao/article/details/77248053)
- js打开新窗口并且不被拦截
- python 使用 turtle库 画“皮卡丘”
- 计算机应用模块等级考试大纲,计算机等级考试大纲最新.doc
- 网上书店管理系统mysql代码_网上书店管理系统数据库数据库
热门文章
- 树莓派能直接运行python程序_树莓派怎么运行python程序
- 线性跟驰模型 matlab,Bierley非线性跟驰模型特性仿真分析
- solr 配置mysql数据源_solr data-config.xml配置文件的见解mysql数据源
- mysql 5.7.17 源码安装_mysql5.7.17源码安装
- 俄语使用计算机怎么说,计算机俄语常用词汇
- python等值面图平滑_离散点插值方法、等值线的绘制及平滑技巧
- python魔术方法由谁定义_Python的魔术方法
- leetcode209. 长度最小的子数组(滑动窗口)
- AcWing 730. 机器人跳跃问题
- 计算机蠕虫是一个程序或程序系列,它采取截取口令并试图在系统中,计算机蠕虫病毒是一个程序或程序系列,它采取截取口令并试图在系统中做非法动作的方式直接攻击计算机。...