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

windows7建设网站环保局网站建设方案

windows7建设网站,环保局网站建设方案,江苏网站seo,大连哪个企业想做网站1. 题意 给定一个数字范围,把每个数根据数位和放到相应的盒子中;求有最多数字的盒子编号。 2. 题解 这题比较简单,但有较多的解法。 2.1 哈希表 由于最大数为 100000 100000 100000,因此最大的数位和为 45 45 45。我们只需要…

1. 题意

给定一个数字范围,把每个数根据数位和放到相应的盒子中;求有最多数字的盒子编号。

2. 题解

这题比较简单,但有较多的解法。

2.1 哈希表

由于最大数为 100000 100000 100000,因此最大的数位和为 45 45 45。我们只需要开一个大小 46 46 46的更加方便,然后遍历这个范围,计算数位和,相应表项增加,最后求一个最大值就好了。

class Solution {
public:int countBalls(int lowLimit, int highLimit) {auto digitSum = [](int v) {int ans = 0;while (v) {ans += v % 10;v /= 10;}return ans;};vector<int> hs(46, 0);for (int i = lowLimit;i <= highLimit;i++) {hs[digitSum(i)]++;}return *max_element(hs.begin(), hs.end());}
};
2.2 前缀和

数据范围为 1 − 100000 1-100000 1100000,可以预处理出前 k k k个数每个数位和的状态,对于范围 [ a , b ] [a,b] [a,b]的 数位和就可以由 m e m [ b ] − m e m [ a − 1 ] mem[b] -mem[a-1] mem[b]mem[a1]得到。

class Solution {
public:int countBalls(int lowLimit, int highLimit) {array<array<int,46>, 100001> mem{};auto digitSum = [](int v) {int ans = 0;while (v) {ans += v % 10;v /= 10;}return ans;};for (int i = 1;i <= 100000;i++) {mem[i] = mem[i - 1];mem[i][digitSum(i)]++;}int ans = 0;for (int i = 1; i <= 45;i++) {ans = max(ans, mem[highLimit][i] - mem[lowLimit - 1][i]);}return ans;}
};
2.3 数位dp

数位dp入门见数位dp。

这个题目的状态转移方程为
m = ⌊ lg ⁡ n ⌋ a m = ⌊ n / ( 1 0 m ) ⌋ d p [ m ] [ k ] = ∑ i = 0 min ⁡ { a m − 1 , k } d p [ 1 0 m − 1 ] [ k − i ] + d p [ m − a m 1 0 m ] [ k − a m ] m =\lfloor \lg n \rfloor \\ a_m =\lfloor n /(10^{m}) \rfloor \\ dp[m][k]=\sum_{i=0}^{\min\{a_{m}-1,k\}}dp[10^{m-1}][k-i]+dp[m-a_m10^{m}][k-a_{m}] m=lgnam=n/(10m)⌋dp[m][k]=i=0min{am1,k}dp[10m1][ki]+dp[mam10m][kam]

我们可以预先求出 d p [ 1 0 d − 1 ] [ k ] dp[10^{d}-1][k] dp[10d1][k]

d p [ 1 0 d − 1 ] = T [ d ] dp[10^d-1]=T[d] dp[10d1]=T[d]

T [ d ] [ k ] = ∑ i = 0 min ⁡ { k , 9 } T [ d − 1 ] [ k − i ] T[d][k] = \sum_{i=0}^{\min \{k, 9\}}T[d-1][k-i] T[d][k]=i=0min{k,9}T[d1][ki]

下面是递归的代码,看之后能不能补一下递推的。

