Description

Sol

设 \(A=\text{XOR}(X)\),\(B=\text{XOR}(Y)\)。

因为 \(A<B\),所以写下他们的二进制表示,一定是最高的几位先是相等,紧接着有一位 \(A=0\) 而 \(B=1\),后边就随意了。

嗯那我们可以枚举 \(A\) 和 \(B\) 二进制的 \(LCP\) 长度,这样计数就不重不漏了。

设当前枚举的长度为 \(p\), \(f[i][j][0/1][0/1]\) 表示决策完数字 \(i\),\(A\) 的前 \(p\) 位异或上 \(B\) 的前 \(p\) 位的结果为 \(j\),\(A/B\) 的第 \(p-1\) 位为 \(0/1\)。

转移就是决策当前数字填在哪个集合,最后的答案就是 \(f[n][0][0][1]\)。

Code

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
typedef double db;
typedef long long ll;
const int mod=1e9+7;class WinterAndSnowmen{
public:int f[2005][2049][2][2];int getNumber(int n,int m){int ans=0,mx=max(n,m);for(int i=11;i;i--){memset(f,0,sizeof f);f[0][0][0][0]=1;for(int j=1;j<=mx;j++){for(int p=0;p<1<<(11-i);p++){for(int a=0;a<2;a++){for(int b=0;b<2;b++){f[j][p][a][b]=f[j-1][p][a][b];if(j<=n) f[j][p][a][b]=(f[j-1][p^(j>>i)][a^(j>>i-1&1)][b]+f[j][p][a][b])%mod;if(j<=m) f[j][p][a][b]=(f[j-1][p^(j>>i)][a][b^(j>>i-1&1)]+f[j][p][a][b])%mod;}}}} (ans+=f[mx][0][0][1])%=mod;} return ans;}
};

转载于:https://www.cnblogs.com/YoungNeal/p/10396526.html

[SRM603] WinterAndSnowmen相关推荐

  1. 【做题】TCSRM601 Div1 500 WinterAndSnowmen——按位考虑dp

    原文链接https://www.cnblogs.com/cly-none/p/9695526.html 题意:求有多少对集合\(S,T\)满足:\(S \subseteq \{1,2...n \}, ...

  2. idea生成有参构造的快捷键,idea生成有参构造的快捷键_Idea_学习_09_Idea 方法自动生成参数默认名...

    关于SQL递归查询在不同数据库中的实现方法 比如表结构数据如下: Table:Tree ID Name ParentId 1 一级  0 2  二级 1 3  三级 2 4 四级 3 SQL SERV ...

  3. Winter And Snowmen

    https://vjudge.net/problem/TopCoder-12891 暴力想法是:dp[i][s1][s2]前i个,第一个集合xor是s1,第二个集合xor是s2方案数O(n^3) 有x ...

最新文章

  1. 关于Jvm知识看这一篇就够了
  2. php elasticsearch ik,elasticsearch 中文分词(elasticsearch-analysis-ik)安装
  3. java递归获取文件名_递归打印文件名
  4. 6425C-Lab11 配置DNS
  5. ASP.NET MVC之从控制器传递数据到视图四种方式(一)
  6. Stanford机器学习笔记-4. 神经网络Neural Networks (part one)
  7. Redis 是如何执行的?
  8. Android获得全局进程信息以及进程使用的内存情况
  9. Coolite中的ComboBox控件示例
  10. 微信小程序实战之 goods(订餐页)
  11. C++多线程传参详解
  12. 网页上传大文件被限制,如何设置配置文件
  13. 辰星人才 | 旷视实习生鲁盼:UCLA朱松纯准博士,两年七篇顶会论文
  14. 何苦蹲点预售抢交尾款 这款电竞游戏显示器就超值
  15. 自动切图生成html,Photoshop如何实现UI自动切图?_html/css_WEB-ITnose
  16. 制作Win10安装U盘(量产PE+UEFI)双引导
  17. 实现Swap函数,将两个数交换
  18. ecplise提示:“The selection cannot be launched, and there are no recent launches.”
  19. NMEA1803协议3.0版本及以上说明
  20. python爬虫 爬取360图片(非结构化数据)

热门文章

  1. Python+Appium自动化测试-通过坐标定位元素
  2. 爬取B站视频 - m4s文件的相关研究
  3. Three.js盖房子 点击开关门
  4. [汇编] 在屏幕中央显示时钟
  5. 前端页面嵌入word文档_word文档怎样加页面
  6. 解决Qt5.7.0 cannot find -lGL
  7. 603. Consecutive Available Seats
  8. k线符号图解大全_八种常见的K线符号
  9. ictclas java 64_ICTCLAS分词系统在win7 64 java平台下环境搭建
  10. Python pip distribute