若不考虑 \(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」吃,都可以吃的更多相关文章

  1. [LOJ#531]「LibreOJ β Round #5」游戏

    [LOJ#531]「LibreOJ β Round #5」游戏 试题描述 LCR 三分钟就解决了问题,她自信地输入了结果-- > -- 正在检查程序 -- > -- 检查通过,正在评估智商 ...

  2. [LOJ#526]「LibreOJ β Round #4」子集

    [LOJ#526]「LibreOJ β Round #4」子集 试题描述 qmqmqm有一个长为 n 的数列 a1,a2,……,an,你需要选择集合{1,2,……,n}的一个子集,使得这个子集中任意两 ...

  3. [LOJ#522]「LibreOJ β Round #3」绯色 IOI(危机)

    [LOJ#522]「LibreOJ β Round #3」绯色 IOI(危机) 试题描述 IOI 的比赛开始了.Jsp 和 Rlc 坐在一个角落,这时他们听到了一个异样的声音 …… 接着他们发现自己收 ...

  4. loj #547. 「LibreOJ β Round #7」匹配字符串

    #547. 「LibreOJ β Round #7」匹配字符串   题目描述 对于一个 01 串(即由字符 0 和 1 组成的字符串)sss,我们称 sss 合法,当且仅当串 sss 的任意一个长度为 ...

  5. [LOJ#530]「LibreOJ β Round #5」最小倍数

    [LOJ#530]「LibreOJ β Round #5」最小倍数 试题描述 第二天,LCR 终于启动了备份存储器,准备上传数据时,却没有找到熟悉的文件资源,取而代之的是而屏幕上显示的一段话: 您的文 ...

  6. [LOJ#516]「LibreOJ β Round #2」DP 一般看规律

    [LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\ ...

  7. [LOJ#515]「LibreOJ β Round #2」贪心只能过样例

    [LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. ...

  8. [LOJ#525]「LibreOJ β Round #4」多项式

    [LOJ#525]「LibreOJ β Round #4」多项式 试题描述 给定一个正整数 k,你需要寻找一个系数均为 0 到 k−1 之间的非零多项式 f(x),满足对于任意整数 x 均有 f(x) ...

  9. LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力

    二次联通门 : LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 /* LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 叫做计算几 ...

随机推荐

  1. E. Tree Reconstruction 解析(思維)

    Codeforce 1041 E. Tree Reconstruction 解析(思維) 今天我們來看看CF1041E 題目連結 題目 略,請直接看原題 前言 一開始完全搞錯題目意思,還以為每次會刪除 ...

  2. html2canvas.js——HTML转Canvas工具

    我们经常会遇上动态生成海报的需求,而在Web前端中,生成图片非Canvas莫属.但是在实际工作当中,为了追求效率,我们会不可避免地去使用一些JS插件,而html2canvas.js就是一款优秀的插件, ...

  3. Mybatis---02Mybatis执行过程分析

    1.在动态代理中,执行MapperMethod类里面的execute方法,这个方法里面最终是调用DefaultSqlSession类中的相关操作方法.接着之前的文章继续,在DefaultSqlSess ...

  4. 【转】Hello SDL: Your First Graphics Window

    FROM: http://lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.php Hello SDL: Your First Graphics Window ...

  5. ubuntu20.04 编译安装ckermit

    ubuntu20.04编译安装ckermit 我呢之前一直使用的是ubuntu18.04,最近在安装了某个软件之后,再加上自己的操作不当最终导致ubuntu系统卡死无法进入桌面环境,早就想更新20.0 ...

  6. C# 泛型的协变

    class Program { static void Main(string[] args) { Person person = new Person(); Person chinese2 = ne ...

  7. mns: Money Never Sleeps! 自己开发的一款 IDEA 插件介绍.

    一边敲代码, 一边关注股票/基金行情, 还不怕同事盯到自己的屏幕! 对于一个关注股市跟基金的研发人员来说, 莫过于一天到晚写代码, 而不能及时的查看股市行情跟基金走势了吧. 写代码的时候比较容易忘记看 ...

  8. 一款基于.NET Core的认证授权解决方案-葫芦藤1.0开源啦

    背景 18年公司准备在技术上进行转型,而公司技术团队是互相独立的,新技术的推动阻力很大.我们需要找到一个切入点.公司的项目很多,而各个系统之间又不互通,导致每套系统都有一套登录体系,给员工和客户都带来 ...

  9. 17 c10k问题

    所谓c10k问题,指的是服务器同时支持成千上万个客户端的问题,也就是concurrent 10 000 connection(这也是c10k这个名字的由来). 推荐: https://my.oschi ...

  10. ImpalaTest

    package com.niewj.demo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.R ...