题目链接:Sum of Log


因为 i & j == 0 ,所以考虑 i 或者 j 的最高位即可。
然后我们枚举每个当前位为最高位,就需要知道当前位的高位全为 0 ,然后后面合法的方案数。
最后统计即可。


AC代码:

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7,N=40;
int dp[N][2][2],X,Y,res,a[N],b[N],pos1,pos2;
int dfs(int pos,int l1,int l2,int ok){if(!pos) return 1;if(dp[pos][l1][l2]!=-1) return dp[pos][l1][l2];int up1=l1?a[pos]:1,up2=l2?b[pos]:1,ans=0,cnt=0;for(int i=0;i<=up1;i++){for(int j=0;j<=up2;j++){if(i&&j) continue;int tmp=dfs(pos-1,l1&&i==up1,l2&&j==up2,ok||i||j);ans=(ans+tmp)%mod;if(!ok&&(i+j)) cnt=(cnt+tmp)%mod;}}res=(res+cnt*pos)%mod;return dp[pos][l1][l2]=ans;
}
void solve(){scanf("%lld %lld",&X,&Y);    pos1=pos2=res=0;memset(a,0,sizeof a),memset(b,0,sizeof b);while(X) a[++pos1]=X%2,X/=2;while(Y) b[++pos2]=Y%2,Y/=2;memset(dp,-1,sizeof dp);dfs(max(pos1,pos2),1,1,0);printf("%lld\n",res);
}
signed main(){int T; cin>>T; while(T--) solve();return 0;
}

Sum of Log相关推荐

  1. 2020 ICPC 上海 Sum of Log 数位dp + 状态剪枝

    传送门 文章目录 题意: 思路: 题意: 思路: 观察可以发现,由于i&j=0i \And j=0i&j=0,所以log2(i+j)log_2(i+j)log2​(i+j)表示的应该是 ...

  2. Sum of Log(2020上海C)

    Sum of Log 题意: 求∑i=0X∑j=[i=0]Y[i&j=0]⌊log2(i+j)+1⌋\sum_{i=0}^{X}\sum_{j=[i=0]}^{Y}[i\&j=0]\l ...

  3. C. Sum of Log(数位dp)

    C. Sum of Log Code1 暴力记的状态 TLE #include<bits/stdc++.h> using namespace std; using ll=long long ...

  4. 2020ICPC(上海) - Sum of Log(数位dp)

    题目链接:点击查看 题目大意:给出 X 和 Y,求  题目分析:因为涉及到了位运算且看似可以递推,所以考虑数位dp,因为统计答案时的 i 和 j 的与为 0,所以 i + j = i & j, ...

  5. 2020ICPC上海 C.Sum of Log

    题目链接 题目描述 Given two non-negative integers X{X}X and Y{Y}Y, determine the value of ∑i=0X∑j=[i=0]Y[i&a ...

  6. 数位dp ---- 2020 icpc 上海 Sum of Log(枚举高位的二进制数位dp)

    题目链接 题目大意 : 解题思路: 这里有个很核心的地方就是log2(i+j)\text{log2(i+j)}log2(i+j)本质上就是看看i+j\text{i+j}i+j的二进制高位在哪里? 那么 ...

  7. 2020上海ICPC现场赛 C Sum of Log

    https://ac.nowcoder.com/acm/contest/9925/C 今天我们队配合问题极大...这道前期数位DP给数学队友在看他半天不会写,然后我这个数学辣鸡wa了一年D...交换一 ...

  8. 20190829王老师发的面试题1、有一个日志文件access.log,内容如下

    1.有一个日志文件access.log,内容如下 09:28:59 404 2003356554 09:29:00 200 2003232321 09:30:00 300 2003232321 09: ...

  9. android log机制 输出log,Android log 机制 - logd 如何接收 log 数据(下)

    写入 log 数据时,我们先通过 socket 读取客户端 log,然后调用 logBuffer->log 函数写入 log 缓冲并唤醒读 log 的客户端.由于每种类型的 log 数据都有总量 ...

最新文章

  1. python的class的__str__()和__repr__()函数
  2. mysql数据库的F5_windows下mysql每天定时备份数据库几种方法
  3. django_rest_framework—路由器机制
  4. μC/OS-II软件定时器的分析与测试
  5. android js 弹窗,Android WebView 不能弹出alert的对话框
  6. 使用IntelliJ IDEA和Maven管理搭建+Web+Tomcat开发环境
  7. Python zip() 函数--多个迭代器取元素组合成一个新的迭代器
  8. 探索 Python + HyperLPR 进行车牌识别
  9. 烂泥:perl中CPAN的安装
  10. 转载(面向对象设计的原则)
  11. python中args是什么意思_理解Python中的*,*args
  12. ios设计规范(下)
  13. 在win7物理机,使用vmware,3台centos7系统,分别部署httpd,php-fpm,mariadb
  14. VS C# string 字符查找 寻找指定字符
  15. j2me模拟器自动退出的原因
  16. 用python做爬虫看图软件-RandomPicture
  17. 丽博版魔都家居图鉴:如何住进《三十而已》的精致家
  18. excel服务器 微信设置密码,如何用vba给excel工作簿批量设置添加打开密码? - EXCEL VBA - ExcelOffice【微信公众号:水星Excel】...
  19. 学计算机段子,段子手要失业了,计算机也懂幽默
  20. ftrack出免费软件了--cineSync Paly

热门文章

  1. Photoshop制作绚丽的彩色发光字效果
  2. Rainbond:如何制作一个可分享的云市应用?
  3. 英语的年月日时间的介词用法
  4. epoll的底层实现原理
  5. 兰亭集势任命Ezbuy联合创始人担任代理CFO
  6. 加州大学伯克利分校(UCB)计算机学生的课程安排
  7. 云计算定义共有几种服务模式,部署模型分为几类?
  8. simulink仿真demo临摹笔记之编辑信号发生器(Signal Builder)
  9. 今日头条自媒体如何运用,今日头条自媒体怎么运营好,今日头条自媒体运营技巧
  10. 双色球 机选号码+自选号码