![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数位dp
Ripped
我那么浮躁却想要读懂你的生活
展开
-
【BZOJ 4521】【CQOI 2016】手机号码
和山东省选的储能表很像,都是带上限的数位dp,先差分一下,然后询问两次即可。这里要注意10^10如果减1就变成10位数了,所以这里是加1。 用f[i][j][a][b][c][d][e]来表示。。。 做到第i位,上一位是j(第0位就用10表示),a表示最后两位是否一样,b表示是否已经出现连续三个数相等,c表示是否有4,d表示是否有8,e表示是否小于上限。#include<cmath> #incl原创 2017-03-06 15:17:55 · 330 阅读 · 0 评论 -
【BZOJ 4513】【SDOI 2016】储能表
对每一位数字考虑,假设横坐标和纵坐标为x和y,对于每一位的(x,y)都有4种情况。 令f/g[i][a][b][c]表示第i位上: a=0:x#include<cmath> #include<cstdio> #include<vector> #include<cstring> #include<iomanip> #include<stdlib.h> #include<iostream> #inc原创 2017-02-27 18:07:44 · 475 阅读 · 0 评论