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 这道题……不得不说,从标题到题面都能看出一股浓浓的膜法气息……苟…… 题意就是统计顺序 ...
随机推荐
- react的 react-router使用
官方API:https://reacttraining.com/react-router/web/api/BrowserRouter; React Router 安装命令如下. 使用时,路由器Rout ...
- 字符串替换For linux C
1.临时空间给了个1024,不需要可减少长度. 2.结果只用用strcpy了,没校验. bool Replace(char *str,const char *src, const char *des) ...
- 7-4 python 接口开发(提供mock服务)
1.登录接口开发(数据存在数据库中) 接口开发做mock(模拟功能) tools.py import pymysql def my_db(sql): conn = pymysql.connect(h ...
- ES6笔记03-Set和Map数据结构
ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值.Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2, 3, 5, 4, ...
- PHP 多参数方法的重构
假设我们要完成一个保存文章的功能,如果采用函数编程的方式,大概会是下面这个样子: <?php function saveArticle($title, $content, $categoryId ...
- mysql的一些相关的命令(2013-05-05-bd 写的日志迁移
cmd中连接:mysql -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车) --建立数据库creata database 数据库名;--切换到数据库下工 ...
- 1016-02-首页17-添加转发微博控件-计算转发配图的 Frame-------打印出 被转发微博的模型
说明:HWStatus为微博模型,_retweeted_status 为返回的数据( 一条微博模型)里面的一个属性,_retweeted_status 不为空表示此微博是否转发了其他微博._retwe ...
- POJ:2385-Apple Catching(dp经典题)
Apple Catching Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14311 Accepted: 7000 Descr ...
- 9 10mins的投票功能
1.投票的原理 2.投票的数据结构设计 (1)准备工作 导入detail页面 配置静态文件 <link rel="stylesheet" href="../stat ...
- Android 做项目总结
1.base 2.跳转可以用uihelper 3.activity和处理逻辑分开 4.userhelper保存管理用户登录信息 5.验证输入框的时候,接受的参数不要是String ,而是Edittex ...