题目链接:

  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. Fullpage.js全屏滚动jQuery插件

    兼容性: 支持 IE8+ 及其他现代浏览器. 主要功能: 1.支持鼠标滚动: 2.支持前进后退键盘控制; 3.多个回调函数; 4.支持手机.移动设备; 5.支持窗口缩放自动调整; 6.可设置滚动宽度. ...

  2. MQ队列与哪些机器连接

    1.使用MQ安装用户登录Linux,例如:su - mqm 2.runmqsc Qm1 #Queue 代表要查询的队列3.DISPLAY CONN(*) WHERE(OBJNAME EQ Queue) ...

  3. jquery 加法 乘法运算 精确计算函数

    int类型相加不会出现问题,但小数点相加就会出现问题 //乘法函数 var accMul = function(arg1, arg2){ var m=0,s1=arg1.toString(),s2=a ...

  4. 在Redis Sentinel环境下,jedis该如何配置

    在Redis主从复制架构中,如果master出现了故障,则需要人工将slave提升为master,同时,通知应用侧更新master的地址.这样方式比较低效,对应用侧影响较大. 为了解决这个问题,Red ...

  5. 电商网站开发记录(三) Spring的引入,以及配置详解

    1.web.xml配置注解<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi=& ...

  6. java线程之线程通信

    前面提到多线程操作会有一个资源共享问题. 日常生活中,对于一个超市,有供货商往超市运货,有消费者从超市取货,供货商和消费者都与超市 建立了某种连接,超市就相当于公共资源,而他们的这种行为放到线程上说就 ...

  7. 如何用plugman编辑和添加cordova插件

    1.安装工具 进入nodejs, 安装工具plugman,管理插件,输入命令npm install -g plugman 等待下载安装 2.使用plugman命令生成插件框架 cmd 进入用于生成插件 ...

  8. MVC5 框架 配置 盘古分词

    2018.5.10日记 1.将sql数据库的内容添加到索引库中, public static readonly IndexManager instance; //静态构造函数,CLR只执行一次 sta ...

  9. Kafka安装之 Zookeeper

    一 . Zookeeper 概述        ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它 ...

  10. js万年历,麻雀虽小五脏俱全,由原生js编写

    对于前端来说,我们可能见到最多的就是各种各样的框架,各种各样的插件了,有各种各样的功能,比如轮播啊,日历啊,给我们提供了很大的方便,但是呢?我们在用别人这些写好的插件,框架的时候,有没有试着问一问自己 ...