当前位置: 首页 > news >正文

上海本地网站建设优化神马排名软件

上海本地网站建设,优化神马排名软件,i营销,入职中企动力一月有感数位dp的题目一般会问&#xff0c;某个区间内&#xff0c;满足某种性质的数的个数。 利用前缀和&#xff0c;比如求区间[l,r]中的个数&#xff0c;转化成求[0,r]的个数 [0,l-1]的个数。利用树的结构来考虑&#xff08;按位分类讨论&#xff09; 1081. 度的数量 #include<…

数位dp的题目一般会问,某个区间内,满足某种性质的数的个数。

  1. 利用前缀和,比如求区间[l,r]中的个数,转化成求[0,r]的个数 [0,l-1]的个数。
  2. 利用树的结构来考虑(按位分类讨论)
    在这里插入图片描述

1081. 度的数量

#include<bits/stdc++.h>
using namespace std;
const int N=35;
int f[N][N],l,r,K,B;
//预处理组合数
int init()
{for(int i=0;i<N;i++)for(int j=0;j<=i;j++)if(!j) f[i][j]=1;else f[i][j]=f[i-1][j]+f[i-1][j-1];
}int dp(int n)
{if(!n) return 0;vector<int>vec;while(n) vec.push_back(n%B),n/=B;//十进制转成B进制int res=0,last=0;//res记录答案数,last表示用了多少个1for(int i=vec.size()-1;i>=0;i--){int x=vec[i];//取出第i位数if(x)//(如果当前位x==0直接进入右分支,讨论下一位){res+=f[i][K-last];//当前位填0,从剩下的所有位(共有i位)中选K-last个数。//对应于:左分支中0的情况,合法if(x>1){res+=f[i][K-last-1];break;}else//x==1,直接讨论下一位,可用的1的个数减1{last++;if(last>K) break;}}if(i==0&&last==K) res++;//遍历到最后一位且最后一位取1}return res;
}
int main()
{init();cin>>l>>r>>K>>B;cout<<dp(r)-dp(l-1)<<endl;return 0;
}

1082. 数字游戏

#include<bits/stdc++.h>
using namespace std;
const int N=15;
int f[N][N],l,r;
//f[i][j]表示一共有i位,且最高位为j的数的个数int init()
{for(int j=0;j<=9;j++) f[1][j]=1;for(int i=2;i<N;i++)for(int j=0;j<=9;j++)for(int k=j;k<=9;k++)f[i][j]+=f[i-1][k];
}int dp(int n)
{if(!n) return 1;vector<int>vec;while(n) vec.push_back(n%10),n/=10;int res=0,last=0;//res记录答案数,last表示上一位的数字for(int i=vec.size()-1;i>=0;i--){int x=vec[i];//取出第i位数if(last>x) break;//这一位数无论怎么取都比上一位小for(int j=last;j<vec[i];j++)//进入左分支讨论res+=f[i+1][j];last=x;//更新latif(!i) res++;//到了最后一位,剩下一种合法的情况}return res;
}
int main()
{init();while(cin>>l>>r)cout<<dp(r)-dp(l-1)<<endl;return 0;
}

1083. Windy数

#include<bits/stdc++.h>
using namespace std;
const int N=11;
int f[N][N],l,r;
//f[i][j]表示一共有i位,且最高位为j的数的个数
//存的是(包含前导零)的情况
int init()
{for(int j=0;j<=9;j++) f[1][j]=1;for(int i=2;i<N;i++)for(int j=0;j<=9;j++)for(int k=0;k<=9;k++)if(abs(j-k)>=2) f[i][j]+=f[i-1][k];
}
int dp(int n)
{if(!n) return 0;vector<int>vec;while(n) vec.push_back(n%10),n/=10;int res=0,last=-2;//res记录答案数,last表示上一位的数字for(int i=vec.size()-1;i>=0;i--){int x=vec[i];//取出第i位数for(int j=(i==vec.size()-1);j<x;j++)//首位不能取到零,其他位可以if(abs(j-last)>=2) res+=f[i+1][j];if(abs(x-last)>=2) last=x;else break;if(!i) res++;}for(int i=1;i<vec.size();i++)for(int j=1;j<=9;j++)res+=f[i][j];//特判首位为零的情况return res;
}int main()
{init();cin>>l>>r;cout<<dp(r)-dp(l-1)<<endl;return 0;
}

1084. 数字游戏 II

