题目名称 3020. [UVa 1591]数据挖掘
输入输出 data_mining.in/out
难度等级 ★☆
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2018-10-28加入
开放分组 全部用户
提交状态
分类标签
位运算 UVa
分享题解
通过:0, 提交:0, 通过率:0%
关于 数据挖掘 的近10条评论(全部评论)
1楼
GravatarTheresis
2018-12-20 19:03 1楼

3020. [UVa 1591]数据挖掘

★☆   输入文件:data_mining.in   输出文件:data_mining.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】


有两个$n$元素组成的数组$P$和$Q$。$P$数组每个元素占$S_P$个字节,$Q$数组每个元素占$S_Q$个字节。有时需要直接根据$P$数组中某个元素$P(i)$的偏移量$P_{ofs}(i)$算出对应的$Q(i)$的偏移量$Q_{ofs}(i)$。当两个数组的元素均为连续存储时$P_{ofs}(i)=P_{ofs}(i)/S_P*S_Q$,但因为除法慢,可以把式子改写成速度较快的$Q_{ofs'}=(P_{ofs}(i)+P_{ofs}(i)<<A)>>B$。为了让式子成立,在$P$数组仍然连续存储的前提下,$Q$数组可以不连续存储(但不同数组元素的存储空间不能重叠)。这样做虽然会浪费一些空间, 但是提升了速度, 是一种用空间换时间的方法。

输入$N,S_P,S_Q(N\leq 2^{20},1\leq S_P,S_Q \leq 2^{10})$,你的任务是找到最优的$A$和$B$,使得占用的空间尽量小。输出的$K,A,B$值。多解时让$A$尽量小,如果仍多解让$B$尽量小。


英文原题:

【输入格式】

输入包含若干数据集。对于每个数据集包含三个由空格隔开的整数$N$($1\leq N\leq 2^{20}$), $S_P, S_Q$($1\leq S_P,S_Q\leq 2^{10})$输入由EOF结束。

【输出格式】

对于每一个数据集,输出一行包括有空格隔开的三个整数$K$,$A$,$B$。

【样例输入】

20 3 5
1024 7 1

【样例输出】

119 0 0
1119 2 5

【提示】

在此键入。

【来源】 

UVa 1591 ACM/ICPC NEERC 2003