题目描述

题解:

很玄学的一道数位$dp$,看了很多篇题解才懂。

直接挂$l$的题解

代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 100050
#define ll long long
#define MOD 20130427
inline int rd()
{
int f=,c=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){c=*c+ch-'';ch=getchar();}
return f*c;
}
ll b;
ll L[N],l,R[N],r;
ll f[N][],g[N][];
ll h[N],s[N];
ll sol(ll *x,int n)
{
memset(f,,sizeof(f));
memset(g,,sizeof(g));
memset(h,,sizeof(h));
memset(s,,sizeof(s));
h[] = s[] = x[]-;
f[][] = g[][] = x[]*(x[]-)/;
f[][] = g[][] = x[];
for(int i=;i<=n;i++)
{
s[i] = ( s[i-]*b%MOD + x[i] + b - )%MOD;
h[i] = ( (h[i-]+s[i-])*b%MOD + x[i]*i%MOD + b - )%MOD;
f[i][] = (f[i-][]*b%MOD*b%MOD
+(h[i-]+s[i-]+)%MOD*((b*(b-)/)%MOD)%MOD
+f[i-][]*x[i]%MOD*b%MOD
+1ll*i*((x[i]*(x[i]-)/)%MOD)%MOD)%MOD;
f[i][] = ( f[i-][]*b%MOD + x[i]*i%MOD )%MOD;
g[i][] = ( g[i-][]*b%MOD + f[i][] + g[i-][]*x[i]%MOD)%MOD;
g[i][] = ( g[i-][] + f[i][] )%MOD;
// printf("%lld %lld %lld %lld\n",f[i][0],f[i][1],g[i][0],g[i][1]);
}
return ((g[n][]+g[n][])%MOD+MOD)%MOD;
}
int main()
{
b = rd();
l = rd();
for(int i=;i<=l;i++)L[i]=rd();
L[l]--;
for(int i=l;L[i]<;i--)L[i-]--,L[i]+=b;
if(!L[])
{
l--;
for(int i=;i<=l;i++)L[i]=L[i+];
}
r = rd();
for(int i=;i<=r;i++)R[i]=rd();
printf("%lld\n",((sol(R,r)-sol(L,l))%MOD+MOD)%MOD);
return ;
}

SCOI2013 数数的更多相关文章

  1. 洛谷:P3281 [SCOI2013]数数 (优秀的解法)

    刷了这么久的数位 dp ,照样被这题虐,还从早上虐到晚上,对自己无语...(机房里又是只有我一个人,寂寞.) 题目:洛谷P3281 [SCOI2013]数数 题目描述 Fish 是一条生活在海里的鱼, ...

  2. 2019.03.28 bzoj3326: [Scoi2013]数数(数位dp)

    传送门 题意: 一个人数数,规则如下: 确定数数的进制B 确定一个数数的区间[L, R] 对于[L, R] 间的每一个数,把该数视为一个字符串,列出该字符串的所有连续子串对应的B进制数的值. 对所有列 ...

  3. bzoj3326: [Scoi2013]数数

    Description Fish 是一条生活在海里的鱼,有一天他很无聊,就开始数数玩. 他数数玩的具体规则是: 1. 确定数数的进制B 2. 确定一个数数的区间[L, R] 3. 对于[L, R] 间 ...

  4. 【BZOJ 3326】[Scoi2013]数数

    题目描述 Fish 是一条生活在海里的鱼,有一天他很无聊,就开始数数玩.他数数玩的具体规则是: 确定数数的进制B 确定一个数数的区间[L, R] 对于[L, R] 间的每一个数,把该数视为一个字符串, ...

  5. BZOJ 3326 [SCOI2013]数数 (数位DP)

    洛谷传送门 题目: Fish 是一条生活在海里的鱼,有一天他很无聊,就开始数数玩.他数数玩的具体规则是: 确定数数的进制$B$ 确定一个数数的区间$[L, R]$ 对于$[L, R] $间的每一个数, ...

  6. bzoj 3530: [Sdoi2014]数数 数位dp

    题目 我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串.例如当S=(22,333,0233)时,233是幸运数,2333.20233.3223不是幸运数. ...

  7. 【BZOJ】【3530】【SDOI2014】数数

    AC自动机/数位DP orz zyf 好题啊= =同时加深了我对AC自动机(这个应该可以叫Trie图了吧……出边补全!)和数位DP的理解……不过不能自己写出来还真是弱…… /************* ...

  8. BZOJ3530: [Sdoi2014]数数

    3530: [Sdoi2014]数数 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 322  Solved: 188[Submit][Status] ...

  9. 【HDU3530】 [Sdoi2014]数数 (AC自动机+数位DP)

    3530: [Sdoi2014]数数 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 682  Solved: 364 Description 我们称一 ...

  10. COJ 0036 数数happy有多少个?

    数数happy有多少个? 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 图图是个爱动脑子.观察能力很强的好学生.近期他正学英语 ...

随机推荐

  1. bzoj 4550: 小奇的博弈【博弈论+dp】

    首先看出终止状态是全都堆在左边或者右边,然后发现黑的向左白的向右是最优策略(如果不能这样了也就该输了) 然后就不会了 参考 http://www.cnblogs.com/CQzhangyu/p/770 ...

  2. bzoj 3811: 玛里苟斯【线性基+期望dp】

    这个输出可是有点恶心啊--WA*inf,最后抄了别人的输出方法orz 还有注意会爆long long,要开unsigned long long 对于k==1,单独考虑每一位i,如果这一位为1则有0.5 ...

  3. springcloud(一) 服务拆分

    一般我们的项目如果需要从单应用服务升级到微服务,必须要将原来的服务做拆分,我这边的拆分也是基于将之前spb-demo的springboot单应用做拆分,拆分出三个应用,spb-brian-query- ...

  4. Keepalived+Nginx实现Nginx的高可用

    集群规划 主机名 IP VIP Nginx:port KeepAlived主备 KA_NG_01 192.168.30.130 192.168.30.120 8088 MASTER KA_NG_02 ...

  5. CentOS6.5下中文输入法的相关问题

    问题.点击Input Method Preferences没反应. 首先执行 yum install "@Chinese Support" yum install -yibus-t ...

  6. Java基础学习-一切皆为对象

    一切皆为对象 引用 String s; //s是引用,并不是对象. String s = "asdf" //创建一个引用的同时便进行初始化

  7. AJPFX总结面向对象(this和super的区别和应用)

    面向对象(this和super的区别和应用)(掌握)* A:this和super都代表什么        * this:代表当前对象的引用,谁来调用我,我就代表谁        * super:代表当 ...

  8. poj1724 ROADS

    题意: N个城市,编号1到N.城市间有R条单向道路.每条道路连接两个城市,有长度和过路费两个属性.Bob只有K块钱,他想从城市1走到城市N.问最短共需要走多长的路.如果到不了N,输出-12<=N ...

  9. 洛谷P3773 [CTSC2017]吉夫特(Lucas定理,dp)

    题意 满足$b_1 < b_2 < \dots < b_k$且$a_{b_1} \geqslant a_{b_2} \geqslant \dots \geqslant a_{b_k} ...

  10. 【学习笔记】深入理解js原型和闭包(7)——原型的灵活性

    在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完).压个啥样,就得是个啥样,不能随便动,动一动就坏了. 而在javascript中,就没有 ...