4724: [POI2017]Podzielno

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 77  Solved: 37
[Submit][Status][Discuss]

Description

B进制数,每个数字i(i=0,1,...,B-1)有a[i]个。你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要
用完所有数字),使得X是B-1的倍数。q次询问,每次询问X在B进制下的第k位数字是什么(最低位是第0位)。

Input

第一行包含两个正整数B(2<=B<=10^6),q(1<=q<=10^5)。
第二行包含B个正整数a[0],a[1],a[2],...,a[B-1](1<=a[i]<=10^6)。
接下来q行,每行一个整数k(0<=k<=10^18),表示一个询问。

Output

输出q行,每行一个整数,依次回答每个询问,如果那一位不存在,请输出-1。

Sample Input

3 3
1 1 1
0
1
2

Sample Output

0
2
-1

HINT

 

Source

[Submit][Status][Discuss]

-----------------------------------------------------------------------------

数学题目

证明在N进制下若1一个数是(N-1)的倍数 那么 他的每一位数字相加在(%(N-1))的意义下等于 0

例如在10进制下 198是9的倍数 因为 (1+9+8)%9=0

证明:

  假设一个数字A (N进制下) 那么设它每一位上的数字为 k[i] 则 A=Σki*N^i  (N^i)%(N-1)=1A%(N-1)=(Σki)%(N-1)=0

代码如下:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define CH c=getchar()
#define mp make_pair
#define fi first
#define se second
#define For(i,x,y) for(int i=x;i<=y;++i)
using namespace std;
const int N=1e6+;
long long a[N];
long long B,q;
long long f[N];
inline int read()
{
bool f=;char CH;for(;!isdigit(c);CH)if(c=='-')f=;
int x=;for(;isdigit(c);CH)x=(x<<)+(x<<)+c-;
return f?-x:x;
}
int main()
{
// cout<<read();
long long tmp=;
B=read();q=read();
For(i,,B-)a[i]=read();
For(i,,B-)
tmp=(tmp+1LL*(a[i]%(B-))*i)%(B-);
if (tmp)a[tmp]--;
f[]=a[];
For(i,,B-)
{
f[i]=f[i-]+a[i];
}
while(q--)
{
long long k;scanf("%lld",&k);
if(k>=f[B-])printf("-1");else
printf("%d",lower_bound(f,f+B,k+)-f);
puts("");
}
return ;
}

BZOJ4724 [POI2017]Podzielno的更多相关文章

  1. 【BZOJ4724】[POI2017]Podzielno 数学+二分

    [BZOJ4724][POI2017]Podzielno Description B进制数,每个数字i(i=0,1,...,B-1)有a[i]个.你要用这些数字组成一个最大的B进制数X(不能有前导零, ...

  2. bzoj 4724 [POI2017]Podzielno 二分+模拟

    [POI2017]Podzielno Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 364  Solved: 160[Submit][Status][ ...

  3. 【bzoj4724】[POI2017]Podzielno 二分

    题目描述 B进制数,每个数字i(i=0,1,...,B-1)有a[i]个.你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要用完所有数字),使得X是B-1的倍数.q次询问,每次询问X在B进制 ...

  4. BZOJ 4724: [POI2017]Podzielno

    Description 由\([0,B-1]\)的数字构造一个 \(B\) 进制数字,使得他是 \(B-1\) 的倍数. Sol 贪心+二分. 首先 \(X\) 是 \(B-1\) 的倍数,那么有 \ ...

  5. BZOJ 4726: [POI2017]Sabota?

    4726: [POI2017]Sabota? Time Limit: 20 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 301  Solved ...

  6. BZOJ 4726: [POI2017]Sabota? 树形dp

    4726: [POI2017]Sabota? 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4726 Description 某个公司有n ...

  7. BZOJ 4727: [POI2017]Turysta

    4727: [POI2017]Turysta Time Limit: 20 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 117  Solved ...

  8. BZOJ_4726_[POI2017]Sabota?_树形DP

    BZOJ_4726_[POI2017]Sabota?_树形DP Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属 ...

  9. [POI2017]Sabotaż

    [POI2017]Sabotaż 题目大意: 一棵\(n(n\le5\times10^5)\)个结点的树,初始时有一个未知的黑点,其余全为白点.对于一个点,如果其子树中黑点所占比例超过\(x\),则这 ...

随机推荐

  1. C++用法的学习心得(要求包含示例,并反映出利用网络获取帮助的过程)

          大一一年C++的学习生涯,让我感慨颇多!回想起,当初上课时的情形,一切是那么的清晰,仿佛就像是发生在昨天一样.        任何一门学科的学习都是有技巧的.对于c++,我学的并不好,刚开 ...

  2. 006-Map、Tuple、Zip实战解析

    006-Map.Tuple.Zip实战解析 实战代码 Map实战 本身是映射,映射关系在实际中应用非常广泛,比如:配置信息都是Key-Value形式 键值对不存在下边关系 是一个immutable(不 ...

  3. 第一章 JavaScript简史

    JavaScript:  一种使网页具有交互能力的程序设计语言. BOM: 浏览器对象模型,指通过JS用来调整Web浏览器的高度.宽度和位置属性的办法. DHTML: 1.利用HTML标记各种元素   ...

  4. window下安装jupyter

    1.Install [Anaconda](https://docs.continuum.io/anaconda/install#anaconda-install) 实际上安装了anaconda就已经安 ...

  5. Alignment trap 解决方法  【转 结合上一篇

    前几天交叉编译crtmpserver到arm9下.编译通过,但是运行的时候,总是提示Alignment trap,但是并不影响程序的运行.这依然很令人不爽,因为不知道是什么原因引起的,这就像一颗定时炸 ...

  6. 使用PHPExcel导出文件

    使用PHPExcel导出文件步骤及解析: 新建一个excel表格:实例化PHPExcel类 创建sheet(内置表):createSheet()方法,创建新的sheet方法 setActiveShee ...

  7. 《java集合概述》

    JAVA集合概述: Collection: |---List有序的:通过索引就可以精确的操作集合中的元素.元素是可以重复的. List提供了增删改查的动作. 增加add(element) add(in ...

  8. Meta http-equiv属性与HTTP头的Expires中(Cache-control)详解

    一.概述 A.http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就 ...

  9. 自定义jsp标签

    1.类: package ===============================; import javax.servlet.jsp.JspTagException; import javax ...

  10. Cordova学习(一) 环境搭建

    一.什么是cordova Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等. Cordova还提供了一组统一的Java ...