https://scut.online/p/289

一个水到飞起的模板数位dp。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll; bool notp[2000]; const int MAXS1=200;
const int MAXS2=2000; int a[20];
ll dp[20][MAXS1][MAXS2];
ll dfs(int pos,int s1,int s2,bool lead,bool limit) {
if(pos==-1) {
if(notp[s1]||notp[s2])
return 0;
else
return 1;
}
if(!limit && !lead && dp[pos][s1][s2]!=-1)
return dp[pos][s1][s2];
int up=limit?a[pos]:9;
ll ans=0;
for(int i=0; i<=up; i++) {
ans+=dfs(pos-1,s1+i,s2+i*i,lead && i==0,limit && i==a[pos]);
}
if(!limit && !lead)
dp[pos][s1][s2]=ans;
return ans;
} ll solve(ll x) {
if(x<=0)
return 0; int pos=0;
while(x) {
a[pos++]=x%10;
x/=10;
} return dfs(pos-1,0,0,true,true);
} int main() {
#ifdef Yinku
freopen("Yinku.in","r",stdin);
#endif // Yinku
memset(dp,-1,sizeof(dp));
notp[0]=1;
notp[1]=1;
for(int i=2; i<2000; i++) {
if(!notp[i]) {
for(int j=i+i; j<2000; j+=i) {
notp[j]=1;
}
}
} int T;
scanf("%d",&T);
ll le,ri;
while(T--) {
scanf("%lld%lld",&le,&ri);
printf("%lld\n",solve(ri)-solve(le-1));
}
}

SCUT - 289 - 小O的数字 - 数位dp的更多相关文章

  1. xbz分组题B 吉利数字 数位dp入门

    B吉利数字时限:1s [题目描述]算卦大湿biboyouyun最近得出一个神奇的结论,如果一个数字,它的各个数位相加能够被10整除,则称它为吉利数.现在叫你计算某个区间内有多少个吉利数字. [输入]第 ...

  2. 牛客小白月赛8 - E - 诡异数字 数位DP

    牛客小白月赛8 - E - 诡异数字 题意: 求区间中,满足限制条件的数字的个数. 限制条件就是某些数字不能连续出现几次. 思路: 比较裸的数位DP, DP数组开一个dp[len][x][cnt] 表 ...

  3. scauoj 18025 小明的密码 数位DP

    18025 小明的密码 时间限制:4000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC Description 小明的密码由N(1<=N& ...

  4. 5.15 牛客挑战赛40 C 小V和字符串 数位dp 计数问题

    LINK:小V和字符串 容易想到只有1个数相同的 才能有贡献. 知道两个01串 那么容易得到最小步数 大体上就是 第一个串的最前的1和第二个串最前的1进行匹配. 容易想到设f[i][j]表示 前i位1 ...

  5. HDU 4352 XHXJ's LIS HDU(数位DP)

    HDU 4352 XHXJ's LIS HDU 题目大意 给你L到R区间,和一个数字K,然后让你求L到R区间之内满足最长上升子序列长度为K的数字有多少个 solution 简洁明了的题意总是让人无从下 ...

  6. Codeforces 1290F - Making Shapes(数位 dp)

    Codeforces 题面传送门 & 洛谷题面传送门 数位 dp 好题. 首先,由于是凸包,一但向量集合确定,凸包的形态肯定就已经确定了.考虑什么样的向量集合能够组成符合条件的凸包,我们假设第 ...

  7. 牛客寒假算法基础集训营3处女座和小姐姐(三) (数位dp)

    链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...

  8. 数位dp——奏响数字数位的美妙乐章

    数位dp:处理数字数位关系的一种dp方式. 一般的题目特征十分明显: 1.一般和数字本身有很大关系. 2.一般求数字在区间L,R中的一些信息 3.L,R一般很大,通常能达到long long级别. d ...

  9. 处女座和小姐姐(三)(数位dp)

    链接:https://ac.nowcoder.com/acm/contest/329/G 来源:牛客网 题目描述 经过了选号和漫长的等待,处女座终于拿到了给小姐姐定制的手环,小姐姐看到以后直呼666! ...

随机推荐

  1. matlab产生很多个相同的数字

    如产生100行1列的0.5: ones(100,1)*0.5:

  2. [SQL类] SQL优化大全(推荐)

    概要 优化的理由 1. 大小写对SQL语句的影响(ORACLE) 2. 尽量使用(NOT) EXISTS 替代( NOT)IN这样的操作 3. 在海量查询时尽量少用格式转换 4. 查询海量数据是,可以 ...

  3. 目标检测 — Inception-ResNet-v2

    这篇文章介绍的网络有Inception V1.Inception V2.Inception V3.Inception V4与Inception-ResNet-V2. 1.Inception V1 主要 ...

  4. 为什么jdk1.8不支持sql.append,该如何解决

    StringBuilder sql = new StringBuilder("SELECT ID,COMMAND,DESCRIPTION,CONTENT FROM message where ...

  5. kettle文件以邮件附件的形式发送报告

    将从表中导出的excel文件以邮件附件的形式发送报告 step1: 导出文件file1.xls step2: add filename to result将文件添加到结果 step3: 发送邮件

  6. Linux syslogd

    /********************************************************************************** * Linux syslogd ...

  7. Gym 101142 I.Integral Polygons(计算几何)

    题意:给定一个凸包,现在让你连接凸包上两点,把凸包变为两个多边形,满足两个多边形的面积都是整数. 思路:我们知道整点的三角形面积S=叉积/2,则S要么是整数,要么是整数+0.5.那么多边形有多个三角形 ...

  8. JS undefined

    undefined表示"缺少值",就是此处应该有一个值,但是还没有定义.典型用法是: (1)变量被声明了,但没有赋值时,就等于undefined. (2) 调用函数时,应该提供的参 ...

  9. 洛谷 4178 Tree——点分治

    题目:https://www.luogu.org/problemnew/show/P4178 点分治.如果把每次的 dis 和 K-dis 都离散化,用树状数组找,是O(n*logn*logn),会T ...

  10. UVA624(01背包记录路径)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...