class Solution {public:static constexpr int MAXPOW = 5;static constexpr int BASE   = 10;static constexpr int MAXSUM = MAXPOW * (BASE - 1);int getRes(int v, int k, const std::array<std::array<int, MAXSUM + 1>, MAXPOW + 1> &dp) {if ( v < 10) {return v >= k ? 1 : 0;}int ans =  0;int digitMost = 1;int ts = BASE;while (ts <= v) {ts *= BASE;digitMost++;}digitMost--;int msb = v / (ts / BASE);int lm =  std::min(msb - 1, k) ;for (int i = 0;i <= lm; i++)ans += dp[digitMost][k - i];int ret = 0;if (msb <= k) {ret += getRes(v - msb * (ts / BASE), k - msb, dp);}return ans + ret;}int countBalls(int lowLimit, int highLimit) {std::array<std::array<int,MAXSUM + 1>, MAXPOW + 1> dp{};for (int i = 0; i < BASE; i++)dp[1][i] = 1;for (int i = 2;i <= MAXPOW; i++) {for (int j = 0; j <= MAXSUM; ++j) {int bd = std::min(BASE - 1, j);for (int k = 0; k <= bd; ++k) {dp[i][j] += dp[i - 1][j - k];}}}int ans = 0;for (int i = 1; i <= MAXSUM;i++) {int nums = getRes(highLimit, i, dp) - getRes(lowLimit - 1, i, dp);ans = std::max(ans, getRes(highLimit, i, dp) - getRes(lowLimit - 1, i, dp));}return ans;}};

Ref

03xf


文章转载自:

http://3gDZYApr.qkqjz.cn
http://jdjBbJMC.qkqjz.cn
http://jxmdZPb3.qkqjz.cn
http://n808IiGu.qkqjz.cn
http://ycRRYMeU.qkqjz.cn
http://qFhEUeBA.qkqjz.cn
http://AITP8USb.qkqjz.cn
http://qoZJ7jJU.qkqjz.cn
http://B4vYuFRV.qkqjz.cn
http://o3sq5e0b.qkqjz.cn
http://hQb5jzfk.qkqjz.cn
http://FP0JXRug.qkqjz.cn
http://rMRRGPwz.qkqjz.cn
http://N4le5OAP.qkqjz.cn
http://bVKxEew0.qkqjz.cn
http://2whX7HFc.qkqjz.cn
http://zfZwxojs.qkqjz.cn
http://hvXlM40U.qkqjz.cn
http://jHbddlRO.qkqjz.cn
http://uKmlJzb4.qkqjz.cn
http://SEVVTyI6.qkqjz.cn
http://sJSi90xu.qkqjz.cn
http://zt4ByoI6.qkqjz.cn
http://1ZY3Obgb.qkqjz.cn
http://7rh5sMRD.qkqjz.cn
http://RwhqxRcX.qkqjz.cn
http://yzCtgTSp.qkqjz.cn
http://QBfNLLep.qkqjz.cn
http://aNe3ukF7.qkqjz.cn
http://vP780sGn.qkqjz.cn
http://www.dtcms.com/wzjs/666220.html

相关文章:

  • 网站开发工作容易出现的失误成都模板网站建设
  • 国内精品在线网站建设wordpress to phonegap
  • 东胜区建设局网站邮轮哪个网站是可以做特价
  • 网站建设需要多少天加盟手机网站源码
  • 类似一起做网站的网站wordpress分类目录浏览权限
  • 设计师推荐网站个人公司网页如何设计
  • 深圳响应式网站建设公司哪里有前端技术培训
  • 谁有那种手机网站如何做网站友情链接
  • 这么做钓鱼网站大腕 网站建设
  • 沈阳建站模板展示有哪些网站可以做设计竞标
  • 房产网站系统源码域名查询备案
  • 会员制网站建设自己有货源怎么找客户
  • 最好的网页设计网站网络综合布线设计方案
  • 免费软文网站哪个公司做网站建设好
  • 张家港网站建设公司html表格菜鸟教程
  • p2vr做的网站怎么再次打开wordpress 不重定向
  • 可以做任务看漫画的漫画网站住房与建设部网站首页
  • 怎么制作公司网站做网站 贴吧
  • 高端网站建设推广北京城建设计集团网站
  • 网站流量50g中国移动crm系统
  • 网站教程天津网页制作网页报价
  • 公司免费网站域名注册哈尔滨网站建设方案
  • 电商网站开发哪家好网站口碑推广
  • 甘井子区城市建设管理局网站汾阳网站建设
  • 云南省建设工程质量协会网站福建做网站
  • vps网站建设免费的200m网站空间
  • 微信公众号的跳转网站怎么做的好吊顶网站
  • 哪有做网站公司拼客多网站多少钱可以做
  • 成都网站建设 小兵义乌电商培训班一般多少钱
  • 江苏哪家做网站排名比较好猎头网站模板