UVA12105 - Bigger is Better(DP)

通过动态规划(DP)解决UVA12105问题,利用状压DP计算能被m整除的n位数所需的最小火柴数。通过分析转移方程和状态确定方法,确定每位数字的最大值,减少高精度计算。通过预处理和取余运算规律,高效计算每一步的余数,最终得出最大整数的构造方案。
摘要由CSDN通过智能技术生成

题目链接: UVA12105 

【题意】用不超过n(n<=100)根火柴摆一个尽量大的能被m(m<=3000)整除的正整数。

 

【分析】可以用dp[i][j]表示除以m余j的i位数最少需要多少火柴这个状态计算,转移方程是:用dp[i][j]+c[k]来更新dp[i+1][(j*10+k)%m](c[]是每个数字需要花费的火柴数量,k是当前枚举的数字)。可以避免高精度提高效率,但是怎么确定每一位上的数字都是什么呢,需要用dp[i][0]找到最大的i使得dp[i][0]不是INF(初始化dp[][]为INF),这样就可以确定这个最大数字有几位了(位数多的肯定比位数少的大),然后在计算每一位上最大可以是什么数字,从大到小枚举每一位上的数字,第一个使得sum+dp[i-1][s]+c[j]<=n的数字就是该位上的最大值(其中s是去掉这一位上的数字剩下的几位的余数为s时使得这个总的数字能被m整除)。

比如,m = 7,并且已知当前数字位数为3,首先试着让最高位为9,如果可以摆出9ab这样的整数,那么一定是最大的,那么怎样确定能否摆出9ab呢?因为900%7 = 4,所以s&#x

引用和引用[2]提到了一个错误信息"1153 - Got a packet bigger than 'max_allowed_packet' bytes",这是当MySQL客户端或mysqld服务器接收到超过max_allowed_packet字节的信息包时会发出的错误。具体来说,这个错误表示接收到的数据包的大小超出了MySQL配置文件中设置的最大允许大小。这个错误可能会导致插入或导入数据时失败。 要解决这个问题,可以按照以下三个步骤进行操作: 1. 修改MySQL配置文件中的max_allowed_packet值。这个值控制着服务器接收的最大数据包大小。可以通过编辑配置文件(通常是my.cnf或my.ini)并将max_allowed_packet的值增加到足够大的大小来解决这个问题。 2. 重启MySQL服务以使配置更改生效。 3. 重新尝试执行引发错误的操作。现在,MySQL服务器应该能够处理更大的数据包并成功执行操作。 需要注意的是,确保将max_allowed_packet的值设置为适当的大小,以便不会过分消耗服务器资源,并确保操作的成功执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [[Err] 1153 - Got a packet bigger than 'max_allowed_packet' bytes(linux环境).pdf](https://download.csdn.net/download/lvlei19911108/20838930)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Linux下mySQL报错:[Err] 1153 - Got a packet bigger than ‘max_allowed_packet‘ bytes](https://blog.csdn.net/happyzhlb/article/details/127533306)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Naviacat导入sql文件时MySQL报错 Error 1153 - Got a packet bigger than ‘max_allowed_packet‘ bytes](https://blog.csdn.net/weixin_44905544/article/details/127978822)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值