暂无链接

分解

【题目描述】

给定正整数N,你需要将其分解为若干正整数的乘积,要求分解出的数之间
相差都不超过1。

【输入格式】

第一行一个正整数T,表示数据组数。
接下来T 行,每行一个正整数N,意义如题面所示。

【输出格式】

对于每组数据,首先输出一行,一个整数P,表示有几组可行解,如果有无穷
多组解,输出-1。
若没有无穷多组解,接下来输出P 行,每行首先输出一个正整数M,表示将
N 分解为几个数,接下来输出M 个数,表示分解出的数。
如有多组解,请将分解出的数字从小到大排序,记为序列c1c2...cMc1c2...cMc_1 c_2...c_M,按照该
序列的字典序,将解从小到大输出。
一组解分解出多个数时,请先输出较小的数。

【样例输入】

2
1
12

【样例输出】

-1
3
3 2 2 4
2 3 4
1 12

【数据范围】

对于20%的数据 N≤100
对于40%的数据 N≤10910910^9
对于100%的数据 N≤1018101810^{18},T≤10

题解

当时看错题了,以为分出的因数从小到大相邻两个之间差不大于一。。。果断爆零。

然而,真正的题意是分解出的因数极差不大于一。。。orz瞬间变普及。

所以我们枚举质因数个数,每次先填充对应的次方根,然后根据当前因数乘积填充次方根+1,可以说是非常暴力了。

-1的情况就是2n2n2^n或者0。

另外,开n次方根的时候可以用pow函数,但是指数记得用long double,其他各种地方都开long long,毒瘤出题人。。。

代码
#include<bits/stdc++.h>
#define ll unsigned long long
using namespace std;
ll pow2[64],n,cot,hh[64][64];
void in()
{scanf("%lld",&n);}
void work(int x)
{ll base=(ll)pow(n,(double)1/x);ll ans[64],pro=1;for(int i=1;i<=x;++i)ans[i]=base,pro*=base;for(int i=x;i>=1;--i){if(pro==n)break;pro/=base;pro*=base+1;ans[i]++;}if(pro!=n)return;cot++;hh[cot][0]=x;for(int i=1;i<=x;++i)hh[cot][i]=ans[i];
}
void ac()
{cot=0;if(!n||n==1){printf("-1\n");return;}for(int i=62;i>=1;--i)if(n==pow2[i]){printf("-1\n");return;}for(int i=62;i>=1;--i)work(i);printf("%lld\n",cot);for(int i=1;i<=cot;++i){for(int j=0;j<=hh[i][0];++j)printf("%lld ",hh[i][j]);putchar(10);}
}
int main()
{pow2[0]=1;for(int i=1;i<=63;++i)pow2[i]=pow2[i-1]*2;int T;scanf("%d",&T);for(int i=1;i<=T;++i)in(),ac();return 0;
}

[UESTC SC T2] 分解相关推荐

  1. 【一周入门MySQL—4】数据库进阶练习

    数据库进阶练习 数据库进阶查询练习 素材:来自以下四个Table 数据准备(创建表,导入数据) -- 数据准备,创建Tableuse test;-- 学生表create table stu(s_id ...

  2. 网络流 小结(更新时间2015/8/8)更新中

    国家队集训队论文-网络流(下载链接) 基础知识我就不再累述了,大家百度百科或找某大牛博客看看就好了 下面是摘自某牛(http://www.cnblogs.com/neverforget/archive ...

  3. mysql中select 的题型_MYSQL经典题型详情解析

    学完了mysql后发现有很多地方不是很明白,于是总结了mysql的经典题型,不论是工作还是面试,我相信还是有一定帮助的. 例题一 ​ 在我的数据库中数据如下(排序有些差别,但是不影响结果) ​ 分析: ...

  4. 经典SQL练习——详细到令人发指(未完待续)

    最近几次面试,每一次回来都会感到自己的不足. 比如上一次,一家做教育的公司笔试题里有三道数据库题目,都是关于学生和成绩的查询,看着题目我不禁陷入沉思,人家日常用的SQL语句我都写不来的话,那我的数据库 ...

  5. SQL(之一)-SQL经典题目

    说明:以下SQL练习题(主要针对DBMS为ORACLE),题目来自网络,本人整理编辑完成,难度分为1-5星. 涉及的4个表的表间关系: --0-查询每个学生.最高学科的成绩.及最高成绩的所在学科在班级 ...

  6. 关系数据库、关系代数和关系运算

    本文转自:https://blog.csdn.net/alexshi5/article/details/80024250 特别感谢原作者,感觉写得特别清晰,为方便日后学习故转载 **一.关系数据结构及 ...

  7. MIPS常见指令汇总

    MIPS是世界上很流行的一种RISC处理器.MIPS的意思是"无内部互锁流水级的微处理器"(Microprocessor without interlocked piped sta ...

  8. 数据库练习(学生、课程、选课关系)

    有下列三张表,创建表,设置表之间的关系,插入一些值 S (SNO,SNAME)学生关系.SNO 为学号,SNAME 为姓名 C (CNO,CNAME,CTEACHER) 课程关系.CNO 为课程号,C ...

  9. 数据库(二)—— 关系数据库以及关系代数和关系运算

    一.关系数据结构及形式化定义 1.关系 关系模型的数据结构非常简单,只包含单一的数据结构--关系.在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表. 1.1 域 域是一组具有相同数据类型值的集合 ...

  10. sql练习一(学生,课程,教师,成绩)

    学生,课程,教师,成绩各种查询 初始化建表语句 create table Student(SID varchar(10),Sname nvarchar(10),Sage datetime,Ssex n ...

最新文章

  1. dataset__getitem___一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
  2. 在线实时大数据平台Storm集成redis开发(分布锁)
  3. 收藏:asp.net
  4. 大于小于优化_工程优化设计与Matlab实现——优化设计的数学基础
  5. 牛客题霸 NC30 数组中未出现的最小正整数
  6. 你若安好,便是晴天。
  7. 刚刚,英伟达发布最强无人车AI芯片,以及一系列自动驾驶新产品
  8. 关于div布局中float的使用
  9. 新闻简报(7/18)
  10. 数据清洗工具 OpenRefine简介
  11. 条码打印软件如何设置双排标签纸尺寸
  12. 软件架构师必考概念整理
  13. 1977年发生事件_历史回放:日本1977年海怪尸体事件
  14. python sqrt(4)*sqrt(9)_Python表达式sqrt(4)*sqrt(9)的值为__________。
  15. 【拜小白的机器学习】2-机器学习的种类与基本术语概念
  16. GAPIT 3.0:全基因组关联分析与预测软件最新版发布
  17. 开关电源的五种纹波噪声如何抑制?
  18. NBUT 1647 (多校连萌3)
  19. 计算机专业硕士毕业论文,硕士毕业论文(计算机专业、自动化专业).doc
  20. 添加布林带择时策略有多便捷!股票量化分析工具QTYX-V2.4.7

热门文章

  1. 轻松几步完成cisco交换机配置全是干货!
  2. Raki的读paper小记:Star-Transformer
  3. python同名函数相互冲突_两个函数同名python
  4. html空间图片,html+js实现图片预览
  5. ssh服务器安装测试
  6. npm i 报错 'match' of undefined 错误以及删除node_modules失败
  7. nginx-反向代理笔记
  8. SQL Fundamentals || Single-Row Functions || 数字函数number functions
  9. JVM监控及诊断工具命令行篇之jinfo
  10. redis数据类型之String