bzoj题目链接

> 上面hint那里是选择第2个瓶子和第3个瓶子

Time limit 10000 ms

Memory limit 131072 kB

OS Linux

Source Jsoi2009

吐槽

故事是这样的:我本来要写下面列表最后那题题树剖,然后草稿纸上思考了好久也没有想出来怎么在区间更新的同时维护gcd,于是查了查,找到了下面列表的倒数第二题,各处题解都说题意显然是区间gcd,但盯着题面并没有看出哪里有gcd,反而想到的是这题——[USACO1.4]母亲的牛奶 Mother's Milk。记搜?之后又找到了这题,终于知道小z的加油站怎么倒油了。

博客园居然不支持markdown待办事项

解题思路

题目应该再加一句话:\(k\leqslant n\)。倒燃料的方式类似更相减损,减到不能减就是火星人付出的最少的燃料了。我看这里看懂的

由于数据范围不大,\(n\) 最大才1k,每个数字最大为\(10^9\),所以可以暴力找因数,复杂度为\(O(n\sqrt{\max {a_i}})\)。另外还需要统计所有因数的出现次数,直接用map就好,复杂度就再加个\(\log n\times \sum d(a_i)\),其中\(d(a_i)\)表示\(a_i\)的因子总数。

源代码

#include<map>
#include<cstdio> int n,k;
std::map<int,int> m;//离散化因数
std::map<int,int>::iterator it;
int main()
{
scanf("%d%d",&n,&k);
while(n--)
{
int a;
scanf("%d",&a);
for(int j=1;j*j<=a;j++)//枚举因子
{
if(a%j==0)
{
m[j]++;
if(a!=j*j) m[a/j]++;
}
}
}
for(it=m.end(),it--;it!=m.begin();it--)//一开始居然把这个循环放到了上面那个while里,WA了两发
{
if(it->second>=k)
{
printf("%d\n",it->first);
return 0;
}
}
return 0;
}

洛谷 P4571 BZOJ 2257 [JSOI2009]瓶子和燃料的更多相关文章

  1. [BZOJ 2257][JSOI2009]瓶子和燃料 题解(GCD)

    [BZOJ 2257][JSOI2009]瓶子和燃料 Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了. 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子 ...

  2. BZOJ 2257: [Jsoi2009]瓶子和燃料 裴蜀定理

    2257: [Jsoi2009]瓶子和燃料 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  3. BZOJ 2257: [Jsoi2009]瓶子和燃料【数论:裴蜀定理】

    2257: [Jsoi2009]瓶子和燃料 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1326  Solved: 815[Submit][Stat ...

  4. bzoj 2257[Jsoi2009]瓶子和燃料 数论/裴蜀定理

    题目 Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了. 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换.jyy 的飞船上共有 N个瓶子(1< ...

  5. bzoj 2257: [Jsoi2009]瓶子和燃料

    #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> usin ...

  6. bzoj 2257: [Jsoi2009]瓶子和燃料【裴蜀定理+gcd】

    裴蜀定理:若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立. 所以最后能得到的最小燃料书就是gcd,所以直 ...

  7. 2257: [Jsoi2009]瓶子和燃料

    题意:给你n个数字,然后让你选出k个,这k个数字进行任意组合,问得到的最小结果是多少? 数学知识: 分析:根据题意得出数学公式: 那么,如何在n个之中选出k个呢?其实不用选,因为直接计算各个因子,然后 ...

  8. bzoj2257: [Jsoi2009]瓶子和燃料

    2257: [Jsoi2009]瓶子和燃料 Time Limit: 10 Sec  Memory Limit: 128 MB Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了 ...

  9. 【BZOJ2257】[JSOI2009]瓶子和燃料(数论)

    [BZOJ2257][JSOI2009]瓶子和燃料(数论) 题面 BZOJ 洛谷 题解 很明显就是从\(n\)个数里面选\(K\)个数让他们的\(gcd\)最大. 暴力找所有数的因数,拿个什么东西存一 ...

随机推荐

  1. RabbitMQ 安装步骤

    RabbitMQ安装步骤 一.安装erlang 1.下载erlang wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1 ...

  2. 多线程13-CountdownEvent

        );         ));             ));             t1.Start();             t2.Start();             _coun ...

  3. Dos - 学习总结(1)

    1.控制台复制 1>鼠标右键,标记. 2>选定复制内容后,鼠标右键,完成复制. 2.

  4. [P5348]密码解锁

    Description 给一个长度为 \(n\) 的数组 \(a[1\dots n]\) ,满足 \(\sum_{m|x}a[x] = \mu(m)\),求 \(a[m]\). \(n\le 10^{ ...

  5. qt 部分控件 setStyleSheet 使用总结

    刚用Qt不久,但是已经感受到Qt ui设计的便捷. 总结一下最近使用的控件,把它们setStyleSheet的使用方法记录下来. 主要使用到的工具有:QToolBar,QToolBox,QPushBu ...

  6. 块设备驱动——ramblock

    一. 什么是块设备. 1.1. 一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性读到缓冲区.可以随机访问, ...

  7. 【Luogu P2201】【JZOJ 3922】数列编辑器

    题面: Description 小Z是一个爱好数学的小学生.最近,他在研究一些关于整数数列的性质. 为了方便他的研究,小Z希望实现一个叫做"Open Continuous Lines Pro ...

  8. HNUSTOJ-1690 千纸鹤

    1690: 千纸鹤 时间限制: 1 Sec  内存限制: 128 MB提交: 992  解决: 296[提交][状态][讨论版] 题目描述  圣诞节快到了,校园里到处弥漫着粉红色的气息.又是一个情侣秀 ...

  9. tortoise svn回滚常用命令

    一.revert to this version 和 revert changes from this version的区别 假设SVN已有版本4814-4854:1.基于4837版本执行[rever ...

  10. 求助高手,Nginx配置二级域名跳转 地址栏不变咋处理?

      做域名镜像的rewrite即可rewrite ^/(.*)$ http://二级域名/$1 last;