T147403 「TOC Round 4」吃,都可以吃
若不考虑 \(m\) 的限制,打表可以发现:
- 当 \(p=2^n\left(n>1\right)\) 时,最大的 \(f_i\) 是 \(5\),有十个 \(i\) 的 \(f_i\) 是 \(5\),它们可以通过 \(p\) 算出来。
- 当 \(p=3\times 2^n\left(n>0\right)\) 时,最大的 \(f_i\) 是 \(5\),有一个 \(i\) 的 \(f_i\) 是 \(5\),它可以通过 \(p\) 算出来。
- 当 \(p=2\) 时,最大的 \(f_i\) 是 \(f_6=f_7=f_8=f_{14}=f_{15}=f_{22}=f_{23}=f_{24}=f_{30}=f_{31}=6\)。
- 当 \(p=3\) 时,最大的 \(f_i\) 是 \(f_{15}=6\)。
- 当 \(p=5\) 时,最大的 \(f_i\) 是 \(f_{79}=5\)。
剩下最大的 \(f_i\leq 4\),而 \(4\) 的分布是很密集的。到后来就固定了,因为 \(p^2\) 无法对前 \(100\) 产生影响。
所以讨论完上面的情况,然后用暴力跑即可。
具体证明我也不会,可以问 \(\text A\color{red}{\text{utumnKite}}\) 神仙,我就暂时咕咕咕了。
code:
#include<bits/stdc++.h>
using namespace std;
#define Db double
#define Min(x,y)((x)<(y)?x:y)
#define For(i,x,y)for(i=x;i<=(y);i++)
#define int long long
const int num[10]={3,4,7,11,12,15,20,28,60,92};
int f[100005],p,n,m;
void work()
{
int mx=0,j,i;
For(i,1,100000)
{
f[i]=6;
For(j,1,signed(sqrt(Db(i))))
if(j!=p)f[i]=Min(f[i],f[i-j*j]+1);
}
For(i,1,Min(100000,n))
if(f[i]>mx)mx=f[i];
cout<<mx<<endl;
For(i,1,n)
if(f[i]==mx)
{
if(!m--)break;
cout<<i<<' ';
if(i==15&&p==3||i==31&&p==2||i==79&&p==5)break;
}
}
bool pd(bool type)
{
int x=p;
if(!type)
{
if(x%4)return 0;
x>>=2;
}
else
{
if(x%6)return 0;
x/=6;
}
while(x>1)
if(x&1)return 0;
else x>>=1;
return 1;
}
signed main()
{
int i;
cin>>n>>p>>m;
if(pd(0))
{
For(i,0,9)
if(num[i]*p*(p>>1)>0&&num[i]*p*(p>>1)<=n)
{
if(!i)cout<<"5\n";
if(m--)cout<<num[i]*p*(p>>1)<<' ';
else exit(0);
}
else break;
if(!i)work();
}
else if(pd(1)&&14*(p/3)*(p/3)<=n)
{
cout<<"5\n";
if(m--)cout<<14*(p/3)*(p/3)<<' ';
}
else work();
while(m>0)cout<<"-1 ",m--;
return 0;
}
T147403 「TOC Round 4」吃,都可以吃的更多相关文章
- [LOJ#531]「LibreOJ β Round #5」游戏
[LOJ#531]「LibreOJ β Round #5」游戏 试题描述 LCR 三分钟就解决了问题,她自信地输入了结果-- > -- 正在检查程序 -- > -- 检查通过,正在评估智商 ...
- [LOJ#526]「LibreOJ β Round #4」子集
[LOJ#526]「LibreOJ β Round #4」子集 试题描述 qmqmqm有一个长为 n 的数列 a1,a2,……,an,你需要选择集合{1,2,……,n}的一个子集,使得这个子集中任意两 ...
- [LOJ#522]「LibreOJ β Round #3」绯色 IOI(危机)
[LOJ#522]「LibreOJ β Round #3」绯色 IOI(危机) 试题描述 IOI 的比赛开始了.Jsp 和 Rlc 坐在一个角落,这时他们听到了一个异样的声音 …… 接着他们发现自己收 ...
- loj #547. 「LibreOJ β Round #7」匹配字符串
#547. 「LibreOJ β Round #7」匹配字符串 题目描述 对于一个 01 串(即由字符 0 和 1 组成的字符串)sss,我们称 sss 合法,当且仅当串 sss 的任意一个长度为 ...
- [LOJ#530]「LibreOJ β Round #5」最小倍数
[LOJ#530]「LibreOJ β Round #5」最小倍数 试题描述 第二天,LCR 终于启动了备份存储器,准备上传数据时,却没有找到熟悉的文件资源,取而代之的是而屏幕上显示的一段话: 您的文 ...
- [LOJ#516]「LibreOJ β Round #2」DP 一般看规律
[LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\ ...
- [LOJ#515]「LibreOJ β Round #2」贪心只能过样例
[LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. ...
- [LOJ#525]「LibreOJ β Round #4」多项式
[LOJ#525]「LibreOJ β Round #4」多项式 试题描述 给定一个正整数 k,你需要寻找一个系数均为 0 到 k−1 之间的非零多项式 f(x),满足对于任意整数 x 均有 f(x) ...
- LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力
二次联通门 : LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 /* LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 叫做计算几 ...
随机推荐
- sql server DDL语句 建立数据库 定义表 修改字段等
一.数据库:1.建立数据库 create database 数据库名;use 数据库名; create database exp1;use exp1; mysql同样 2.删除数据库 drop dat ...
- Shell脚本实现---Swarm集群部署实例(Swarm Cluster)
Shell脚本实现---Swarm集群部署实例(Swarm Cluster) 一.机器环境(均是centos7.8) IP hostname 角色 192.168.10.200 manager-swa ...
- python中使用with操作文件,为什么不需要手动关闭?
python中的with关键字,它是用来启动一个对象的上下文管理器的.它的原理是,当我们使用with去通过open打开文件的时候,它会触发文件对象的上下文管理器, 当with中的代码结束完成之后,去自 ...
- Maven打包过程
1.安装maven 下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven- ...
- adb命令如何获取appPackage和appActivity的信息
如何获取appPackage和appActivity的信息,这里有一个极为实用的命令:adb shell dumpsys activity |find "mFocusedActivity&q ...
- 想学 iOS 开发高阶一点的东西,从何开始?
前言 如果你正在学习 iOS, 或者正在从事IOS开发? 还是一个一个迷茫的待就业大学生,或是公司的到一个半老员工? 现在到了开发的一个阶段了,基本的东西很熟了,想着提高技术? 学习难一点的东西,不知 ...
- 不能再被问住了!ReentrantLock 源码、画图一起看一看!
前言 在阅读完 JUC 包下的 AQS 源码之后,其中有很多疑问,最大的疑问就是 state 究竟是什么含义?并且 AQS 主要定义了队列的出入,但是获取资源.释放资源都是交给子类实现的,那子类是怎么 ...
- 【Kubernetes学习笔记】-使用Minikube快速部署K8S单机学习环境
介绍 https://minikube.sigs.k8s.io/docs/ Minikube 用于快速在本地搭建 Kubernetes 单节点集群环境,它对硬件资源没有太高的要求,方便开发人员学习试用 ...
- 14 RPC
14 RPC RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些 ...
- 【开发板试用报告】鸿蒙OS环境搭建及代码烧录
鸿蒙系统的代码编译环境需要linux系统,软件开发和代码烧录需要windows环境. Linux环境 参考官方链接:https://gitee.com/openharmony/docs/blob/ma ...