正题

题目链接: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+qlog⁡B)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【数学】相关推荐

  1. 群论中的拉格朗日定理(子群的阶必然能整除群阶---数学

    前言:仅个人小记.本文记录的证明逻辑上不具有流畅性,主要是在一开始不流畅,拉格朗日神乎其技地引入了一个等价关系,进而实现了整个定理的证明,目前我没能给出拉格朗日是如何想到引入该等价关系. 最后给出推论 ...

  2. 通俗理解条件熵-数学

    就是决策树里面选划分属性用到的计算 条件熵越小表示划分之后各个集合越纯净 前面我们总结了信息熵的概念通俗理解信息熵 - 知乎专栏,这次我们来理解一下条件熵. 我们首先知道信息熵是考虑该随机变量的所有可 ...

  3. 内积和外积的物理意义-数学

    内积和外积的物理意义 Persistently关注 2018.07.31 14:28:46字数 277阅读 6,276 向量的内积 ab=ab cos(θ) 向量a和b的长度之积再乘以它们之间的夹角的 ...

  4. Ramsey定理数学

    https://blog.csdn.net/qq_41551359/article/details/84036876 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上 ...

  5. 数学上各种空间概念的关系图

    https://blog.csdn.net/cc1949/article/details/79744519 数学上有各种空间,概念容易混淆,为了记忆,整理出一张关系图. 目前不清楚无限维的内积空间是什 ...

  6. 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的内置函数 一.数学函数 1. 取整函数: round ...

  7. js函数语法:ASCII 码的相互转换,字符串操作,数学计算

    ASCII 码的相互转换 for (let i = 'a'.charCodeAt(); i <= 'z'.charCodeAt(); i++) {a.push(String.fromCharCo ...

  8. 机器学习数学 — 初等函数求导

    本文摘自 GitChat 李烨老师 [机器学习极简入门课]课程 1. 数学知识速查手册 机器学习常用微积分知识速查手册 机器学习常用线性代数知识速查手册 2. 初等函数求导公式

  9. Python学习笔记17:标准库之数学相关(math包,random包)

    前面几节看得真心累.如今先来点简单easy理解的内容. 一 math包 math包主要处理数学相关的运算. 常数 math.e   # 自然常数e math.pi  # 圆周率pi 运算函数 math ...

最新文章

  1. 齐鲁师范学院计算机专业在那个校区,齐鲁师范学院有几个校区及校区地址 哪个校区最好...
  2. 二分图模板(女生赛要用)
  3. 交易性金融资产的账务处理
  4. vue面向切面_vue:在路由跳转中使用拦截器
  5. STL源码剖析---红黑树原理详解下
  6. Adobe Acrobat Pro设置高亮快捷键
  7. 牛客小白月赛16 小石的签到题(博弈)
  8. python文件目录操作方法_Python常用的文件及文件路径、目录操作方法汇总介绍
  9. 区块连教程(一):前置知识-linux补充
  10. Together与Visual.Studio.NET的结合使用(一)
  11. 实战篇:如何用Keras建立神经网络(附全部代码) 1
  12. nginx 过滤请求URL参数及重定向
  13. 德保罗大学计算机专业,2020年德保罗大学排名TFE Times美国最佳计算机科学硕士专业排名第75...
  14. Java实现小说分割器
  15. C语言常见缩写和英文
  16. webstorm官网中文破解版(转自http://blog.csdn.net/vchen_hao/article/details/77248053)
  17. js打开新窗口并且不被拦截
  18. python 使用 turtle库 画“皮卡丘”
  19. 计算机应用模块等级考试大纲,计算机等级考试大纲最新.doc
  20. 网上书店管理系统mysql代码_网上书店管理系统数据库数据库

热门文章

  1. 树莓派能直接运行python程序_树莓派怎么运行python程序
  2. 线性跟驰模型 matlab,Bierley非线性跟驰模型特性仿真分析
  3. solr 配置mysql数据源_solr data-config.xml配置文件的见解mysql数据源
  4. mysql 5.7.17 源码安装_mysql5.7.17源码安装
  5. 俄语使用计算机怎么说,计算机俄语常用词汇
  6. python等值面图平滑_离散点插值方法、等值线的绘制及平滑技巧
  7. python魔术方法由谁定义_Python的魔术方法
  8. leetcode209. 长度最小的子数组(滑动窗口)
  9. AcWing 730. 机器人跳跃问题
  10. 计算机蠕虫是一个程序或程序系列,它采取截取口令并试图在系统中,计算机蠕虫病毒是一个程序或程序系列,它采取截取口令并试图在系统中做非法动作的方式直接攻击计算机。...