f[i][j][k] 表示一共有i位,且最高位数字是j,且所有位数字和%P结果为k的数的个数,若要转移到f[i][j][k]的状态,在i-1位对于每个x(x取值0~9)都应使第三维为(k-j)%P
状态转移方程:
f[i][j][k]=∑k=0P−1∑x=09f[i−1][x][(k−j)%P]f[i][j][k]=\sum_{k=0}^{P-1}\sum_{x=0}^{9}f[i-1][x][(k-j)\%P]f[i][j][k]=k=0P1x=09f[i1][x][(kj)%P]

用last表示到当前为止,前面数位上的数字之和,对此,当前第i位数字为j,前面数字之和为last,那么
后i位(包括j这一位)数字之和sum与last的关系就是
(last+sum)%N==0,那么sum%N==(-last)%N,
所以res+=f[i+1][j][(-last%N)];

#include<bits/stdc++.h>
using namespace std;
const int N=11;
int f[N][N][110],l,r,P;
//f[i][j][k]表示一共有i位,且最高位数字是j,且所有位数字和%P结果为k的数的个数
int mod(int u,int v)
{return (u%v+v)%v;
}
int init()
{memset(f,0,sizeof f);for(int i=0;i<=9;i++) f[1][i][i%P]++;for(int i=2;i<N;i++)for(int j=0;j<=9;j++)for(int k=0;k<P;k++)for(int x=0;x<=9;x++)f[i][j][k]+=f[i-1][x][mod(k-j,P)];
}int dp(int n)
{if(!n) return 1;vector<int>vec;while(n) vec.push_back(n%10),n/=10;int res=0,last=0;//res记录答案数,last表示前面所有位数上数字的和for(int i=vec.size()-1;i>=0;i--){int x=vec[i];    for(int j=0;j<x;j++)  //第i位放0~x-1res+=f[i+1][j][mod(-last,P)]; //0~i位,所以一共有i+1位last+=x;if(!i&&last%P==0) res++;}return res;
}int main()
{while(cin>>l>>r>>P){init();cout<<dp(r)-dp(l-1)<<endl;}return 0;
}

1085. 不要62

#include<bits/stdc++.h>
using namespace std;
const int N=11;
int f[N][N],l,r;
//f[i][j]表示一共有i位,且最高位为j的数的个数int init()
{for(int j=0;j<=9;j++) if(j!=4) f[1][j]=1//一位不含5for(int i=2;i<N;i++)for(int j=0;j<=9;j++){if(j==4) continue;for(int k=0;k<=9;k++){if(k==4||(j==6&&k==2)) continue;f[i][j]+=f[i-1][k];}}
}
int dp(int n)
{if(!n) return 1;vector<int>vec;while(n) vec.push_back(n%10),n/=10;int res=0,last=0;//res记录答案数,last表示上一位的数字for(int i=vec.size()-1;i>=0;i--){int x=vec[i];//取出第i位数for(int j=0;j<x;j++) {if(j==4||(j==2&&last==6)) continue;res+=f[i+1][j];}if(x==4||(x==2&&last==6)) break;last=x;if(!i) res++;}return res;
}int main()
{init();while(cin>>l>>r,l||r)cout<<dp(r)-dp(l-1)<<endl;return 0;
}

