JZOJ 5280 膜法师
好啰嗦......还好作者给了一句话题意,不然光看题就很耗费时间。
样例输入:
1
6 3 1
78 69 55 102 233 666
样例输出:
1 2 3 4 5 6 11
数据范围:
思路:
首先思路肯定就是暴力,因为原题暴力能拿60分 o( ̄3 ̄)o
然后发现数据保证ai不大于2000000
诶......那就是说可以开个桶的水平?
好\(^o^)/~
开一个数组统计每个数出现了多少次,维护一个前缀和
因为对于每一个满足条件的g,必有一个区间和的值在n-f以上,且这个区间属于集合 {h*g~h*g+k | h=1,2,3,4.....}
所以只要枚举全部可能的g,对于每一个g枚举h=1~floor(A/g),其中A是ai的最大值
代码:
然而蒟蒻的我因为被卡常数加了输入输出优化和特判(所有小于k的g),还是跑的没有一众dalao快 -_-||
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#define ll long long
using namespace std;
ll n,k,f,a[],x[],maxn,sum[];
inline ll read()
{
ll data=,w=; char ch=;
while(ch!='-' && (ch<'' || ch>'')) ch=getchar();
if(ch=='-') w=-,ch=getchar();
while(ch>='' && ch<='') data=data*+ch-'',ch=getchar();
return data*w;
}
inline void write(ll x)
{
if(x<) putchar('-'),x=-x;
if(x>) write(x/);
putchar(x%+'');
}
int main(){
// freopen("mogician19.in","r",stdin);
// freopen("000000000001.out","w",stdout);
ll t,i,g,tmp;t=read();ll tttt=t;
while(t--){
memset(a,,sizeof(a));memset(x,,sizeof(x));memset(sum,,sizeof(sum));
maxn=;
// scanf("%d%d%d",&n,&k,&f);
n=read();k=read();f=read();
for(i=;i<=n;i++){
// scanf("%d",&a[i]);
a[i]=read();
x[a[i]]++;maxn=max(maxn,a[i]);
}
for(i=;i<=maxn+k;i++) sum[i]=sum[i-]+x[i];
printf("1 ");
for(g=;g<=min(maxn/+,maxn);g++){
tmp=;
if(g<=k+){
if(sum[g-]<=f){
write(g);putchar(' ');
}
continue;
}
for(i=;i<=maxn/g;i++){
tmp+=sum[g*i+k]-sum[g*i-];
}
if(n-f<=tmp){
write(g);putchar(' ');
}
}
putchar('\n');
}
}
JZOJ 5280 膜法师的更多相关文章
- JZOJ.5280【NOIP2017模拟8.15】膜法师
Description
- [BZOJ 5055]膜法师
Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘 ...
- bzoj5055 膜法师
Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘 ...
- BZOJ_5055_膜法师_树状数组+离散化
BZOJ_5055_膜法师_树状数组+离散化 Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然 ...
- bzoj 5055: 膜法师——树状数组
Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘 ...
- bzoj 5055: 膜法师 -- 树状数组
5055: 膜法师 Time Limit: 10 Sec Memory Limit: 128 MB Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇 ...
- 【BZOJ5055】膜法师 树状数组
[BZOJ5055]膜法师 Description 题目描述 在给定的维度序列a中, 求出所有满足i<j<k且ai<aj<ak的ai*aj*ak的和 即 ∑ (a_i*a_j* ...
- [JZOJ5280]膜法师题解--思维+前缀和
[JZOJ5280]膜法师题解--思维+前缀和 题目链接 暴 力 过 于
- 【bzoj5055】膜法师(离散化+树状数组)
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=5055 这道题……不得不说,从标题到题面都能看出一股浓浓的膜法气息……苟…… 题意就是统计顺序 ...
随机推荐
- jq weui 图片浏览器Photo Browser 第一次点击任意图片总是显示第一张
第一次做这个图片浏览器的时候遇到一个问题,如共有6张图片,每次进入页面时,第一次点击,无论去点击6张图片的哪一张初始化显示的都是第一张图片.后面的每次点击都没有问题的. for(let i = 0;i ...
- 判断一个Object是否为数组Array的方法
1.constructor constructor 属性是每个有原型对象的原型成员 arr.constructor == Array //true说明arr是数组 2.isArray arr.isA ...
- 洛谷题解:P1209 【[USACO1.3]修理牛棚 Barn Repair】
原题传送门:https://www.luogu.org/problemnew/show/P1209 首先,这是一道贪心题. 我们先来分析它的贪心策略. 例如,样例: 4 50 18 3 4 6 ...
- mybatis异常:Could not find result map ......... 问题分析及解决
org.apache.ibatis.builder.IncompleteElementException: Could not find result map....... 网上的大部分的改正方法是: ...
- datatable行内内容太长,有时不自动换行解决方法
加一个css属性即可 style = "word-wrap:break-word;" js代码: "render": function (data, type, ...
- linux基础目录
第1章 linux目录结构 1.1 linux目录结构的特点 一切皆文件 1)倒挂的树状结构 一切从根开始 2)linux每个目录可以挂载在不同的设备(磁盘)上.windows不容易做到. /da ...
- CodeMirror的使用方法
最近项目中用到了CodeMirror这个代码编辑器,感觉非常好用,可以设置很多种代码格式.默认前提是你已经正确引入了所有的js文件和css文件. 下面是我在项目中用到过和在网上搜集整理的使用方法: 1 ...
- FreeBSD--网络配置
配置网口:ifconfig |less dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 i ...
- 《算法》第四版 IDEA 运行环境的搭建
<算法>第四版 IDEA 运行环境的搭建 新建 模板 小书匠 在搭建之初,我是想不到会出现如此之多的问题.我看了网上的大部分教程,都是基于Eclipse搭建的,还没有使用IDEA搭建的教程 ...
- scala Actor -03
1.对于上一篇讲解的scala的一些补充 val files = Array[String]("a.txt","b.txt","c.txt" ...