老年选手需要多写一些思维题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+,mod=1e9+;
int f[][][][],g[][][][];
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<||m<)return ;
memset(f,,sizeof f),memset(g,,sizeof g);
int p=;
g[][][][]=;
for(int i=;~i;i--)
{
int x=n>>i&,y=m>>i&,z=k>>i&;
for(int j=;j<=;j++)
for(int k=;k<=;k++)
for(int l=;l<=;l++)
if(g[p^][j][k][l])
{
for(int X=;X<=(x|(!j));X++)
for(int Y=;Y<=(y|(!k));Y++)
if((X^Y)<=z||!l)
{
add(f[p][j&(X==x)][k&(Y==y)][l&((X^Y)==z)],(f[p^][j][k][l]+1ll*g[p^][j][k][l]*((X^Y)<<i)%mod)%mod);
add(g[p][j&(X==x)][k&(Y==y)][l&((X^Y)==z)],g[p^][j][k][l]);
}
f[p^][j][k][l]=g[p^][j][k][l]=;
}
p^=;
}
int ans=;
for(int j=;j<=;j++)
for(int k=;k<=;k++)
for(int l=;l<=;l++)
add(ans,(f[p^][j][k][l]+g[p^][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-,by,k)-work(bx,ay-,k)+work(ax-,ay-,k))%mod+mod)%mod);
}
}

CF809C(找规律+数位DP)的更多相关文章

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

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

  2. 2017年icpc西安网络赛 Maximum Flow (找规律+数位dp)

    题目 https://nanti.jisuanke.com/t/17118 题意 有n个点0,1,2...n-1,对于一个点对(i,j)满足i<j,那么连一条边,边权为i xor j,求0到n- ...

  3. Codeforces D. Little Elephant and Interval(思维找规律数位dp)

    题目描述: Little Elephant and Interval time limit per test 2 seconds memory limit per test 256 megabytes ...

  4. Codeforces Round #260 (Div. 2) A , B , C 标记,找规律 , dp

    A. Laptops time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  5. hdu 4722 Good Numbers 规律 数位dp

    #include<iostream> #include<cstring> #include<cstdio> #include<vector> #incl ...

  6. 剑指 Offer 44. 数字序列中某一位的数字 + 找规律 + 数位

    剑指 Offer 44. 数字序列中某一位的数字 Offer_44 题目描述 题解分析 java代码 package com.walegarrett.offer; /** * @Author Wale ...

  7. HDU - 4722 Good Numbers 【找规律 or 数位dp模板】

    If we sum up every digit of a number and the result can be exactly divided by 10, we say this number ...

  8. HDU 4588 Count The Carries 数位DP || 打表找规律

    2013年南京邀请赛的铜牌题...做的非常是伤心.另外有两个不太好想到的地方.. ..a 能够等于零,另外a到b的累加和比較大.大约在2^70左右. 首先说一下解题思路. 首先统计出每一位的1的个数, ...

  9. UVALive - 6575 Odd and Even Zeroes 数位dp+找规律

    题目链接: http://acm.hust.edu.cn/vjudge/problem/48419 Odd and Even Zeroes Time Limit: 3000MS 问题描述 In mat ...

随机推荐

  1. VM虚拟机安装 常用Linux命令 网卡配置 (第二天)

    VM虚拟机安装:(昨天已经安装好了VM了,按照提示安装就好,很简单) 1.安装centos7虚拟机,现在磁盘里面新建文件夹作为安装文件夹 2.找到centos7的iso文件,打开vm-新建虚拟机-按照 ...

  2. Webpack - 把json文件打包进js文件

    把html文件打包进index.js   1  新建文件 typings.d.ts    declare module "*.html" {   const content: st ...

  3. Day3-T4

    原题目 Describe:有点恶心的DP+最短路 code: #include<bits/stdc++.h> using namespace std; long long A,B,C,z, ...

  4. swift中实现cell中局部播放的动画效果

    在cell中 // 播放器动画效果 private var replicatorLayer:ReplicatorLayer = { let layer = ReplicatorLayer.init(f ...

  5. Essay写作用对标点符号很重要!

    很多留学生在essay写作中对于标点符号的正确使用可能不是太清楚,今天Meeloun小编给大家整理了一些关于标点符号的正确打开方式,希望可以帮到同学们! Colloquialism俗语: 如果要在写作 ...

  6. 吴裕雄--天生自然 JAVASCRIPT开发学习:作用域

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. Day 9:双列集合Map及实现该接口的类的常用方法

    为什么要学双列集合? 因为单列集合无法处理映射关系,会有成对出现的数据 Map接口  如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复 Map接 ...

  8. Multiarmed Bandit Algorithm在股票中的应用

    股票与Bandit Machine看起来相去甚远,但实际上通过限制买入和卖出的行为,股票可以转换为Bandit Machine,比如:规定股票必须在买入一天以后卖出.为什么要大费周折地把股票变成Ban ...

  9. DQL多表查询

    DQL多表查询 一.多表查询实现多个表之间查询数据 1.交叉连接笛卡尔积:A表中的每一行匹配B表中的每一行基本结构:select [数据库名1.]表名1,属性名1,......, [数据库名.]表名. ...

  10. javascript语法规范和良好的变成习惯

    1.1空白和多行书写 1.空白:空格键输入的空白.tab键输入的空白以及回车键输入的空白 2.多行书写,不能将引号内的字符串放到两行,不然容易报错. 1.2点语法 . 点语法表达式由对象开始,接着是一 ...