NOIP2024模拟赛7:纯粹当下

今日挂分:95pts......

T2

  • \(T\) 组数据, 每组给定 \(n,k,f,a_i\), 一个序列 \(b\) 满足 \(b_i \in [a_i-k,a_i]\), 记 \(g\) 表示至多删去序列中 \(f\) 个数后, 使得剩余所有数的 \(\gcd\), 求 \(g\) 的集合并输出.
  • 标签:转化,调和级数,前缀和.
  • 其实也有点儿 逆向思维 的感觉...
  • 直接枚举 \(g\), 考虑 b 的集合就是 \({b \ | \ b=c\times}g,c \in \N^+\)
  • 那么就反过来检测有多少个不合法的 \(a_i\)
  • 反过来, \(a_i\) 的 范围就变成了 \([c\times g,c\times g+k],c \in \N^+\)
  • 此范围以外的 \(a_i\) 都是不合法的,要求其个数不超过 \(f\).
  • 关于个数的统计,开个桶做个前缀和即可.
  • 时间复杂度: \(O(n\ln_n)\)
  • 总结一下: 其思维的逆向在于:本来 \(b_i\) 的取值是不定的,但由于 \(gcd\) 的条件因此反而需要 \(a_i\) 的取值来 "配合" \(b_i\) 的取值.
#include<bits/stdc++.h>
#define F(i,l,r) for(int i(l);i<=r;++i)
#define G(i,r,l) for(int i(r);i>=l;--i)
using namespace std;
using ll = long long;
char buf[100],*p1=buf,*p2=buf,obuf[10000000],*o=obuf;
inline int gc(){return (p1==p2)&&(p2=(p1=buf)+fread(buf,1,100,stdin),p1==p2)?EOF:*p1++;}
inline int rd(){
int x=0; char ch;
while(!isdigit(ch=gc()));
do x=(x<<3)+(x<<1)+(ch^48); while(isdigit(ch=gc()));
return x;
}
inline void write(int x){
if(x>9) write(x/10);
*o++=(x%10+48);
}
const int N=2e6+5;
int n,k,f,T,mx=0,cnt=0;
int sum[N];
signed main(){
// freopen("tsuki.in","r",stdin);
// freopen("tsuki.out","w",stdout);
T=rd(); while(T--){
n=rd(),k=rd(),f=rd();
mx=0;
memset(sum,0,sizeof(sum));
F(i,1,n){
int x=rd();
sum[x]++;
mx=max(mx,x);
}
F(i,1,mx) sum[i]+=sum[i-1];
write(1); *o++=' ';
F(g,2,mx){
cnt=sum[g-1];
for(int i=g;i<=mx && i+k<mx;i+=g){
int l=i+k+1,r=min(mx,i+g-1);
if(l<=r) cnt+=sum[r]-sum[l-1];
}
if(cnt<=f) write(g),*o++=' ';
}
*o++='\n';
}
fwrite(obuf,o-obuf,1,stdout);
return fclose(stdin),fclose(stdout),fflush(0),0;
}

NOIP2024模拟赛7:纯粹当下的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  3. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  4. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  5. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  6. 小奇模拟赛9.13 by hzwer

    2015年9月13日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...

  7. PKUSC 模拟赛 day1 下午总结

    下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...

  8. [GRYZ]寒假模拟赛

    写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...

  9. BZOJ2741: 【FOTILE模拟赛】L

    2741: [FOTILE模拟赛]L Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1170  Solved: 303[Submit][Status] ...

  10. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

随机推荐

  1. CORDIC算法解释及FPGA实现(圆坐标系)

    CORDIC算法解释及Verilog仿真(圆坐标系) CORDIC算法原理阐述 CORDIC(Coordinate Rotation Digital Computer)算法,即坐标旋转数字计算方法,是 ...

  2. Win32 菜单添加复选标记和单选标记

    在菜单中添加复选标记用CheckMenuItem函数 CheckMenuItem函数原型: DWORD WINAPI CheckMenuItem( _In_ HMENU hMenu, //菜单句柄 _ ...

  3. CentOS 7.3离线安装 JDK

    1.下载对应的JDK版本 # 网盘链接:https://pan.baidu.com/s/1HMCJis-FEicIcDTgbksBnQ # 密码:q65m 2.查看原系统jdk版本 [bw@local ...

  4. 我的 PowerShell 配置

    安装 Scoop: Scoop 是 Windows 上的包管理器 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUse ...

  5. 设计模式 | 中介者模式/调停者模式(Mediator)

    定义: 用一个中介对象来封装以系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地变化他们之间的交互. 结构:(书中图,侵删) 一个抽象中介者 若干具体中介者 一个抽象 ...

  6. vue打包项目版本号自加

    原因 项目每次打包后都需要改动项目版本号,这个改动每次都需要在package.json中修改version,比较麻烦,到底有没有一种打包后版本号自加的办法. 方案 版本号自加其实可以使用fs修改文件来 ...

  7. 语音识别 可以跑在MCU上吗

    Ref: https://developer.arm.com/Additional%20Resources/Video%20Tutorials/AITechTalk-Video-Speech%20re ...

  8. 005.MinIO-DirectPV分布式多租户存储部署

    MinIO部署准备 部署概述 本实验结合Kubernetes进行MinIO部署,实现MinIO于Kubernetes的融合. minio官方支持通过简单的快速部署,以便于进行基础测试: curl ht ...

  9. [python][selenium] Web UI自动化页面切换iframe框架

    关联文章:Web UI自动化8种页面元素定位方式 1.切换iframe的方法:switch_to.frame  入参有4种:  1.1.id  1.2.name  1.3.index索引  1.4.i ...

  10. 使用Joi 完成JavaScript 数据校验

    无论是在前端还是后端(Node.js),数据校验都是一件不可或缺的事情,使用JOI让我们轻松的完成数据校验 > npm install joi 这里持续记录使用心得 版本:17.4.2 官网:h ...