博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bzoj4724--Poi2017Podzielno
阅读量:4946 次
发布时间:2019-06-11

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

题意 : 

给你0 ~ B-1每个数的个数a[i],让你组成一个最大的B进制数 X 使X mod B-1 = 0 ,q个询问每次询问X的第k位数是什么。

--------------------------------------此后一千里--------------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

可以很简单观察出满足条件的X各位和一定是B-1的倍数。简单证明 : 设 (X = x0+x1*B+x2*B^2+...+xn*B^n) mod B-1 = 0

即 (x0 % p + x1*B % p + x2*B^2 % p +.....) % p = 0 ,因为B % B-1 = 1,所以 x0 + x1 + x2 + ... + xn % p = 0

因为题目条件a[i] > 0 所以我们总可以有 sigma(a[i])- 1 个 数的合法解,显然这个解是最优解。询问就直接二分一下回答。

代码 : 

#include
#define LL long longusing namespace std;inline int Max(int a,int b) {
return a>b?a:b;}inline int Min(int a,int b) {
return a
0?a:-a;}inline int Sqr(int a) {
return a*a;}#define MAXN 1000006int B,q;LL a[MAXN],sum,b[MAXN],k,all;int BS(LL k) { int l=0,r=B-1,mid,ret; while(l<=r) { mid=l+r>>1; if(b[mid]>=k) r=mid-1,ret=mid; else l=mid+1; } return ret;}int main() { scanf("%d%d",&B,&q); for(int i=0;i
all) puts("-1"); else printf("%d\n",BS(k)); } return 0;}
View Code

 

转载于:https://www.cnblogs.com/ihopenot/p/6498128.html

你可能感兴趣的文章
Java-Day05,基本语法
查看>>
集成学习
查看>>
c#网络通信框架networkcomms内核解析之一 消息传送
查看>>
Asp.net会话详解2——sessoin存储和配置
查看>>
C#中的类型相等与恒等(Equality & Identity)
查看>>
第三次作业
查看>>
nodejs中 图文混搭
查看>>
使用js控制文本超出部分显示省略号
查看>>
HDU ACM 1180 诡异的楼梯 (优先队列 + 广搜)
查看>>
深入理解css浮动
查看>>
Android 开发者福利Google Developers中国网站发布
查看>>
【模板】线段树 2
查看>>
《零基础入门学习Python》学习过程笔记【017函数】
查看>>
Block Demo
查看>>
LintCode Coins in a Line III
查看>>
Oracle定义varchar2()类型存储汉字的长度问题
查看>>
python 2.7 pip install plt 报错,应该是 pip install matplotlib
查看>>
C# 解压缩
查看>>
Centos7安装教程
查看>>
ABAP术语-ALE
查看>>