题目链接:

  2713传送门

  1183传送!

题解:

  由于看不懂英文题解(十个单词十一个不认识……),所以只能自己想QAQ。

  其实乱搞就好= =。

  首先我们发现,各位数字乘积要在1e9以下才可能有用,这个很显然。然后发现在1e9以内的满足为各位数字乘积的数只有$5000^+$。我们仿照淘金拉道题的思路。设$f_{(i,j,k)}$表示位数为$i$,第i位数字为$j$,各位数字乘积在$Hash$表里排名为k,转移很好写。然后对于询问的$x$,考虑在$x/Hash_{(k)}$中有多少个满足乘积为$Hash_{(k)}$的即可。

  值得注意的是由于我的码的问题,1应该特判掉。

代码:

 #define Troy 

 #include <algorithm>
#include <cstdio> using namespace std; inline int read(){
int s=,k=;char ch=getchar();
while(ch<''|ch>'') ch=='-'?k=-:,ch=getchar();
while(ch>&ch<='') s=s*+(ch^),ch=getchar();
return s*k;
} typedef long long ll; const int N=6e3; ll Hash[N];int cnt=;
ll f[][][N]; inline int find(ll x){
return upper_bound(Hash+,Hash+cnt+,x)-Hash-;
} inline void init(){
for(ll x=;x<=1e9;x*=)
for(ll y=x;y<=1e9;y*=)
for(ll z=y;z<=1e9;z*=)
for(ll w=z;w<=1e9;w*=)
Hash[++cnt]=w; //cnt=5194
sort(Hash+,Hash+cnt+);
for(int i=;i<=;i++)
f[][i][i]=;
for(int i=;i<=;i++)
for(int k=;k<=cnt;k++)
for(int j=;j<=;j++)
if(Hash[k]%j==){
int x=find(Hash[k]/j);
for(int l=;l<=;l++)
f[i][j][k]+=f[i-][l][x];
}
} int p[],m; inline ll solve(ll x,int pos){
if(x==) return ;
ll t=;
int tt=pos;
m=;while(x) p[++m]=x%,x/=,t*=p[m];
ll ret=;
if(t==Hash[pos]) ret++;
for(int i=;i<m;i++)
for(int j=;j<=;j++)
ret+=f[i][j][pos];
for(int i=m;i;i--){
for(int j=;j<p[i];j++)
ret+=f[i][j][pos];
if(p[i]==) break;
if(Hash[pos]%p[i]!=)
break;
pos=find(Hash[pos]/p[i]);
}
return ret;
} inline ll calc(ll x){
ll ret=;
for(int i=;i<=cnt;i++){
ret+=solve(x/Hash[i],i);
}
return ret;
} int main(){
//freopen("umnozak.in","r",stdin);
//freopen("umnozak.out","w",stdout);
init();
ll L,R;
scanf("%lld%lld",&L,&R);
printf("%lld\n",calc(R)-calc(L-));
}

