老年选手需要多写一些思维题qwq。

通过打表很容易发现对于(i,j),值为(i-1)^(j-1)+1,然后本题就没了qwq。

矩阵差分还是很容易想到的,容斥成四个矩阵。

然后看到异或很容易想到三件事:数位DP、字典树、线性基。很容易发现后两种与本题不符,就是数位DP了,从高位到低位DP,f[i][0/1][0/1][0/1]表示到第i位,当前的x、y、x^y是否达到上界,然后直接暴力枚举当前位即可。因为q<=1e4怕memset多了出事,我用了滚动数组qwq。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=3e5+10,mod=1e9+7;
int f[2][2][2][2],g[2][2][2][2];
void add(int&x,int y){x=x+y>=mod?x+y-mod:x+y;}
ll work(int n,int m,int k)
{if(n<0||m<0)return 0;memset(f,0,sizeof f),memset(g,0,sizeof g);int p=1;g[0][1][1][1]=1;for(int i=30;~i;i--){int x=n>>i&1,y=m>>i&1,z=k>>i&1;for(int j=0;j<=1;j++)for(int k=0;k<=1;k++)for(int l=0;l<=1;l++)if(g[p^1][j][k][l]){for(int X=0;X<=(x|(!j));X++)for(int Y=0;Y<=(y|(!k));Y++)if((X^Y)<=z||!l){add(f[p][j&(X==x)][k&(Y==y)][l&((X^Y)==z)],(f[p^1][j][k][l]+1ll*g[p^1][j][k][l]*((X^Y)<<i)%mod)%mod);add(g[p][j&(X==x)][k&(Y==y)][l&((X^Y)==z)],g[p^1][j][k][l]);}f[p^1][j][k][l]=g[p^1][j][k][l]=0;}p^=1;}int ans=0;for(int j=0;j<=1;j++)for(int k=0;k<=1;k++)for(int l=0;l<=1;l++)add(ans,(f[p^1][j][k][l]+g[p^1][j][k][l])%mod);return ans;
}
int main()
{int T;scanf("%d",&T);while(T--){int ax,ay,bx,by,k;scanf("%d%d%d%d%d",&ax,&ay,&bx,&by,&k);ax--,ay--,bx--,by--,k--;printf("%lld\n",((work(bx,by,k)-work(ax-1,by,k)-work(bx,ay-1,k)+work(ax-1,ay-1,k))%mod+mod)%mod);}
}

View Code

转载于:https://www.cnblogs.com/hfctf0210/p/10975780.html

CF809C(找规律+数位DP)相关推荐

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

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

  2. 暑假D16 T3 密道(数位DP? 打表找规律)

    题意 对于一个(n+1)*(n+1)的矩阵,第一列和第一排为1,其他位置为1当且仅当上方和左方有一个1,其他为0: 对于100%的数据,n<=1e9 题解 稍微画了一下,感觉从图像看不大出来,就 ...

  3. 2018.09.01 poj3071Football(概率dp+二进制找规律)

    传送门 概率dp简单题. 设f[i][j]表示前i轮j获胜的概率. 如果j,k能够刚好在第i轮相遇,找规律可以发现j,k满足: (j−1)>>(i−1)(j−1)>>(i−1) ...

  4. 2019长安大学ACM校赛网络同步赛 L XOR (规律,数位DP)

    链接:https://ac.nowcoder.com/acm/contest/897/L 来源:牛客网 XOR 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  5. Xorequ(BZOJ3329+数位DP+斐波那契数列)

    题目链接 传送门 思路 由\(a\bigoplus b=c\rightarrow a=c\bigoplus b\)得原式可化为\(x\bigoplus 2x=3x\). 又异或是不进位加法,且\(2x ...

  6. 数位DP 不断学习中。。。。

    1, HDU 2089  不要62 :http://acm.hdu.edu.cn/showproblem.php?pid=2089 题意:不能出现4,或者相邻的62, dp[i][0],表示不存在不吉 ...

  7. bzoj1799 数位dp

    HYSBZ - 1799 题意:给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数. 思路:数位dp,比较容易想到是数位dp,关键是dp式比较难想到,数位dp说到底是一个记忆化搜索的过程,d ...

  8. ACM之路(16)—— 数位DP

    题目就是kuangbin的数位DP. 先讲C题,不要62,差不多就是一个模板题.要注意的是按位来的话,光一个pos是不够的,还需要一维来记录当前位置是什么数字,这样才能防止同一个pos不同数字的dp值 ...

  9. bzoj 1026: [SCOI2009]windy数 数位DP算法笔记

    数位DP入门题之一 也是我所做的第一道数位DP题目 (其实很久以前就遇到过 感觉实现太难没写) 数位DP题目貌似多半是问从L到R内有多少个数满足某些限制条件 只要出题人不刻意去卡多一个$log$什么的 ...

最新文章

  1. CLOCs:3D目标检测多模态融合之Late-Fusion
  2. 深度解读Helm 3: 犹抱琵琶半遮面
  3. 编译nginx时的两个报错
  4. Python中的运算符
  5. css新奇技术及其未来发展
  6. HTML5中的自定义属性总结
  7. 趁618买iPhone 11还是等iPhone 12?李楠有话要说
  8. 用python玩转数据测试与作业_大学mooc用Python玩转数据章节测试答案
  9. springcloud多租户实现原理-Saas多租户实现-以及几种方案_设计思路---springcloud工作笔记108
  10. NBA比赛数据table表格
  11. 美文:远方究竟有多远
  12. 2021年最值得推荐的29个开源软件,想提升自己的程序员赶快收藏
  13. 【esp8266】③esp8266对接天猫精灵实现语音控制
  14. 牛客网实战项目详细到每一步(更新中)
  15. 龙——中华民族象征的
  16. 5-1 决策树的模型
  17. uboot nor flash驱动移植(基于am29lv160bt)之环境变量没法保存的办法 .
  18. 分享一款超多功能工具箱组合微信小程序源码_支持流量主,无需服务器和域名!适合小白
  19. 用dnsmasq 实现DNS劫持
  20. linux su无效_linux的su命令无法使用

热门文章

  1. Python 3标准库,[美] 道格·赫尔曼(Doug Hellmann)
  2. Linux bash命令操作和VI编辑器操作
  3. linux运维初学作业,Linux运维班第二次作业(示例代码)
  4. java class.getmethod_java反射之Class.getMethod与getDeclaredMethods()区别
  5. diy手工制作泡沫小球_废物利用手工DIY教程。一次性筷子变废为宝,手工制作木屋模型...
  6. HTTP 方法:GET 对比 POST
  7. 004_Redis的String数据类型
  8. mysql_upgrade 升级_采用MySQL_upgrade升级授权表方式升级
  9. 果园种树java_Java版淘金果园系统
  10. 汉字在屏幕上的显示过程以及乱码的原因