BZOJ3780 : 数字统计
从低位到高位数位DP,f[i][j][k]表示已经填了后i位,转化的数字为j,后i位与x后i位的大小关系为k的方案数。
#include<cstdio>
const int N=202,B=7,P=(1<<30)-1;
char s[N];int T,n,y,i,j,k,t,a[N];
struct Num{int x[B];Num(){for(int i=0;i<B;i++)x[i]=0;}Num operator+(Num b){Num c;for(int i=0;i<B;i++)c.x[i]=x[i]+b.x[i];for(int i=0;i<B-1;i++)if(c.x[i]>P)c.x[i+1]++,c.x[i]&=P;return c;}Num operator-(Num b){Num c;for(int i=0;i<B;i++)c.x[i]=x[i]-b.x[i];for(int i=0;i<B-1;i++)if(c.x[i]<0)c.x[i+1]--,c.x[i]+=P+1;return c;}void operator+=(Num b){*this=*this+b;}void operator-=(Num b){*this=*this-b;}void write(){int i;for(i=N-1;~i;i--)if(x[i/30]&(1<<i%30))break;if(i<0)putchar('0');for(;~i;i--)putchar(x[i/30]&(1<<i%30)?'1':'0');}
}f[N][2][2],tmp,ans,one;
Num cal(){scanf("%s",s+1);for(i=1;i<=n;i++)a[n-i+1]=s[i]-'0',f[i][0][0]=f[i][0][1]=f[i][1][0]=f[i][1][1]=Num();for(t=0;t<=1;t++)f[1][t][t<a[1]]+=one;for(i=1;i<n;i++)for(j=0;j<=1;j++)for(k=0;k<=1;k++)for(t=0;t<=1;t++)f[i+1][!j&&!t][t==a[i+1]?k:t<a[i+1]]+=f[i][j][k];return f[n][y][1];
}
int main(){one.x[0]=1;scanf("%d",&T);while(T--){scanf("%d%d",&n,&y);tmp=cal(),ans=cal();for(k=a[1],i=2;i<=n;i++)k=!k&&!a[i];if(k==y)ans+=one;ans-=tmp;ans.write();puts("");}return 0;
}
转载于:https://www.cnblogs.com/clrs97/p/4403196.html
BZOJ3780 : 数字统计相关推荐
- ajax php计数,jQuery+PHP+Ajax动态数字统计展示实例
jQuery+PHP+Ajax实现的一款动态数字统计展示实例,本例是在页面上动态展示了当前在线用户数,当然了,你可以应用到其他更多场景中. 首先我们在#number放置要统计的数字: 当前在线: - ...
- ajax php 动态,jQuery+PHP+Ajax实现动态数字统计展示功能
jQuery+PHP+Ajax实现的一款动态数字统计展示实例,本例是在页面上动态展示了当前在线用户数,当然了,你可以应用到其他更多场景中. 首先我们在#number放置要统计的数字: 当前在线: 然后 ...
- 1949:【10NOIP普及组】数字统计
/* 1949:[10NOIP普及组]数字统计 http://ybt.ssoier.cn:8088/problem_show.php?pid=1949 */ #include <bits/std ...
- 信息学奥赛一本通 1096:数字统计 | 1949:【10NOIP普及组】数字统计 | OpenJudge NOI 1.5 41
[题目链接] ybt 1096:数字统计 ybt 1949:[10NOIP普及组]数字统计 OpenJudge NOI 1.5 41:数字统计 [题目考点] 1. 分离整数的各位数字 对于数字a,a% ...
- 信息奥赛一本通(1096:数字统计)
1096:数字统计 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 26012 通过数: 18138 [题目描述] 请统计某个给定范围[L, R]的所有整数 ...
- 洛谷——P1179 [NOIP2010 普及组] 数字统计
P1179 [NOIP2010 普及组] 数字统计 题目描述 请统计某个给定范围[L, R][L,R]的所有整数中,数字 22 出现的次数. 比如给定范围[2, 22][2,22],数字22 在数 2 ...
- POJ NOI0105-41 数字统计
问题链接:POJ NOI0105-41 数字统计. 总时间限制: 1000ms 内存限制: 65536kB 描述 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数. 比如给定范围[2, 2 ...
- Vijos P1784 数字统计【进制】
背景 来自 NOIP2010 普及组 第一题 描述 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数. 比如在给定范围[2, 22],数字2在数2中出现了1次,在数12中出现了1次,在数2 ...
- 1021个位数字统计
题目链接:个位数字统计 思路:1000位,肯定不能用数字表示,将字符串转换成数字-48 注意点: 实话说这是我达不到的水准,我已经弄混了,或者说根本就没有掌握,遇到类似的,直接凉了! 什么是字符数组? ...
- XDOJ综合题 数字统计排序
XDOJ - 数字统计排序 类别:综合 时间限制:1S 内存限制:256Kb 问题描述: 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出,次数相同时先输出值较小的数. 输入说明 ...
最新文章
- 必看干货:如何在 JavaScript 中实现 8 种基本图形算法
- 某百度程序员中午面试一个阿里程序员,晚上去阿里面试,面试官竟是中午那个人!
- ios 静态库合成_iOS链接原理解析与应用实践
- sql针对某字段去重查询_sql针对某一字段去重,并且保留其他字段
- history linux 日志服务器_Linux下使用rsyslog部署日志服务器 记录history并发送到rsyslog服务器...
- python两两组合求和_LeetCode-python 40.组合总和 II
- linux下的awk程序在哪里编写,如何编写awk命令和脚本
- 本地html页面传递表单值,js实现两个页面表单传值并接收
- 计算机桌面颜色突然变灰,Win10桌面颜色变为灰的两种解决方法
- Java入门到精通(六)
- Graph2Vec运行
- HTTP幂等性概念和应用
- UML统一建模语言简介
- PTES执行内容思维导图
- chrome浏览器打开base64图片
- 分布式自增序列id的实现(二) ---分布式序号生成器---基于Redis的自增功能
- c语言求布尔矩阵的乘积,离散数学 关系矩阵的布尔乘法的简便方法
- 计算机英语冯敏课后题答案,(中学篇)2020年第10期:例谈基于协同效应的读后续写教学(浙江:冯敏)一文涉及的读后续写试题...
- python画布删除图形_Matplotlib在savefig之后从画布中清除旧图形
- [附源码]java毕业设计电影影评网
热门文章
- windows下安装MinGW、swig 、zlib
- 看完这篇再不会 View 的动画框架,我跪搓衣板
- ieda使用 在jsp页面中,有时候会出现不能智能显示方法 idea pageContext.setAttribute...
- RuiJie命令行划VLAN
- Bzoj 3831: [Poi2014]Little Bird
- 利用脚本设置本机IP地址
- 建立RHELAS4下面的Yum本地源
- PIE SDK专题制图切换模板
- 【SPSS】软件介绍
- JS兼容性问题:window.locatin.href is not a function