老年选手需要多写一些思维题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. spring源码 RootBeanDefinition类的根接口AttributeAccessor

    /** * Interface defining a generic contract for attaching and accessing metadata * to/from arbitrary ...

  2. 20180122 PyTorch学习资料汇总

    PyTorch发布一年团队总结:https://zhuanlan.zhihu.com/p/33131356?gw=1&utm_source=qq&utm_medium=social 官 ...

  3. Egret Engine 2D - 遮罩

      矩形遮罩 shp.mask = new egret.Rectangle(20,20,30,50);   注意如果rec发生变化,需要重要将rec赋值给shp.mask 删除遮罩的方法 sprite ...

  4. Day1-T2

    原题目 在小X的认知里,质数是除了本身和1以外,没有其他因数的数. 但由于小 X对质数的热爱超乎寻常,所以小X同样喜欢那些虽然不是质数, 但却是由两个质数相乘得来的数. 于是,我们定义一个数小 X喜欢 ...

  5. cf 609E.Minimum spanning tree for each edge

    最小生成树,lca(树链剖分(太难搞,不会写)) 问存在这条边的最小生成树,2种情况.1.这条边在原始最小生成树上.2.加上这条半形成一个环(加上),那么就找原来这条边2端点间的最大边就好(减去).( ...

  6. PowerDesigner 破解版,汉化包!

    链接:https://pan.baidu.com/s/1R_6g6keo2Y4_V0c1ImeFbA  密码:ncju

  7. C#高级编程(第9版) 第10章 集合 笔记

    话说 虽然敲过好多代码, 但除了C++,一直没正眼瞧过其它语言.(没办法 谁叫C++既有oop又能自由控制内存呢) 今天 看公司老项目的src,c#的,linq+Dictionary的用法有感.所以找 ...

  8. SAP_BASIS常用事务代码

    1.SM66:监控当前系统的所有进程: 2.SM50/SM51:监视当前客户端的所有进程: 3.AL08:查看系统当前用户登录情况: 4.ST22:查看系统发生的DUMP: 5.ST03:查看系统当前 ...

  9. swiper用axios异步请求后 循环失效

    解决方案 使用ajax动态获取数据  当数据还没有收到的时候,swiper组件收到的是跟组件data传过来的空数组,会造成渲染问题 这个时候可以给swiper组件 设置一个  v-if='list.l ...

  10. POJ 1129:Channel Allocation 四色定理+暴力搜索

    Channel Allocation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13357   Accepted: 68 ...