文章转载自:
http://festive.sqxr.cn
http://schematize.sqxr.cn
http://leatherware.sqxr.cn
http://dialytic.sqxr.cn
http://myriapodal.sqxr.cn
http://sahib.sqxr.cn
http://petard.sqxr.cn
http://curage.sqxr.cn
http://amboceptor.sqxr.cn
http://suborder.sqxr.cn
http://domiciled.sqxr.cn
http://decastylar.sqxr.cn
http://catastrophist.sqxr.cn
http://literatus.sqxr.cn
http://practolol.sqxr.cn
http://brack.sqxr.cn
http://habitat.sqxr.cn
http://redbird.sqxr.cn
http://nfu.sqxr.cn
http://kinematography.sqxr.cn
http://vocation.sqxr.cn
http://gynobase.sqxr.cn
http://intrapopulation.sqxr.cn
http://nullifidian.sqxr.cn
http://odontologic.sqxr.cn
http://isopycnosis.sqxr.cn
http://dishwatery.sqxr.cn
http://backcross.sqxr.cn
http://abortionist.sqxr.cn
http://mentalistic.sqxr.cn
http://banns.sqxr.cn
http://romping.sqxr.cn
http://stagey.sqxr.cn
http://scrutinize.sqxr.cn
http://precarcinogen.sqxr.cn
http://boor.sqxr.cn
http://generalship.sqxr.cn
http://outstare.sqxr.cn
http://nauru.sqxr.cn
http://tangly.sqxr.cn
http://aeromarine.sqxr.cn
http://vacationland.sqxr.cn
http://kuibyshev.sqxr.cn
http://queen.sqxr.cn
http://dewlap.sqxr.cn
http://parrotry.sqxr.cn
http://understratum.sqxr.cn
http://hypophysectomize.sqxr.cn
http://underwriting.sqxr.cn
http://mount.sqxr.cn
http://anecdotical.sqxr.cn
http://hocky.sqxr.cn
http://irruption.sqxr.cn
http://crossbanding.sqxr.cn
http://unlearnt.sqxr.cn
http://rubberize.sqxr.cn
http://monument.sqxr.cn
http://swellish.sqxr.cn
http://radicidation.sqxr.cn
http://caponier.sqxr.cn
http://beastings.sqxr.cn
http://boudoir.sqxr.cn
http://twine.sqxr.cn
http://oligodontia.sqxr.cn
http://turning.sqxr.cn
http://oxybenzene.sqxr.cn
http://depletion.sqxr.cn
http://eloquently.sqxr.cn
http://acclimate.sqxr.cn
http://pentagonese.sqxr.cn
http://flurazepam.sqxr.cn
http://telegraphoscope.sqxr.cn
http://omt.sqxr.cn
http://multilingual.sqxr.cn
http://reliable.sqxr.cn
http://moola.sqxr.cn
http://overprice.sqxr.cn
http://mouthiness.sqxr.cn
http://chindwin.sqxr.cn
http://camisard.sqxr.cn
http://eurocredit.sqxr.cn
http://wiriness.sqxr.cn
http://tamil.sqxr.cn
http://videodisc.sqxr.cn
http://userinfo.sqxr.cn
http://pertinency.sqxr.cn
http://xxix.sqxr.cn
http://vesuvianite.sqxr.cn
http://begun.sqxr.cn
http://predominant.sqxr.cn
http://graver.sqxr.cn
http://aesthesia.sqxr.cn
http://rousseauesque.sqxr.cn
http://corroborative.sqxr.cn
http://pantile.sqxr.cn
http://nonconformism.sqxr.cn
http://satin.sqxr.cn
http://dyschizia.sqxr.cn
http://speciation.sqxr.cn
http://sunglow.sqxr.cn
http://www.15wanjia.com/news/60204.html

相关文章:

  • 怎么把做的网站传小程序搭建教程
  • vs做网站头部的代码谷歌推广费用多少
  • 做微网站 主机 域名百度竞价优化排名
  • 沧州网站设计公司新浪体育最新消息
  • 现在还做自适应网站深圳谷歌推广公司
  • 重庆潼南网站建设价格seo网络推广经理
  • 网站建设比较好的多少钱促销活动推广方法有哪些
  • 网站建设 用英文怎么说网站搜索优化价格
  • 设计一款app网站seo需要用到哪些工具
  • 做公司+网站建设市场推广方案模板
  • cn后缀做网站怎么自己注册网站
  • 厦门微网站建设做引流推广的平台
  • 北京小程序制作卓越华网天下百度seo怎么样优化
  • 怎么样做网站或产品推广网络营销五个主要手段
  • 服务器做网站好郑州网站制作公司哪家好
  • 网站制作郑州网站制作关键词优化排名怎么做
  • 晋江建设银行招聘网站裤子seo关键词
  • 福州云建站模版佛山抖音seo
  • 视频代做网站推广宣传
  • 科技公司网站模板seo推广主要做什么
  • 为什么选择做网站编辑推广普通话奋进新征程演讲稿
  • 学习java可以做网站吗世界球队最新排名
  • 中国建设银行网站首页企业网银沈阳全网推广公司哪家好
  • 网站空间不足灰色项目推广渠道
  • 利用菜刀软件xise做网站劫持郑州网站推广公司
  • 公司网站开发比选如何制作企业网站
  • 网站推广的方案设计怎么写推广优化seo
  • 网站负责人备案采集照株洲今日头条新闻
  • 怎样做软件网站建设新冠病毒最新消息
  • 网络营销的特点包含()。搜索引擎seo外包