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的更多相关文章

  1. info AI drive

    Who we look for Here at comma, we don't care about the source of your education or your traditional ...

  2. BZOJ 2039: [2009国家集训队]employ人员雇佣

    2039: [2009国家集训队]employ人员雇佣 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1369  Solved: 667[Submit ...

  3. Step by Step 安装 BizTalk Server 2009

    原创地址:http://www.cnblogs.com/jfzhu/p/4020444.html 转载请注明出处 演示环境为Windows Server 2008 Enterprise, SQL Se ...

  4. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 7687  Solved: 3516[Subm ...

  5. BZOJ 2463: [中山市选2009]谁能赢呢?

    2463: [中山市选2009]谁能赢呢? Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1887  Solved: 1390[Submit][Sta ...

  6. BZOJ 2038: [2009国家集训队]小Z的袜子(hose)

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 7676  Solved: 3509[Subm ...

  7. SACS +Petrel 2009地震

    Bentley SACS V8i SS4 05.07.01.01 海洋平台分析Schlumberger Petrel 2009地震解释油藏模拟课程 Trimble Tekla Structural D ...

  8. 彻底卸载 RAD Studio 2009/2010/XE

    彻底卸载 RAD Studio 2009/2010/XE: 控制面板-->添加/删除程序中执行了卸载操作以后, 还需要做以下工作: 1. 删除以下目录(注意有些目录是隐藏的): %ALLUSER ...

  9. DataSnap 2009 系列之三 (生命周期篇)

    DataSnap 2009 系列之三 (生命周期篇) DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置 当DSServer启动时从DSServerClass组 ...

随机推荐

  1. 论文阅读笔记十四:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation(CVPR2015)

    论文链接:https://arxiv.org/abs/1506.04924 摘要 该文提出了基于混合标签的半监督分割网络.与当前基于区域分类的单任务的分割方法不同,Decoupled 网络将分割与分类 ...

  2. gitlab的完全卸载

    一:先停止gitlab gitlab-ctl stop 二:卸载gitlab部分(之前我是rpm安装的,这里rpm卸载) rpm  -e  gitlab-ce 三:发现系统进程还有一个gitlab的进 ...

  3. python面向对象三大特性之封装

    一. 概述 定义:隐藏对象的属性和实现细节,仅对外提供公共访问方式 封装的原则:把不需要对外提供的内容都隐藏起来,提供公共的方法访问这些隐藏属性 二.封装手段 使用双下划线将属性和方法隐藏起来 cla ...

  4. Moco使用简单指导

    下载地址 需要java运行环境支持.下载jar包:moco-runner-<version>-standalone.jar 配置文件 下面是参考: 配置 Moco的配置文件格式使用的是js ...

  5. python 作用域

    什么是命名空间 == 对一个名字起作用的范围 # def test():# print("----test----") # import test# test.test() # f ...

  6. One point compactification

    Theorem (One point compactification) Any locally compact space \(X\) can be embedded in another comp ...

  7. Android ADB命令教程二——ADB命令详解

    Android ADB命令教程二——ADB命令详解 转载▼ 原文链接:http://www.tbk.ren/article/249.html       我们使用 adb -h 来看看,adb命令里面 ...

  8. js防止安卓手机软键盘弹出挤压页面导致变形的方法

    5防止安卓手机软键盘弹出挤压页面导致变形的方法 输入框定位在底部,手机端打开,输入框聚焦后软键盘打开为什么会瞬间自动关闭呢? 先看看问题: 1.原来是这样的: 2.在苹果手机里面是正常的: 3.到了安 ...

  9. LoadRunner之IP欺骗

     一.启动IP欺骗,弹出提示窗口:      二.将本机改为静态IP: 1.查看当前的IP相关信息: 2.更改IP:  三.正式设置模拟IP号段: 1.重复步骤一,会弹出如下弹窗,选择第二项并下一步: ...

  10. Badboy录制Jmter脚本

    提纲 1.特性和用途 2.下载和安装 3.界面介绍 4.录制脚本(注意:badboy默认是打开就开始录制,需要在step双击后进行取消默认设置) 5.添加断言(参数化设置,注意:badboy默认只运行 ...