一:题目

这是最懵逼的一道题,什么鬼.........

[刷题]算法竞赛入门经典(第2版) 4-9/UVa1591 - Data Mining(详细题目看这个吧,不想多说)

二:代码实现

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string> unsigned int N, Sp, Sq, A_min, B_min;
//1<= N <=2^20是P,Q两个数组的元素个数,1 <= Sq,Sp <= 2^10分别是两个数组每个元素所占字节大小,所以两个数组分别最大占2^30字节
unsigned long long Qofs, Pofs, K;
//由公式偏移可以知道Pofs原来可能是2^30,先向左偏移会越界,所以选用一个较大的数据类型来存放 //重点:Qofs按照格式可以知道偏移量是同Pofs一样递增,而且按照题目所说,使用偏移公式,Q数组可以不连续,而且不会重叠
//因为Pofs最大30位,所以偏移不会超过30位,因此最大不会超过60位 void main()
{
FILE* fp = freopen("data9.in", "r", stdin);
freopen("data9.out", "w", stdout); while (!feof(fp))
{
scanf("%d %d %d", &N, &Sp, &Sq);
K = 0xffffffffffffffff,A_min = B_min = ; //64位
Pofs = (N-)*Sp; //直接是P数组最大偏移值去获取Q数组最大偏移值,从而获取K最小值 for (int A = ; A < ; A++)
{
for (int B = ; B < ;B++)
{
Qofs = (Pofs + (Pofs << A) >> B)+Sq;  //按照上面文章所说,书上公式是错误的额,这个公式是对的
if (Qofs < K && Qofs >= N*Sq) //找到的第一个最小K,获取的A,B就是最小的,我们不需要设置<=k去判断后面的AB值,没有必要
{
K = Qofs;
A_min = A;
B_min = B;
}
}
}
printf("%llu %u %u\n", K, A_min, B_min);
getchar();
} freopen("CON", "r", stdin);
freopen("CON", "w", stdout);
}

算法习题---4-9数据挖掘(Uva1591)的更多相关文章

  1. 【算法习题】数组中任意2个(3个)数的和为sum的组合

    题1.给定一个int数组,一个数sum,求数组中和为sum的任意2个数的组合 @Test public void test_find2() { int[] arr = { -1, 0, 2, 3, 4 ...

  2. 嫌弃Apriori算法太慢?使用FP-growth算法让你的数据挖掘快到飞起

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第20篇文章,我们来看看FP-growth算法. 这个算法挺冷门的,至少比Apriori算法冷门.很多数据挖掘的教材还会 ...

  3. July 算法习题 - 字符串4(全排列和全组合)

    https://segmentfault.com/a/1190000002710424 思想:当前层各节点首元素不同,则各节点的剩余元素也不同:下一层节点交换范围为首元素以外的元素 全排列算法: vo ...

  4. tarjan算法 习题

    dfs树与tarjan算法 标签(空格分隔): 517coding problem solution dfs树 tarjan Task 1 给出一幅无向图\(G\),在其中给出一个dfs树\(T\), ...

  5. 【算法习题】正整数数组中和为sum的任意个数的组合数

    1.递归实现(参考:https://blog.csdn.net/hit_lk/article/details/53967627) public class Test { @org.junit.Test ...

  6. 算法习题-FFT

    Q1(hdu1402): 给出两个很大的数字A,B,计算二者乘积. 分析:这个题目java应该能过,用FFT做能够加速计算.这里将字符串A按权(10进制)展开,前面的系数就是多项式的系数,这样就构造出 ...

  7. 算法习题---5-8图书管理系统*****<双向迭代器>(UVa230)

    一:题目 就是输入一系列书本名和作者名,然后输入命令模拟借书和还书,再输出归还的书的摆放位置.要求有两点: 需要对归还的书做特殊排序处理:作者名相同,则书本按书名从小到大排序:否则书本按作者名大小排序 ...

  8. 算法习题---5-7打印队列(UVa12100)

    一:题目 有一个打印机,有一些任务在排着队打印,每个任务都有优先级.打印时,每次取出队列第一个任务,如果它的优先级不是当前队列中最高的,就会被放到队尾,否则就打印出来.输出初始队列的第m个任务的打印时 ...

  9. 算法习题---5-6对称轴(UVa1595)

    一:题目 判断平面上的一组点,是否关于一条竖线对称.即找到一条垂直对称轴 (一)样例输入 - (二)样例输出 YES NO YES 二:代码实现 #define _CRT_SECURE_NO_WARN ...

随机推荐

  1. go语言-二进制与位运算

    一.进制介绍 1.二进制:0,1 -->不能直接用二进制来表示一个整数,用%b输出二进制 package mainimport "fmt"func main() { var ...

  2. lambda 函数的用法

    lambda函数又叫匿名函数, 匿名函数就是没有名字的函数,不使用def语句声明的函数.如果要声名,则需要使用lambda关键字进行声明. 一般用来定义简单的函数. 1.声明一个简单的加法匿名函数: ...

  3. go mod

    https://blog.csdn.net/zzhongcy/article/details/97243826 来自为知笔记(Wiz)

  4. 动手动脑-------找出指定文件夹下所有扩展名为.txt和.java的文件

    思路:首先向获取文件,如果是文件的话,则判断它是否以".txt"或".java"结尾,如果是则输出它的路径.如果是文件夹的话,则需获取子文件,利用递归方法遍历子 ...

  5. 012——软件安装之_matlab2019安装

    (一)参考文献:https://www.isharepc.com/14196.html (二)下载地址: 链接:https://pan.baidu.com/s/1gq06TuBWGr1Qc4owpRX ...

  6. TPC-H 下载参考

    CSDN免费下载地址 tpc-h-v2.17.3.zip tools https://download.csdn.net/download/zes2014/10558251

  7. webuploader+web如何实现分片+断点续传

    众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路. 实现文件夹 ...

  8. jdango 2.x的url配置的改变

    新版本的url.py文件中,不在使用1.x的正则表达式,强制使用在程序启动的时候会提示: WARNINGS: ?: (2_0.W001) Your URL pattern '^*article/' h ...

  9. 【一起来烧脑】入门ES6体系

    为什么要学习ES6 掌握ES3.ES5.ES6的联系和区别 快速入门ES6 学会快速构建ES6的编译环境 学习ES6: 常量 作用域 箭头函数 默认参数 对象代理 git git clone http ...

  10. GoCN每日新闻(2019-09-25)

    GoCN每日新闻(2019-09-25) 1. Go module 再回顾 https://colobu.com/2019/09/23/review-go-module-again/2. 如何灵活地进 ...