【BZOJ 2713】[Violet 2]愚蠢的副官&&【BZOJ1183】[Croatian2008]Umnozak——【数位DP】的更多相关文章

  1. BZOJ1183 Croatian2008 Umnozak 【数位DP】*

    BZOJ1183 Croatian2008 Umnozak Description 定义一个数的digit-product是它的各个位上的数字的乘积,定义一个数的self-product是它本身乘以它 ...

  2. BZOJ.3598.[SCOI2014]方伯伯的商场之旅(贪心 数位DP)

    题目链接 先考虑,对于确定的一个数,怎样移动代价最少(或者移到哪个位置最优)? 假设我们都移到下标\(1\)位置(设集合点为\(1\)),那么移动到下标\(2\)与\(1\)相比代价差为:\(下标&l ...

  3. 【BZOJ】1662: [Usaco2006 Nov]Round Numbers 圆环数(数位dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1662 这道题折腾了我两天啊-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 果然 ...

  4. bzoj 3598: [Scoi2014]方伯伯的商场之旅【数位dp】

    参考了这个http://www.cnblogs.com/Artanis/p/3751644.html,好像比一般方法好写 大概思想就是先计算出把所有石子都合并到1位置的代价,这样显然有一些是不优的,然 ...

  5. bzoj 3598 [ Scoi 2014 ] 方伯伯的商场之旅 ——数位DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3598 数位DP...东看西看:http://www.cnblogs.com/Artanis/ ...

  6. 二分+最短路判定 BZOJ 2709: [Violet 1]迷宫花园

    BZOJ 2709: [Violet 1]迷宫花园 Sample Input 5 ######### # # # # # # # #S# # ##### # # ## # # # ### ### ## ...

  7. [BZOJ 1833] [ZJOI2010] count 数字计数 【数位DP】

    题目链接:BZOJ - 1833 题目分析 数位DP .. 用 f[i][j][k] 表示第 i 位是 j 的 i 位数共有多少个数码 k . 然后差分询问...Get()中注意一下,如果固定了第 i ...

  8. [BZOJ 1026] [SCOI 2009] Windy数 【数位DP】

    题目链接:BZOJ - 1026 题目分析 这道题是一道数位DP的基础题,对于完全不会数位DP的我来说也是难题.. 对于询问 [a,b] 的区间的答案,我们对询问进行差分,求 [0,b] - [0,a ...

  9. BZOJ.4513.[SDOI2016]储能表(数位DP)

    BZOJ 洛谷 切了一道简单的数位DP,终于有些没白做题的感觉了...(然而mjt更强没做过这类的题也切了orz) 看部分分,如果\(k=0\),就是求\(\sum_{i=0}^n\sum_{j=0} ...

随机推荐

  1. iOS 博客资源精选

    摘要:记录一些网上非常牛的人写的博文.收藏起来. 以备日后需要时学习备用. 1:iOS中UIWebView的Javascript与Objective-C通信 http://imchao.net/201 ...

  2. ORACLE之TO_DATE (转载)

    转自 http://www.cnblogs.com/anran_guojianjun/archive/2009/09/11/1564535.html 一.在使用Oracle的to_date函数来做日期 ...

  3. easyui 在编辑状态下,动态修改其他列值。

    首先是自定义了一个方法uodateColumn更新列值 /** *自定义的修改列值方法 */ $.extend($.fn.datagrid.methods, { updateColumn: funct ...

  4. Webapck项目开发基本构建及配置

    1.创建项目文件夹 myapp 手动创建myapp,或mkdir myapp 2.cd myapp 3.npm init (初始化项目) 4.一路回车(关于项目信息的填写,可以不写,一路回车即可) 可 ...

  5. Nginx Rewrite详解

    Nginx Rewrite详解 引用链接:http://blog.cafeneko.info/2010/10/nginx_rewrite_note/ 原文如下: 在新主机的迁移过程中,最大的困难就是W ...

  6. sql server求分组最大值,最小值,最大值对应时间,和最小值对应时间

    先创建数据库 CREATE TABLE [dbo].[Students]( [Id] [int] IDENTITY(1,1) NOT NULL, [age] [int] NULL, [name] [n ...

  7. /usr/lib/uwsgi/plugins/python_plugin.so: cannot open shared object file: No such file or directory

    Django uwsgi部署方式下产生这个Bug,后来发现把uwsgi配置ini文件里面的 #plugins = python 把上面这句配置语句注释掉,uwsgi就可以运行了,当然,是正常可用运行状 ...

  8. oracle数据库的备份与还原(本地及远程操作)

    数据的导出 exp qh/qh@qh  file='d:\backup\qh\qh20060526.dmp'  grants=y  full=n  1 将数据库TEST完全导出,用户名system 密 ...

  9. Ocelot中文文档-转换Headers

    Ocelot允许在请求下游服务之前和之后转换头部.目前Ocelot只支持查找和替换.这个功能在Github #190提出.我确定这个功能可以在各个方面发挥作用. 添加到请求 这个功能在GitHub # ...

  10. 基于puppeteer模拟登录抓取页面

    关于热图 在网站分析行业中,网站热图能够很好的反应用户在网站的操作行为,具体分析用户的喜好,对网站进行针对性的优化,一个热图的例子(来源于ptengine) 上图中能很清晰的看到用户关注点在那,我们不 ...