题意

给出n根木棍,要你拼一个最大的数,并且这个数是m的倍数。

题解

显然越长的数越大。设\(dp[i][j]\)表示用i根木棍并且\(mod m = j\)的最大长度。

我们很容易想出dp方程,再用nxt数组存储方案。

#include <cstdio>
#include <cstring> const int N = 105, M = 3005;
int dp[N][M], nxt[N][M];
const int a[] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 }; int ina; char inc;
inline int geti() {
while ((inc = getchar()) < '0' || inc > '9'); ina = inc - '0';
while ((inc = getchar()) >= '0' && inc <= '9') ina = (ina << 3) + (ina << 1) + inc - '0';
return ina;
} int main() {
int Case = 0, n, m, i, j, k, _i, _j, maxlen;
while (n = geti()) {
m = geti(); maxlen = 0;
memset(dp, -1, sizeof dp);
memset(nxt, -1, sizeof nxt);
dp[0][0] = 0;
for (i = 0; i < n; ++i)
for (j = 0; j < m; ++j)
if (~dp[i][j]){
for (k = 9; ~k; --k)
if (i + a[k] <= n) {
_i = i + a[k], _j = (j * 10 + k) % m;
if (dp[i][j] + 1 > dp[_i][_j]) {
dp[_i][_j] = dp[i][j] + 1;
if (dp[_i][_j] > maxlen && (!_j)) maxlen = dp[_i][_j];
}
}
}
for (i = n; ~i; --i)
for (j = 0; j < m; ++j)
if (~dp[i][j]) {
if ((dp[i][j] ^ maxlen) || j) {
for (k = 9; ~k; --k)
if (i + a[k] <= n){
_i = i + a[k], _j = (j * 10 + k) % m;
if (dp[_i][_j] == dp[i][j] + 1 && (~nxt[_i][_j])) {
nxt[i][j] = k; break;
}
}
} else nxt[i][j] = 10;
}
printf("Case %d: ", ++Case);
if (maxlen){
i = 0, j = 0;
while (nxt[i][j] ^ 10) {
printf("%d", nxt[i][j]);
_i = i + a[nxt[i][j]]; _j = (j * 10 + nxt[i][j]) % m;
i = _i, j = _j;
}
puts("");
} else puts((n >= a[0]) ? "0" : "-1");
}
}

此题我还在网上看见了一个神解法,还没验证是不是对的。

http://blog.csdn.net/iwinstone/article/details/1477773

hdu2929 Bigger Is Better的更多相关文章

  1. HDU2929 Bigger is Better[DP 打印方案 !]

    Bigger is Better Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  2. spark - tasks is bigger than spark.driver.maxResultSize

    Error ERROR TaskSetManager: Total size of serialized results of 8113 tasks (1131.0 MB) is bigger tha ...

  3. MYSQL 内存报错 Use 'mysqld --thread_stack=#' to specify a bigger stack.

    今天在使用mysql的过程中,连接数据库始终无法成功 最后发现是数据库无法执行增加修改的操作 :错误代码 Thread stack overrun:  11552 bytes used of a 13 ...

  4. 数据库执行sql报错Got a packet bigger than 'max_allowed_packet' bytes及重启mysql

    准备在mysql上使用数据库A,但mysql5经过重装后,上面的数据库已丢失,只得通过之前备份的A.sql重新生成数据库A. 1.执行sql报错 在执行A.sql的过程中,出现如下错误:Got a p ...

  5. HDOJ 2929 Bigger is Better

    DP....好难的DP... Bigger is Better Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  6. don't forget the bigger picture

    Imagine a circle that contains all of human knowledge: By the time you finish elementary school, you ...

  7. Got a packet bigger than 'max_allowed_packet' bytes

    昨天用导入数据的时候发现有的地方有这个错误.后来才发现我用RPM包装的MYSQL配置文件里面有old_passwords=1去掉就可以了. Got a packet bigger than ‘max_ ...

  8. Navicat导入数据时发生了报错 --- 1153 - Got a packet bigger than 'max_allowed的处理办法

    今天我在使用Navicat导入.sql文件数据时,发现本来是80万条的数据,结果只导入了10万条左右,而且在其错误信息日志中,我发现了这样一条错误:1153 - Got a packet bigger ...

  9. Navicat 导入数据报错 --- 1153 - Got a packet bigger than 'max_allowed_packet' bytes

    在用Navicat导入SQL文件时报错:MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes 查了 ...

随机推荐

  1. RMAN-03002, RMAN-06059, ORA-19625 and ORA-27037 When Running RMAN Backup of Archivelogs

    RMAN备份数据库时,出现下面错误错误信息: Starting backup at 25-MAY-15 current log archived allocated channel: ORA_DISK ...

  2. DPA 9.1.85 升级到DPA 10.0.352流程

    SolarWinds DPA的升级其实是一件非常简单的事情,这里介绍一下从DPA 9.1.95升级到 DPA 10.0.352版本的流程.为什么要升级呢? DPA给用户发的邮件已经写的非常清楚了(如下 ...

  3. SQL SERVER中隐式转换的一些细节浅析

    其实这是一篇没有技术含量的文章,精通SQL优化的请绕道.这个缘起于在优化一个SQL过程中,同事问了我一个问题,为什么SQL中存在隐式转换,但是执行计划没有变? 我思索了一下,觉得这个问题也有点意思,说 ...

  4. 从AdventureWorks学习数据库建模——保留历史数据

    在业务需求中,经常需要我们在系统中能够记录历史信息,能够查看到历史变动情况,这时我们可以通过增加开始结束时间字段来记录数据的历史版本.对数据的历史记录主要分为:关系.属性历史,实体历史和变更历史. 关 ...

  5. PHP笔记(HTML篇)

    学过很多语言,最近终于决定要学PHP了. 学习PHP,首先总要学习HTML,那么,我也从HTML开始吧! 首先学习任何编程语言,看再多书,都离不开它——帮助文档 HTML帮助文档:http://pan ...

  6. JavaScript的写类方式(6)

    时间到了2015年6月18日,ES6正式发布了,到了ES6,前面的各种模拟类写法都可以丢掉了,它带来了关键字 class,extends,super. ES6的写类方式 // 定义类 Person c ...

  7. 【php+mysql】博客分页制作思路

    1.首先需要初始化设置每页显示的文章数$page_size,mysql数据库中总的文章数$arc_size,页面数$page 2.利用分页公式 (当前页数 - 1 )X 每页条数 , 每页条数Sele ...

  8. PHP_Cli模式初涉——转载一篇

    http://www.cnblogs.com/ellisonDon/archive/2012/11/19/2777523.html http://www.cnblogs.com/ellisonDon/ ...

  9. NopCommerce 增加 Customer Attributes

    预期: Customer 新增一个自定义属性 运行站点 1.Admin -> Settings -> Customer settings -> Customer form field ...

  10. 用CSS开启硬件加速来提高网站性能

    国外一篇文章,有点意思,转载过来,准备尝试下~ 中文地址:http://www.cnblogs.com/rubylouvre/p/3471490.html 原文地址:http://blog.teamt ...