声明
笔者最近意外的发现 笔者的个人网站 http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站,因此,笔者添加此条声明。
郑重声明:这篇记录《【百度之星2014~初赛(第二轮)解题报告】JZP Set》转载自 http://tiankonguse.com/ 的这条记录:http://tiankonguse.com/record/record.php?id=668
前言
最近要毕业了,有半年没做比赛了.
这次参加百度之星第二轮娱乐一下.
现在写一下 JZP Set 这道题的的解题报告.
正文
题意
题意是:给你n个数(1到n),给你一个规则,问用这个规则可以得到多少个合法的集合.
具体规则是:一个合法集合里任意挑两个数,如果这两个数之和是偶数,这个偶数除以2得到的数也要在这个合法集合里.
比如: 3 和9 在集合里,3+9是偶数,所以 (3+9)/2 = 6 也要在这个集合里.然后 {3,6,9}就是一个合法的集合.
起初我理解错题意了,以为是任意的两个数字之和除以2.比如 (3 + 6)/2 = 4, 我以为4也要在集合里.
于是很快得到一个 (n+1)*n/2 的公式.
后来学弟告诉我正确的题意.
分析
这个题的样例有10^5个,每个样例最大是10^7.
错误题意
首先来看看我理解错误题意时,是怎么做的.
假设 F(n) 是 n 的答案的话, 则 F(n + 1) = F(n) + f(n+1).
f(n+1)里面肯定有 n+1, 我假设f(n+1) 这些集合的任一个集合 S 里的最小值是 a, 则 (a+n+1)/2 肯定在 S 里面,然后这样递归下去发现 a到n+1的所有数字都必须在 S 里面.
于是 f(n+1) 就是 n+ 1 了.
于是最终方程就是 F(n+1) = F(n) + n+ 1.
只可惜这是错误的题意的做法.
正确题意
学弟告诉我正确的题意,还是可以很快写出方程来
F(n+1) = F(n) + f(n + 1).
其中f(n+1) 是含有 n+ 1的合法的集合.
奇数偶数合法<
首先对于我上面找到的那些肯定是合法集合的一部分,只是我遗漏了一些合法集合.
遗漏的肯定是非连续的了.
然后很快可以想到 一个奇数和一个偶数构成的集合都是合法集合.
于是 f(n + 1) 就又加上含有一奇一偶的合法集合的数量了,只是提交后WA了.
等差为奇数的组合
然后学弟随手写了一个集合 {3, 6, 9 } 发现也是合法集合.
然后我无意见把12添加进去后发现还是合法集合.
于是我们得出结论:等差为奇数的数列都是合法集合,对于连续的那个只不过是等差为1罢了.
于是我们假设 i/x 的个数为 num(i/x),
于是有
则最终答案是
C( num (n / 1) , 2) + C( num (n / 3) , 2) + C( num (n / 5) , 2) + ...
也就是等差位 x 的数列里,我们随便挑一段都是合法集合.
只是到这一步我们发现这样做还是超时.
递推的等差数列
由于F(n+1) 与 F(n) 有很大的关系,所以我们尝试找找递推行不行.
还是这个公式
F(n) = F(n-1) + f(n).
f(n) 代表含有 n 的合法集合.
然后这些集合需要全是等差数列.
于是写了这么一个公式
f(n-1) =
n/1 + n/3 + n/5 + ....
然后就没什么想法了.
今天看了这个解题报告才知道可以这样做.
发现我们如果写出 f(n-2) 那一项的公式
(n-1)/1 + (n-1)/3 + (n-1)/5 + ...
这两个公式大部分项是相等的,只有个别的几个不相等.
自己举了几个例子发现 n 整除 下面的项时,这个除式会多一个.
比如 n = 12 则 12/3 = 4, 11/3 = 3.
这样这个f(n)函数就可以转化为
f( n ) = f( n - 1) + Count( n -1 ).
其中 Count( n ) 代表 n 的奇数约数个数.
然后小舟学长的模板上刚好有求关于小于 n 的所有数的约数的个数.其中有 O( n*log(n) ) 的模板,也有 O( n ) 的模板,
由于 n*log(n) 的模板比较简单,也可以过这道题,于是我就是用 n*log(n) 的模板了.
代码
/************************************************************************* > File Name: 4.2.cpp > Author: tiankonguse > Mail: i@tiankonguse.com > Created Time: Mon 26 May 2014 01:06:18 PM CST ***********************************************************************/ #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<string> #include<queue> #include<map> #include<cmath> #include<stack> #include<algorithm> #include<functional> #include<stdarg.h> using namespace std; #ifdef __int64 typedef __int64 LL; #else typedef long long LL; #endif const int N = 10000010; LL nod[N]; LL count[N]; LL ans[N]; void __sieve_nod() { memset(nod, 0,sizeof(nod)); for (int i = 1; i < N; i+=2) { for (int j = i; j < N; j += i) { ++nod[j]; } } } void init(){ ans[0] = 1; ans[1] = 2; LL count = 1; for(int i=2;i<N;i++){ count += nod[i-1]; ans[i] = ans[i-1] + count; } } int main() { __sieve_nod(); init(); int t,n; scanf("%d",&t); for(int i=1; i<=t; i++) { scanf("%d",&n); printf("Case #%d:\n%I64d\n",i,ans[n]); } return 0; }
相关推荐
"独立经营"是创业成功的关键因素之一。创业者必须能够独立思考和作出决策,不受外界干扰。同时,他们还要具备勇于冒险的胆识,对挑战不畏惧,对困难不退缩。这种独立和勇气是创业者在市场经济中立于不败之地的重要...
《深入解析R语言jzp3软件包:统计预测与统计推断的核心工具》 在数据分析领域,R语言凭借其强大的统计计算能力和丰富的图形绘制功能,成为众多数据科学家和统计学者的首选工具。其中,名为“jzp3”的软件包更是因其...
这份由巴克莱资本发布的行业分析报告主要聚焦于2019年第三季度美国专业制药业的表现,特别是现金流(Cash Flow,简称CF)趋势。报告预计大型专业制药公司(如AGN, BHC, JAZZ)将实现4%/-3%的收入和调整后息税折旧摊...
3) Pacira BioSciences (PCRX):该公司在8月发布的报告中指出,仍有增长空间,这可能会体现在Q3业绩上。 【关键指标与更新】 1) Amneal Pharmaceuticals (AMRX):创始人Chirag和Chintu Patel的战略更新值得关注,...
主题演示:http://demo.jianzhanpress.com/jzp-blogb2 主题下载 :https://www.jianzhanpress.com/?p=3229 下载说明:此版本V1.0为免费版本,下载文件包中包括主题文件、演示数据.sql文件和uploads中的文件。 ...
说明: 这个是基于asp+access的企业网站源码,数据库已设有有防下载,网站更安全 ...调试运行环境:要安装IIS服务器(IIS的安装和配置,安装好后,在地址栏输入:http://www.jzp.cc 即可访问网站)。
首先,文章介绍了在单位圆盘U内解析的函数类S(p),这类函数以p为叶数,是zp和级数∑ap+jzp+j的全体。接着,定义了T(p)函数类,它包含了S(p)中所有形如f(z)=zp-∑ap+jzp+j的函数,其中系数ap+j非负。同时,引入了系数...
本文档旨在提供一套全面的解决方案,帮助第三方开发者有效解决在使用海康威视iVMS-8700平台过程中遇到的常见问题。通过对一系列典型问题的深入分析与解决策略的介绍,希望能提高开发效率并减少不必要的困扰。如果...
"Lemon评测环境"是一个专为Linux平台设计的软件评估工具,由开发者jzp精心打造。在深入探讨这个工具之前,我们需要了解"lemon"一词在这个上下文中的含义。"Lemon"通常不是一个常见的IT术语,但在这种情况下,它可能...
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvl5Cv42J56KiMqXS2jZp v7685n7MD2p/dfpa/WMGnd7YQ6eB0/gu93yiY3kfEc0h1MJX9n+pO0fB/Zz/MrBj ... -----END PUBLIC KEY----- ``` **Step 2**: 接下来生成认证注册请求。...
如果你在同一数据库中安装多个WordPress站点,记得更改表前缀,例如“wp_jzp_”,以避免冲突。 3. 提交数据库信息后,点击“提交”,系统会验证并连接到数据库。 4. 如果数据库连接成功,接下来的页面会让你填写网站...
* 需要把 JZD 和 JZP 两个图层置于最前,并在 CAD 设置中把实体填充打开。 * 界址点圆圈需要做消隐处理。 界址点成果表 界址点成果表是记录宗地界址点的信息的电子表格。界址点成果表需要按照三级目录存放,即先...
附件是LTE-FDD物理层射频指标相关的3GPP标准中文版,你还在为看英文头疼吗?数字蜂窝移动通信网络终端设备测试方法,第二部分不限射频性能测试,工业和信息化部发布
**3D-HEVC的VS配置详解** 3D-HEVC(三维高效率视频编码)是一种先进的视频编码标准,特别设计用于高效地处理3D视频内容。它在传统的HEVC(高效率视频编码)基础上增加了对立体视频的支持,显著提高了编码效率和视觉...
PCA(主成分分析,Principal Component Analysis)是一种统计学方法,常用于数据分析和降维,它通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量。在图像处理领域,PCA图像融合...
HEVC 配置文件 大家一起交流,同时求最新版的测试模型HM