Claris 当然是要用来%的

但是,,其他dalao,,比如JL的红太阳commonc。题解能不能稍微加几句话,蒟蒻看不懂啊。

在这里解释一下,Claris的题解。(因为我弱,想了半天才明白,所以觉得有必要写一下

首先,表是怎么打的?

1e18,暴力吗?

对于小范围打表

设f(x)=12+22+....+x2=x*(x+1)*(2x+1)/6

找到一个t使得 f(t-1)+1<=n<=f(t)

设F(n)=a12+a22+...=n 就是n可以由a1,a2等不同整数的平方凑出,且最大的数最小。

则 F(n)=f(t)-F(f(t)-n)

所以只要f(t)-n能凑出来,n也一定能凑出来。

同理对于任意正整数k 当0<=f(k)-n<n 能被凑出来时,n就可以被凑出来。

设当前为止最大不能被凑出来的数是maxn

只要能找到k使得 maxn<f(k)-n<n即可

如何证明当n较大时不存在凑不出的情况呢?

当n较大时 n<f(t)<f(t+1)<2*n

所以只要(t+1)的平方大于maxn就可以说明之后所有的n都能被凑出,且最大的数最小为t或t+1

通过打表发现,maxn=128,当t>=11的时候n一定会被凑出。

f(11)=506 这就是506的来历。

所以凑出n就可以二分找出t然后判断f(t)-n能否被凑出。

对于第二问。

可以发现,对于一串数,f(t)是相同的,这一串数中较小的128个中一定会有31个数x使得f(t)-x不能被凑出,而这些数就是超重的数。

bzoj3748 Kwadraty的更多相关文章

  1. BZOJ3748 : [POI2015]Kwadraty

    打表可得结论: 1.只有2,3,6,7,8,11,12,15,18,19,...,108,112,128这31个数的k值是无穷大 2.当n足够大的时候,即当n>506时,设$f(x)=1^2+2 ...

  2. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

随机推荐

  1. 不相交集合ADT -数据结构(C语言实现)

    读数据结构与算法分析 不相交集合 等价关系 满足三个性质 - 自反性 - 对称性 - 传递性 基本数据结构 基本思路 使用一个数组,下标表示该集合,内容表示指向的父亲 实现 类型声明 typedef ...

  2. Linux下的计算器(bc、expr、dc、echo、awk)知多少?

    linux 其他知识目录 原文链接:http://blog.chinaunix.net/uid-24673811-id-1760837.html linux下的三个命令可以用来作计算,下面一一讲解用法 ...

  3. javascript提高篇

    本章简介 本章内容比较少,有三个分享的知识.你可能都看过了,因为网上也有很多提问和解答,如果没看过或者没搞懂,你可以再看看这篇文章. 1. 数组去重方法的演变    --  走向代码缩短化 2. [] ...

  4. Scrum立会报告+燃尽图(十月十五日总第六次):视频上传及选题介绍工作

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2196 Scrum立会master:田良 一.小组介绍 组长:付佳 组员: ...

  5. DCOM初步窥探二

    1.COM进程透明性表现在“组件对象和客户程序可以拥有各自的空间,也可以共享同一个进程空间”. COM负责把客户的调用正确传到组件对象中,并保证参数传递的正确性. 组件对象和客户代码不必考虑调用传递的 ...

  6. 从一个app开始学iOS

    在大学上了4年学,老师一直给灌输的思想就是,从细微处着手最后看到整体.举个网站的例子.第一个学期老师安排一门课java语言,期末考试就是考试java语言的知识.第二学期java web,第一次课配置j ...

  7. Python数据挖掘学习路程--起步

    一.首先第一步我去了解了Python开发环境:Python(程序运行基础的解释器)+第三方类库(功能扩展)+编辑器(提高代码编辑效率) 编辑器有:Pycharm.Spyder.jupyter note ...

  8. Java多线程中的wait与notify

    一.wait: 1. wait 是 object 类的方法, sleep 是 thread 类的方法. 2. 当前的正在我这个对象访问的线程 wait. 3. 当前的这个线程, 锁定在当前对象的这个线 ...

  9. http://deepdish.io/2015/04/28/creating-lmdb-in-python/

    http://deepdish.io/2015/04/28/creating-lmdb-in-python/

  10. ansible介绍和安装

    ansible是由 Python 编写的强大的配置管理解决方案,ansible 的特点就在于它的简洁与高效率 ansible与其他的配置管理工具不同点在于:不需要你在想要配置的每个节点上安装自己的组件 ...