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 这道题……不得不说,从标题到题面都能看出一股浓浓的膜法气息……苟…… 题意就是统计顺序 ...
随机推荐
- 【iOS】史上最全的iOS持续集成教程 (上)
:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...
- react中实现原生enter/回车事件及antdesign组件实现方式
先直接上核心代码: this.goToHomePage换成自己逻辑 自己写的时候直接把this.goToHmoPage()换成自己的逻辑就行了,还有注意一点的是: 需要传个空函数,不然会报错 在com ...
- vscode + leetcode +github 同步
1.用VScode打开本地leetcode文件夹 C:\Users\Administrator\.leetcode 2.上传到本地git库 3.打开github桌面,上传到远程库
- Springcloud Eureka 启动失败:ERROR org.springframework.boot.SpringApplication - Application run failed
在测试Euruka作为服务注册中心的时候碰到了这个问题 [main] ERROR org.springframework.boot.SpringApplication - Application ru ...
- django+xadmin在线教育平台(十二)
6-4 用form实现登录-1 上面我们的用户登录的方法是基于函数来做的.本节我们做一个基于类方法的版本. 要求对类的继承有了解. 基础教程中基本上都是基于函数来做的,其实更推荐基于类来做.基于类可以 ...
- nginx 报错: nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
执行: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf https://www.cnblogs.com/codingcl ...
- oracle中序列,同义词的创建
序列 序列是用来生成唯一,连续的整数的数据库对象.序列通常用来自动生成主机那或唯一键的值.序列可以按升序排序, 也可以按降序排序.例如,销售流水表中的流水号可以使用序列自动生成. 创建序列语法: cr ...
- python-含参函数
#!/usr/local/bin/python3 # -*- coding:utf-8 -*- ''' #----------函数位置参数和关键字参数---------- def test(x,y): ...
- PPT入门学习笔记1:待修改
一直被比人忽悠实在是累了,我可以接受自己的失误,但我接受不了别人一次又一次的坑我! 做PPT的原则是什么? 1.一个目标: "一个PPT只为一类人服务,针对不同的听众制作不同层次内容的PPT ...
- 发送广播重新挂载SD卡,使图库可以及时显示自己保存的图片(无需手机重启)
我们或许经常会遇到这种情况,明明保存了图片,但是当你打开图片时,却没有找到这张图片,手机重启之后才能看到.这是因为SD卡并没有重新挂载,图库也无法把这张图片加载进去,解决这个问题非常简单,只需要我们模 ...