好啰嗦......还好作者给了一句话题意,不然光看题就很耗费时间。

样例输入:

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 膜法师的更多相关文章

  1. JZOJ.5280【NOIP2017模拟8.15】膜法师

    Description

  2. [BZOJ 5055]膜法师

    Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘 ...

  3. bzoj5055 膜法师

    Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘 ...

  4. BZOJ_5055_膜法师_树状数组+离散化

    BZOJ_5055_膜法师_树状数组+离散化 Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然 ...

  5. bzoj 5055: 膜法师——树状数组

    Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘 ...

  6. bzoj 5055: 膜法师 -- 树状数组

    5055: 膜法师 Time Limit: 10 Sec  Memory Limit: 128 MB Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇 ...

  7. 【BZOJ5055】膜法师 树状数组

    [BZOJ5055]膜法师 Description 题目描述 在给定的维度序列a中, 求出所有满足i<j<k且ai<aj<ak的ai*aj*ak的和 即 ∑ (a_i*a_j* ...

  8. [JZOJ5280]膜法师题解--思维+前缀和

    [JZOJ5280]膜法师题解--思维+前缀和 题目链接 暴 力 过 于

  9. 【bzoj5055】膜法师(离散化+树状数组)

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=5055 这道题……不得不说,从标题到题面都能看出一股浓浓的膜法气息……苟…… 题意就是统计顺序 ...

随机推荐

  1. 洛谷P2759 奇怪的函数(log 二分)

    题目描述 使得 x^xxx 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^xxx 达到 n 位数字的最小正整数 x 输入输出样例 输 ...

  2. zabbix服务端安装配置

    1.安装好httpd,mysql,php yum install httpd php mysql mysql-devel php-xmlwriter php-gd php-mbstring php-b ...

  3. 39条常见的Linux系统简单面试题

    39条常见的Linux系统简单面试题 本文主要分享39条常见的Linux系统简单面试题,其中包括如何看当前Linux系统有几颗物理CPU和每颗CPU的核数.如何实时查看网卡流量为多少等等,希望对你有所 ...

  4. [Ljava.lang.String; cannot be cast to java.lang.String报错的原因

    完整错误信息: java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String 报这个错的原因 ...

  5. redis操作帮助类

    RedisHelper.java import redis.clients.jedis.*; import java.util.*; public class RedisHelper { privat ...

  6. C++ Primer 学习笔记_Chapter4 数组和指针–指针

    一.什么是指针? 指针与迭代器一样,指针提供对其所指对象的间接访问,指针保存的是另一个对象的地址: string s("hello"); string *ps = &s; ...

  7. WPF Datagrid对鼠标单击进行响应,借助EventSetter

    在做的一个c#的项目中发现Datagrid没办法直接对鼠标单击进行响应, 调用MouseDown事件也需要点击某一行第二次才能响应. 所以借助EventSetter来简单的实现了一个. 界面部分的代码 ...

  8. Cache、Buffer的区别

    什么是Cache?什么是Buffer?二者的区别是什么? Buffer和Cache的区别 buffer与cache操作的对象就不一样. 1.buffer(缓冲)是为了提高内存和硬盘(或其他I/O设备) ...

  9. html---Web Storage存储

    在HTML5中,除了Canvas元素之外,另一个新增的非常重要的功能是可以在客户端本地保存数据的Web Storage功能,之前可以使用Cookies在客户端保存如用户名等简单用户信息,但通过长期使用 ...

  10. HttpMessageConverter进行加密解密

    技术交流群: 233513714 使用自定义HttpMessageConverter对返回内容进行加密 今天上午技术群里的一个人问” 如何在 Spring MVC 中统一对返回的 Json 进行加密? ...