算法习题---4-9数据挖掘(Uva1591)
一:题目
这是最懵逼的一道题,什么鬼.........
[刷题]算法竞赛入门经典(第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)的更多相关文章
- 【算法习题】数组中任意2个(3个)数的和为sum的组合
题1.给定一个int数组,一个数sum,求数组中和为sum的任意2个数的组合 @Test public void test_find2() { int[] arr = { -1, 0, 2, 3, 4 ...
- 嫌弃Apriori算法太慢?使用FP-growth算法让你的数据挖掘快到飞起
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第20篇文章,我们来看看FP-growth算法. 这个算法挺冷门的,至少比Apriori算法冷门.很多数据挖掘的教材还会 ...
- July 算法习题 - 字符串4(全排列和全组合)
https://segmentfault.com/a/1190000002710424 思想:当前层各节点首元素不同,则各节点的剩余元素也不同:下一层节点交换范围为首元素以外的元素 全排列算法: vo ...
- tarjan算法 习题
dfs树与tarjan算法 标签(空格分隔): 517coding problem solution dfs树 tarjan Task 1 给出一幅无向图\(G\),在其中给出一个dfs树\(T\), ...
- 【算法习题】正整数数组中和为sum的任意个数的组合数
1.递归实现(参考:https://blog.csdn.net/hit_lk/article/details/53967627) public class Test { @org.junit.Test ...
- 算法习题-FFT
Q1(hdu1402): 给出两个很大的数字A,B,计算二者乘积. 分析:这个题目java应该能过,用FFT做能够加速计算.这里将字符串A按权(10进制)展开,前面的系数就是多项式的系数,这样就构造出 ...
- 算法习题---5-8图书管理系统*****<双向迭代器>(UVa230)
一:题目 就是输入一系列书本名和作者名,然后输入命令模拟借书和还书,再输出归还的书的摆放位置.要求有两点: 需要对归还的书做特殊排序处理:作者名相同,则书本按书名从小到大排序:否则书本按作者名大小排序 ...
- 算法习题---5-7打印队列(UVa12100)
一:题目 有一个打印机,有一些任务在排着队打印,每个任务都有优先级.打印时,每次取出队列第一个任务,如果它的优先级不是当前队列中最高的,就会被放到队尾,否则就打印出来.输出初始队列的第m个任务的打印时 ...
- 算法习题---5-6对称轴(UVa1595)
一:题目 判断平面上的一组点,是否关于一条竖线对称.即找到一条垂直对称轴 (一)样例输入 - (二)样例输出 YES NO YES 二:代码实现 #define _CRT_SECURE_NO_WARN ...
随机推荐
- DT二次开发之-资讯列表中调用 TAG 关键词
资讯列表加文章关键词:(列表或搜索主字段加上 ,tag) {if $t[tag]} <p class="key"> 关键词: {php $tag = str_repla ...
- destoon修改搜索页面标题方法
最近研究destoon内核开发,发现destoon6.0的搜索页面模块的标题太长,是搜索标题+模块+首页标题,这样导致标题过长,百度不喜欢,所以我经过修改成百度所喜欢的. 修改前截图: 修改的文件:/ ...
- Machine learning system design---prioritizing what to work on
prioritizing what to work on 设计一个机器学习算法时,我们应该先做什么?以垃圾邮件识别的例子为例: 垃圾邮件发送者可能会故意将一些字符写错,如上图中的Medicine用1 ...
- SIGAI机器学习第二十三集 高斯混合模型与EM算法
讲授高斯混合模型的基本概念,训练算法面临的问题,EM算法的核心思想,算法的实现,实际应用. 大纲: 高斯混合模型简介实际例子训练算法面临的困难EM算法应用-视频背景建模总结 高斯混合模型简写GMM,期 ...
- mongoDB sh.status() too many chunks to print
too many chunks to print, use verbose if you want to force print 想要看到详细的信息则需要执行: mongos> sh.statu ...
- S1_搭建分布式OpenStack集群_01 准备虚拟机
Openstack版本:openstack-queen 版本 一.环境准备 网络规划: Management + API Network:10.10.11.0/24 eth1 网桥:br1 VM ...
- 洛谷 P2627 修剪草坪 题解
P2627 修剪草坪 题目描述 在一年前赢得了小镇的最佳草坪比赛后,Farm John变得很懒,再也没有修剪过草坪.现在,新一轮的最佳草坪比赛又开始了,Farm John希望能够再次夺冠. 然而,Fa ...
- UOJ272. 【清华集训2016】石家庄的工人阶级队伍比较坚强 [FWT]
UOJ 思路 很容易想到\(O(3^{3m}\log T)\)的暴力大矩乘,显然过不了. 我们分析一下每次转移的性质.题目给的转移方程是填表法,我们试着改成刷表法看看-- 发现好像没啥用. 注意到游戏 ...
- Picture Control 加载路径图片
//CBitmap bitmap; //HBITMAP hBmp; //bitmap.LoadBitmap(strImgPath); //hBmp = (HBITMAP)bitmap.GetSafeH ...
- Hbase监控指标项
名词解释 JMX:Java Management Extensions,用于用于Java程序扩展监控和管理项 GC:Garbage Collection,垃圾收集,垃圾回收机制 指标项来源 主机名 u ...