7-12 西格玛与罗比特 (30 分)

给定一个整数n,计算

​​ ∑i⋅lowbit(i),其中lowbit(i)为i的最低位1所在的位置(注意和常规的lowbit定义不同),例如lowbit(4)=3,因为4=(100)₂

输入格式:
第一行一个数 T 表示 T 组测试数据。

接下来有 T 行,每行一个 n 。

(1≤T≤100000,1≤n≤10¹⁸)

输出格式:
输出 T 行,每行一个数,第 i 行的数表示第 i 组测试的答案,由于答案可能很大,请将答案对 10⁹+7取模。

输入样例:
5
1
2
3
4
5
输出样例:
1
5
8
20
25

做的时候可以先把50以内的数全部打出来,找规律。
我就直接说规律是什么了:
lowbit(i)=1的数:1,3,5,7,9…
lowbit(i)=2的数:2,6,10,14… 即 2+4k
lowbit(i)=3的数:4,12,20… 即 4+8k
lowbit(i)=4的数:8+16k

依次类推
后面分别是 16+32k,32+64k…
所以对于lowbit=i的数,我们求一个等差数列求和再乘以i就得到答案了。
等差数列求和的公式就不用我写了吧。。。

千万要注意取模!!!!一是有除2,必须先除,后面再取模,因为除法不能直接取模,而是注意每一步都要取模,避免爆long long

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
#define ll long long
const long long mod=1e9+7;
ll f[100];
ll get(ll x)
{ll i=0;while(f[i]<=x) i++;  return i-1;
}
int main()
{ll n,T;f[0]=1;for(ll i=1;i<=60;i++) f[i]=(ll)2*f[i-1];scanf("%lld",&T);for(ll kk=1;kk<=T;kk++){scanf("%lld",&n);ll maxt=get(n);//二进制下的最高位ll ans=(n+1)/(ll)2%mod;ans=ans*ans%mod;//1+3+5+..奇数for(ll i=1;i<=maxt;i++){ll tmp=f[i];ll t=(n-tmp)/(tmp*2);tmp=tmp%mod; t=t%mod; ans+=tmp%mod*(t+1)%mod*(1+t)%mod*(i+1)%mod;ans=ans%mod;if(ans==0) ans=mod;} printf("%lld\n",ans);}return 0;}

pta 西格玛与罗比特相关推荐

  1. 《密室逃生》将映 六人密室游戏成搏命赌局

    中新网客户端北京1月13日电 12日,电影<密室逃生>在全国上百个城市举办提前观影活动,上万名观众率先观看了这部电影.该片由美国哥伦比亚影片公司出品,由<速度与激情>系列金牌制 ...

  2. Python正则表达式及re模块使用

    1. 正则表达式 元字符:具有固定含义的特殊符号: 常用元字符: . 匹配除了换行以外的任意字符 \w 匹配字母或者数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \n 匹配一个换行符 \t 匹 ...

  3. XPath实战之爬取豆瓣电影

    进入豆瓣电影后点击全部正在热映: 然后首先需要将数据请求下来. 一个爬虫基本上都是由两个部分组成的:1.将目标网站上的页面抓取下来,2.将抓取下来的数据根据一定的规则进行提取. 从网页源代码可以看到所 ...

  4. 巴比特学院罗崇杰:区块链创业加速,产业生态步入共融时刻

    文/罗崇杰 巴比特学院负责人 昨天(7月14日),由巴比特主办的产业区块链创新年中论坛正式开幕. "产业区块链已经到了生态共融的关键时刻." 此次论坛的总策划.巴比特学院负责人罗崇 ...

  5. 201771010112罗松《面向对象程序设计(java)》第三周学习总结

    实验三  Java基本程序设计 201771010112  罗松 1.实验目的与要求 (1)进一步掌握Eclipse集成开发环境下java程序开发基本步骤: (2)熟悉PTA平台线上测试环境: (3) ...

  6. 中国大学MOOC浙江大学“程序设计入门——C语言”的PTA练习题目集答案

    第I阶段,包含变量.语句.循环部分的题目,不包括数组.结构.基础算法的题目.已通过PTA测试点,所用知识均为变量.语句.循环.适合初学者观看,博主技术有限,同样以初学者视角来写,有不足之处还请多多指出 ...

  7. 国内首部《数字货币词典》在新莫干山会议上启动,巴比特智库担任主编单位...

    作者:海伦 在9月20日第十届新莫干山会议(2019秋季论坛)的数字金融分论坛上,举行了<数字货币词典>的启动仪式.<词典>执行主编贺宝辉就项目情况做了相关介绍. 全球数字货币 ...

  8. 专访Coinup创始人罗一哲:集中全社会资源猛攻,要么是垄断能量,要么是泡沫催发

    罗一哲 CoinUp创始人,CoinUp研究院院长,原阿里人,原上市公司GMC资深Consulant,连续创业者.吸纳微软科学家打造人工智能购物助手.原户外社交产品实现百万用户,估值2亿,多年加密货币 ...

  9. 100年量子计算风云史,“量子比特”何时统治世界?| 技术特稿

    量子卫星"墨子号"在酒泉卫星发射中心成功升空. (拍摄:Reuters/China Daily) 钛媒体注:读完下面这篇文章(全文15000字)要花费的时间可能要比我们预计的 10 ...

最新文章

  1. android ble从设备,从Android设备发送命令到蓝牙
  2. 让 Windows 7 定时待机
  3. Redis运维和开发学习笔记(5) 主从复制和sentinel哨兵模式
  4. mysql 错误问题_Mysql常见的几个错误问题及解决方法:
  5. CSS3表达式calc( )
  6. 【Oracle】ORA-27369: job of type EXECUTABLE failed with exit code: Key has expired
  7. 如何才是真正的大牛?遇见同行博士大牛,感慨自己太渣
  8. CC2530单片机精确延时的时间分析
  9. 【Quartz】 JobListener、Triggerlistener、SchedulerListener介绍与使用
  10. Unity协程(Coroutine)之yield和迭代原理分析
  11. 小武匠师PPT 基础篇(一)-武文杰-专题视频课程
  12. ESP8266便携式物联网时钟(硬件篇) 代号:喵
  13. html一般用那种方式定位,使用三种方式定位html中的元素
  14. 轻薄旗舰投影两大阵营大眼橙X7D Pro和极米Z7X,谁才是真正的高性价比之选?
  15. kotlin Anko的实际用法
  16. 什么是人工智能_人工智能的利弊_人工智能技术
  17. Linux ASPM 问题一个适合的解决方案
  18. 解决pcntl_fork() has been disabled for security reasons in file /www/wwwroot/192.168.21.2/vendor/wor
  19. 15、TSA数据上传(https://www.ncbi.nlm.nih.gov/genbank/tsaguide/#SP)
  20. zData上新丨2000/5000系列数据库一体机带来三重提升

热门文章

  1. 一篇搞懂ddt数据驱动测试
  2. rk3188调试记录
  3. 工作记录|在PyTorch下读取GloVe向量
  4. 2460: [BeiJing2011]元素 有关线性基的理解
  5. 挽歌.怀念光辉岁月(转载)
  6. hiho#1712 : 字符串排序
  7. c 访问阿里云mysql_本地怎样访问阿里云mysql数据库服务器
  8. Deep3DBox论文精读
  9. Ws2_32.lib是做什么用的
  10. 网站怎么防止ddos攻击,防御ddos攻击的11种方法