题目大意

给出一个整数\(n\),已知\(0\le u,v\le n\),求满足\(a\ xor\ b=u\)且\(a+b=v\)的\(a、b\)对数

样例1输入

3

样例1输出

5

/*

u=0,v=0 (Let a=0,b=0, then 0 xor 0=0, 0+0=0.)

u=0,v=2 (Let a=1,b=1, then 1 xor 1=0, 1+1=2.)

u=1,v=1 (Let a=1,b=0, then 1 xor 0=1, 1+0=1.)

u=2,v=2 (Let a=2,b=0, then 2 xor 0=2, 2+0=2.)

u=3,v=3 (Let a=3,b=0, then 3 xor 0=3, 3+0=3.)

*/

样例2输入

1422

样例2输出

52277

样例3输入

1000000000000000000

样例3输出

787014179

思路

用暴力打表,前20个答案分别为1、2、4、5、8、10、13、14、18、21、26、28、33、36、40、41、46、50、57、60、68。

可以发现规律

\(\begin{cases}
a_{2k}=2a_{k-1}+a_k \\
a_{2k-1}=2a_k+a_{k-1} \\
\end{cases}\)

代码

#include <cstdio>
#include <map>
typedef long long ll;
const int Mod=1e9+7;
const int maxn=1000000+5;
using namespace std;
ll a[30]={1,2,4,5,8,10,13,14,18,21,26,28,33,36,40,41,46,50,57,60,68};
map<ll,ll> mp;//记忆化 ll dfs(ll x) {
if(x<=20)
return a[x];
if(mp[x])
return mp[x];
if(x%2)
return mp[x]=(2*dfs(x/2)%Mod+dfs(x/2-1)%Mod)%Mod;
else
return mp[x]=(2*dfs(x/2-1)%Mod+dfs(x/2)%Mod)%Mod;
} int main() {
ll n;
scanf("%lld",&n);
printf("%lld\n",dfs(n));
return 0;
}

【找规律】ARC 066D Xor Sum AtCoder - 2272的更多相关文章

  1. ARC 066D Xor Sum AtCoder - 2272 (打表找规律)

    Problem Statement You are given a positive integer N. Find the number of the pairs of integers u and ...

  2. GCD XOR UVA 12716 找规律 给定一个n,找多少对(a,b)满足1<=b<=a<=n,gcd(a,b)=a^b;

    /** 题目:GCD XOR UVA 12716 链接:https://vjudge.net/problem/UVA-12716 题意:给定一个n,找多少对(a,b)满足1<=b<=a&l ...

  3. 牛客小白月赛5 G 异或(xor) 【找规律】

    题目链接: https://www.nowcoder.com/acm/contest/135/g 题目描述 从前,Apojacsleam家的水族箱里,养了一群热带鱼. 在这几条热带鱼里,Apojacs ...

  4. AtCoder Beginner Contest 098 D - Xor Sum 2

    D - Xor Sum 2 Time limit : 2sec / Memory limit : 1024MB Score : 500 points Problem Statement There i ...

  5. # E. Mahmoud and Ehab and the xor-MST dp/数学+找规律+xor

    E. Mahmoud and Ehab and the xor-MST dp/数学/找规律 题意 给出一个完全图的阶数n(1e18),点由0---n-1编号,边的权则为编号间的异或,问最小生成树是多少 ...

  6. 找规律/数位DP HDOJ 4722 Good Numbers

    题目传送门 /* 找规律/数位DP:我做的时候差一点做出来了,只是不知道最后的 is_one () http://www.cnblogs.com/crazyapple/p/3315436.html 数 ...

  7. HDU 4825 Xor Sum(经典01字典树+贪心)

    Xor Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others) Total ...

  8. The Cow Lineup_找规律

    Description Farmer John's N cows (1 <= N <= 100,000) are lined up in a row.Each cow is labeled ...

  9. LightOJ 13361336 - Sigma Function (找规律 + 唯一分解定理)

    http://lightoj.com/volume_showproblem.php?problem=1336 Sigma Function Time Limit:2000MS     Memory L ...

随机推荐

  1. Ubuntu 18.04 LTS 配置静态IPv6地址

    学校的IPv4地址限制了校内IP访问,在家连校内机器只能先连接学校的VPN,十分不方便.好在学校没有对IPv6地址做限制,因此我们可以给自己的机器配置一个静态IPv6地址来绕过这个限制. 本机系统使用 ...

  2. Navicat 闲置时间过长会卡死

    前段时间使用navicat连接线上的数据库,Navicat 闲置时间过长会卡死.解决方案:选中数据库,右键点击 编辑连接,修改保持连接间隔为 20秒.非常 so easy ! 1. 选中数据库,右键点 ...

  3. jmeter的用途

    1.可以测接口 2.测试连数据库 3.可以进行压测 4.可部署分布式

  4. oracle数据处理之expdb/impdb

    Oracle 数据泵的使用方法 一.新建逻辑目录 最好以system等管理员创建逻辑目录,Oracle不会自动创建实际的物理目录“D:\oracleData”(务必手动创建此目录),仅仅是进行定义逻辑 ...

  5. xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持

    xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...

  6. TDengine常见问题解答(FAQ)

    1. TDengine2.0之前的版本升级到2.0及以上的版本应该注意什么?☆☆☆ 2.0版本在之前版本的基础上,进行了完全的重构,配置文件和数据文件是不兼容的.在升级之前务必进行如下操作: 删除配置 ...

  7. 运行netcore2.2程序是报错

    运行netcore2.2程序是报错 C:\myself\WuZhui\WuZhui\bin\Release\netcoreapp2.2>dotnet WuZhui.DLLError: An as ...

  8. day52:django:ORM单表/多表操作

    目录 1.ORM 2.ORM单表增删改查 13个必知必会的查询接口 filter基于双下划线的模糊查询 3.ORM多表增删改查 ORM 什么是ORM? ORM(object relational ma ...

  9. 关于MongoDB

    启动: 启动MongoDB的方式有两种: 1.直接启动,配置参数写在命令中: mongod --dbpath=data/db --logpath=log/log.txt --fork 2.以配置文件启 ...

  10. Object类:又回到最初的起点

    Object类大概是每个JAVA程序员认识的第一个类,因为它是所有其他类的祖先类.在JAVA单根继承的体系下,这个类中的每个方法都显得尤为重要,因为每个类都能够调用或者重写这些方法.当你JAVA学到一 ...