2009 Putnam Competition B3
2009 Putnam Competition B3
题目大意:
\(T(t\le10^5)\)次询问,每次询问\(n(n\le2\times10^6)\)以内的正整数构成的集合,有多少满足若\(a\in S,b\in S\)且\(2|(a+b)\),则\(\frac{a+b}2\in S\)。
思路:
OEIS A124197
显然,取值区间\([1,n]\)和\([2,n+1]\)答案是相等的。
用\(f(n)\)表示\(n\)以内的合法集合的答案,考虑二阶差分\((f(n+1)-f(n))-(f(n)-f(n-1))\)的含义,就是强制包含\(1\)和\(n+1\)时合法集合数。
线性筛出每个数奇约数的个数\(g_i\),作二维前缀和\(h_i\),然后答案就是\(h_{n-1}+n+1\)。
源代码:
#include<cstdio>
#include<cctype>
#include<algorithm>
inline int getint() {
register char ch;
while(!isdigit(ch=getchar()));
register int x=ch^'0';
while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
return x;
}
typedef long long int64;
const int N=2e6+1;
bool vis[N];
int64 f[N];
int p[N],q[N];
inline void sieve() {
std::fill(&f[1],&f[N],1);
for(register int i=2;i<N;i++) {
if(!vis[i]) {
q[i]=1;
f[i]=2;
p[++p[0]]=i;
}
for(register int j=1;j<=p[0]&&p[j]*i<N;j++) {
vis[p[j]*i]=true;
if(i%p[j]==0) {
q[p[j]*i]=q[i]+1;
f[p[j]*i]=f[i];
f[p[j]*i]/=q[i]+1;
f[p[j]*i]*=q[i]+2;
break;
} else {
q[p[j]*i]=1;
f[p[j]*i]=f[i]*2;
}
}
}
}
int main() {
sieve();
for(register int i=1;i<N;i++) {
if(i%2==0) f[i]=f[i>>1];
}
for(register int i=1;i<N;i++) f[i]+=f[i-1];
for(register int i=1;i<N;i++) f[i]+=f[i-1];
for(register int T=getint();T;T--) {
const int n=getint();
printf("%lld\n",f[n-1]+n+1);
}
return 0;
}
2009 Putnam Competition B3的更多相关文章
- info AI drive
Who we look for Here at comma, we don't care about the source of your education or your traditional ...
- BZOJ 2039: [2009国家集训队]employ人员雇佣
2039: [2009国家集训队]employ人员雇佣 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 1369 Solved: 667[Submit ...
- Step by Step 安装 BizTalk Server 2009
原创地址:http://www.cnblogs.com/jfzhu/p/4020444.html 转载请注明出处 演示环境为Windows Server 2008 Enterprise, SQL Se ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7687 Solved: 3516[Subm ...
- BZOJ 2463: [中山市选2009]谁能赢呢?
2463: [中山市选2009]谁能赢呢? Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1887 Solved: 1390[Submit][Sta ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7676 Solved: 3509[Subm ...
- SACS +Petrel 2009地震
Bentley SACS V8i SS4 05.07.01.01 海洋平台分析Schlumberger Petrel 2009地震解释油藏模拟课程 Trimble Tekla Structural D ...
- 彻底卸载 RAD Studio 2009/2010/XE
彻底卸载 RAD Studio 2009/2010/XE: 控制面板-->添加/删除程序中执行了卸载操作以后, 还需要做以下工作: 1. 删除以下目录(注意有些目录是隐藏的): %ALLUSER ...
- DataSnap 2009 系列之三 (生命周期篇)
DataSnap 2009 系列之三 (生命周期篇) DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置 当DSServer启动时从DSServerClass组 ...
随机推荐
- 论文阅读笔记十四:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation(CVPR2015)
论文链接:https://arxiv.org/abs/1506.04924 摘要 该文提出了基于混合标签的半监督分割网络.与当前基于区域分类的单任务的分割方法不同,Decoupled 网络将分割与分类 ...
- gitlab的完全卸载
一:先停止gitlab gitlab-ctl stop 二:卸载gitlab部分(之前我是rpm安装的,这里rpm卸载) rpm -e gitlab-ce 三:发现系统进程还有一个gitlab的进 ...
- python面向对象三大特性之封装
一. 概述 定义:隐藏对象的属性和实现细节,仅对外提供公共访问方式 封装的原则:把不需要对外提供的内容都隐藏起来,提供公共的方法访问这些隐藏属性 二.封装手段 使用双下划线将属性和方法隐藏起来 cla ...
- Moco使用简单指导
下载地址 需要java运行环境支持.下载jar包:moco-runner-<version>-standalone.jar 配置文件 下面是参考: 配置 Moco的配置文件格式使用的是js ...
- python 作用域
什么是命名空间 == 对一个名字起作用的范围 # def test():# print("----test----") # import test# test.test() # f ...
- One point compactification
Theorem (One point compactification) Any locally compact space \(X\) can be embedded in another comp ...
- Android ADB命令教程二——ADB命令详解
Android ADB命令教程二——ADB命令详解 转载▼ 原文链接:http://www.tbk.ren/article/249.html 我们使用 adb -h 来看看,adb命令里面 ...
- js防止安卓手机软键盘弹出挤压页面导致变形的方法
5防止安卓手机软键盘弹出挤压页面导致变形的方法 输入框定位在底部,手机端打开,输入框聚焦后软键盘打开为什么会瞬间自动关闭呢? 先看看问题: 1.原来是这样的: 2.在苹果手机里面是正常的: 3.到了安 ...
- LoadRunner之IP欺骗
一.启动IP欺骗,弹出提示窗口: 二.将本机改为静态IP: 1.查看当前的IP相关信息: 2.更改IP: 三.正式设置模拟IP号段: 1.重复步骤一,会弹出如下弹窗,选择第二项并下一步: ...
- Badboy录制Jmter脚本
提纲 1.特性和用途 2.下载和安装 3.界面介绍 4.录制脚本(注意:badboy默认是打开就开始录制,需要在step双击后进行取消默认设置) 5.添加断言(参数化设置,注意:badboy默认只运行 ...