[题解]第十一届北航程序设计竞赛预赛——H.高中数学题
题目描述

解题思路
可以求得通项公式:an = 2n + 1,所以问题就变成等差数列求异或和,这个具体为什么对我还不能很好地解释清楚,先挖坑吧。
附:c++代码
1 #include <iostream>
2 #include <cstdio>
3
4 using namespace std;
5
6 typedef unsigned long long llt;
7
8 llt Cal(llt x, llt d, llt P, llt Num)
9 {
10 llt ret = 0;
11 ret += (x / P) * Num;
12 x %= P;
13 ret += (d / P) * Num * (Num - 1) / 2;
14 d %= P;
15 if (d * Num + x < P)
16 return ret;
17 else
18 return ret + Cal((d * Num + x) % P, P, d, (d * Num + x) / P);
19 }
20
21 llt My_Xor(llt l, llt r, llt d)
22 {
23 llt Num = r - l +1;
24 llt x = l * 2 + 1;
25 llt ans = 0, Sum, P = 1;
26 for (llt i = 1; i <= 36; i++)
27 {
28 Sum = Cal(x, d, P, Num);
29 if (Sum & 1)
30 ans += P;
31 P <<= 1;
32 }
33 return ans;
34 }
35
36 int main()
37 {
38 //freopen("mi.in", "r", stdin);
39 //freopen("H.out", "w", stdout);
40 int n, i;
41 llt l, r, ans;
42 scanf("%d", &n);
43 for(i = 1; i <= n; i++)
44 {
45 //scanf("%I64d%I64d", &l, &r);
46 cin >> l >> r;
47 ans = My_Xor(l, r, 2);
48 //printf("%I64d\n", ans);
49 cout << ans <<endl;
50 }
51 return 0;
52 }
另一种思路
这是官方给出的题解。

[题解]第十一届北航程序设计竞赛预赛——H.高中数学题的更多相关文章
- [题解]第十一届北航程序设计竞赛预赛——L.偶回文串
题目描述 长度为偶数的回文串被称为偶回文串.如果一个字符串重新排序之后能够成为一个偶回文串,则称为可回文的. 给一个字符串,求可回文的子串个数.字符串只含小写字母,单个字符串长度不超过10^5,所有数 ...
- [题解]第十一届北航程序设计竞赛预赛——I.神奇宝贝大师
题目描述 一张n*m的地图,每个格子里面有一定数量的神奇宝贝,求一个最优位置,使得所有神奇宝贝到该位置的曼哈顿距离最小. 一共有T组数据,每组数据包含两行,第一行是n和m(1<=n,m<= ...
- [题解]第十一届北航程序设计竞赛预赛——F.序列
题目描述 (1,--,n)的一个排列S,定义其对应的权值F[S]为:将S划分为若干段连续子序列,每个子序列都是上升序列,F[S]的值等于能划分出的最小段数. 求n的全排列的F[S]的和,答案mod(1 ...
- [题解]第十一届北航程序设计竞赛预赛——D.最大公约数
题目描述 给一个长度为n(1<=n<=100000)的正整数列,分成尽量多的非空段,使得每一段的最大公约数相等.一个数的最大公约数是它本身. 解题思路 要求每一段子列的gcd相等,不妨设为 ...
- [题解]第十一届北航程序设计竞赛预赛——A.模式
题目描述 输入一个学号,判断是计算机系or软件学院or其他院系. 解题思路 水题,直接判断or除以10000都可以.不废话,直接上代码. 1 #include <iostream> 2 # ...
- B P5 第十三届北航程序设计竞赛预赛
https://buaacoding.cn/contest-ng/index.html#/188/problems 其实这题挺简单的. 注意到答案的大小最多是22 二分,check长度是mid的不同子 ...
- 湖南省第十一届大学生程序设计竞赛:Internet of Lights and Switches(HASH+二分+异或前缀和)
Internet of Lights and Switches Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 3 Solved: 3[Submit][ ...
- 2018湘潭大学程序设计竞赛【H】
题目链接:https://www.nowcoder.com/acm/contest/105/H 题意:两个操作,一个在[l,r]区间放颜色为c的球,一个统计在[l,r]里有多少不同颜色的球. 题解:哎 ...
- 重庆邮电大学第十一届ACM程序设计竞赛-网络选拔赛 C题
1008: 偷袭 时间限制: 1.000 sec 内存限制: 128 MB 武林要以和为贵,张麻子不讲武德来偷袭马老师的亲传弟子. 马老师有n个亲传弟子,每个弟子有一个武力值a[i]. n个弟子中只有 ...
随机推荐
- XXE题型记录
XXE题型记录 [CSAWQual 2019]Web_Unagi 题解 打开题目,点开upload中的例子发现是上传xml文件 根据about中的提示Flag is located at /flag, ...
- manjora20不小心卸载,重新安装terminal,软件商店/软件中心linux类似
问题 重新安装老版本gnome-shell 如果突然死机可能卸载完了terminal和软件商店,但是没有安装新的. 此时没有terminal也没有软件商店 无法安装软件 解决方案 terminal c ...
- Express框架的简单使用
Express框架的简单使用 这个框架是基于Node.js的框架平台 需要先安装node.js 安装完node.js后使用指令操作 npm init --yes 初始化 npm i express 安 ...
- 2021年SpringBoot面试题200道及答案
https://blog.csdn.net/yanpenglei/article/details/120822218 https://blog.csdn.net/ldb987/article/deta ...
- JDK并发工具类
在JDK的并发包里提供了几个非常有用的并发工具类.CountDownLatch.CyclicBarrier和Semaphore工具类提供了一种并发流程控制的手段,Exchanger工具类则提供了在线程 ...
- 539. Minimum Time Difference
Given a list of 24-hour clock time points in "Hour:Minutes" format, find the minimum minut ...
- Redis数据库各种数据结构的内部实现。
Redis数据库是一种非关系型数据库,基于key/value对,运行时加载到内存,对value支持虚拟内存, 支持多种数据结构,支持持久化,以性能著称,可用于存储,缓存,消息队列等场景.主要介绍下Re ...
- 前端禁止使用F12、禁止右键
打开控制台直接跳转页面 //debug调试时跳转页面 var element = new Image(); Object.defineProperty(element,'id',{get:functi ...
- python代码加注释--6
备注:#用来注释代码,#后面的内容会被python解释器忽略
- 微信小程序笔记整理--入门篇。
7-2 微信小程序入门篇 准备篇 1.登录网址,https://mp.weixin.qq.com 注册一个微信小程序. 2.获取微信小程序appid,登录自己的小程序后台,在开发者设置中获得appid ...