http://www.lydsy.com/JudgeOnline/problem.php?id=4513

f[i][0/1][0/1][0/1] 从高到低第i位,是否卡n的上限,是否卡m的上限,是否卡k的下限 的方案数

g[i][0/1][0/1][0/1] 对应 f 的和

#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int f[62][2][2][2],g[62][2][2][2];template<typename T>
void read(T &x)
{x=0; char c=getchar();while(!isdigit(c)) c=getchar();while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); }
}void solve()
{long long n,m,k; int p;read(n); read(m); read(k); read(p);memset(f,0,sizeof(f));memset(g,0,sizeof(g));f[61][1][1][1]=1;int A,B,C,z;int ni,mi,ki;for(int i=60;i>=0;--i)for(int a=0;a<=1;++a)for(int b=0;b<=1;++b)for(int c=0;c<=1;++c)if(f[i+1][a][b][c]){ni=n>>i&1; mi=m>>i&1; ki=k>>i&1;for(int x=0;x<=1;++x)if(!a || x<=ni)for(int y=0;y<=1;++y)if(!b || y<=mi){z=x^y;if(c && z<ki) continue;A=a&x==ni; B=b&&y==mi; C=c&&z==ki;f[i][A][B][C]=(f[i][A][B][C]+f[i+1][a][b][c])%p;g[i][A][B][C]=(g[i][A][B][C]+g[i+1][a][b][c])%p;if(z) g[i][A][B][C]=(g[i][A][B][C]+(1LL<<i)%p*f[i+1][a][b][c]%p)%p;}}printf("%d\n",(g[0][0][0][0]-k%p*f[0][0][0][0]%p+p)%p);
}int main()
{int T;read(T);while(T--) solve();return 0;
}

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/8562099.html

bzoj千题计划277:bzoj4513: [Sdoi2016]储能表相关推荐

  1. bzoj千题计划282:bzoj4517: [Sdoi2016]排列计数

    http://www.lydsy.com/JudgeOnline/problem.php?id=4517 组合数+错排公式 #include<cstdio> #include<ios ...

  2. BZOJ 2150. 部落战争(最小路径覆盖问题)【BZOJ千题计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 刷题就图一乐 题目链接 https://hydro.ac/d/bzoj/p/2150 是 hydro ...

  3. BZOJ 2151 种树(可反悔贪心,链表)【BZOJ千题计划】就图一乐

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2151 是 hydro 的 BZOJ ...

  4. BZOJ 1799 [Ahoi2009] self 同类分布(数位DP)【BZOJ千题计划(quexin】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/1799(样例时限设置有问题,应该为 2 ...

  5. bzoj千题计划143:bzoj1935: [Shoi2007]Tree 园丁的烦恼

    http://www.lydsy.com/JudgeOnline/problem.php?id=1935 二维偏序问题 排序x,离散化树状数组维护y #include<cstdio> #i ...

  6. bzoj千题计划207:bzoj1879: [Sdoi2009]Bill的挑战

    http://www.lydsy.com/JudgeOnline/problem.php?id=1879 f[i][j] 表示匹配了i个字符,匹配字符串的状态为j的方案数 枚举下一个字符是什么 计算加 ...

  7. bzoj千题计划203:bzoj3994: [SDOI2015]约数个数和

    http://www.lydsy.com/JudgeOnline/problem.php?id=3994 设d(x)为x的约数个数,给定N.M,求 用到的一个结论: 证明: 枚举n的约数i,枚举m的约 ...

  8. bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪

    http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...

  9. bzoj千题计划201:bzoj1820: [JSOI2010]Express Service 快递服务

    http://www.lydsy.com/JudgeOnline/problem.php?id=1820 很容易想到dp[i][a][b][c] 到第i个收件地点,三个司机分别在a,b,c 收件地点的 ...

最新文章

  1. GUID和自增ID的比较_delete
  2. 【杂谈】如何学会看arxiv.org才能不错过自己研究领域的最新论文?
  3. connect: 网络不可达_Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制
  4. Linux环境下手动配置sbt
  5. 服务器如何区分多个客户端的信息,如何从服务器向客户端发送已连接客户端的列表,以区分常规消息?...
  6. 我的服装DRP之即时通讯——为WCF增加UDP绑定(应用篇)
  7. 【python】生成器
  8. mysql linux 关闭防火墙_linux常用命令和关闭防火墙
  9. Direct IO的程序实现
  10. ORA-00018-超出最大连接数
  11. 笔记本安装CentOS环境
  12. 解决XCode 11 build error 编译错误 image not found
  13. Excel - 添加趋势线,显示趋势线公式 - 进行行业投融资曲线拟合
  14. MySQL卸载不干净-MySQL Connector Net xxx文件怎么也删除不了?一招解决它
  15. STM8S 红外解码+低功耗处理
  16. 古今安全帽头盔大PK,古人安全意识不比今人差
  17. python编写鸡兔同笼程序_鸡兔同笼问题的python实现
  18. win7怎么设置开机密码_主编教您电脑开机密码怎么设置
  19. MySQL与MariaDB性能比拼
  20. 高手速成android开源项目[View篇]

热门文章

  1. 华为 MateBook 14 Linux 版真机:搭载深度 Linux 系统
  2. 开源大法好,Windows 计算器又添两项新功能
  3. (转)ASP.NET Core 企业开发架构概述
  4. mysql是表级锁还是行级锁_带你了解MySQL数据库中的全局锁、表级锁、行级锁
  5. python idle是什么_下载下来的IDLE是个什么鬼
  6. python杨辉三角编程_Python基础练习实例49(打印杨辉三角)
  7. php 半角,php 中全半角转换
  8. 原生css页面滑动到指定位置开始动画_html/css 滚动到元素位置,显示加载动画
  9. python远程控制终端数据_python 网络远程控制
  10. hibernate mysql 视图_转:hibernate映射视图的两种方式