求一道动态规划题目的思路,没有思路Ing

flyinghawl 2010-06-05 04:50:27
描述

如上图所示,我们可以用不同数量的火柴排成0~9这10个数字。现在这个问题需要让聪明的你来计算一下,给你N根火柴,总共可以组合成多少个被M取余后结果是素数的数字。
注意,N根火柴都要用上,另外,除了0,其他数字均不能出现前导零。
输入
第一行有一个正整数T,表示有T组测试数据。
接下来T行每一行表示一组测试数据,每行包含空格隔开的两个正整数N和M。
其中:
T < =20,
N, M <=10000并且M*N<=1000000
输出
对于每一个测试数据,请输出一行,包含一个数,即结果对1000000007取模的值。
样例输入
4
4 15
20 4
6 10
6 20
样例输出
1
6982
1
2
...全文
193 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanster28_ 2010-06-05
  • 打赏
  • 举报
回复
dp[n][k]表示n跟火柴可以组合的数中模m余k的个数

dp[n+need[j]][k*10+j] += dp[n][k] 表示用need[j]跟火柴组成了j,填到n的末尾
n原来是123,现在就变为123*10+j = 123j

组合成123j的有多种方式,所以用+= 初始的时候都为0,然后初始化几个初始值即可
fanster28_ 2010-06-05
  • 打赏
  • 举报
回复
状态方程在代码中一目了然
#include <stdio.h>
#include <memory.h>

const int need[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6},mod = 1000000007,range = 10005;
bool isnp[range];
int dp[1010005];

inline void add(int &a,int b)
{
a+=b;
if (a>=mod) a-=mod;
}

int main()
{
int t, n, m, i, j, k, res;
isnp[0]=isnp[1]=true;
for (i=2; i<range; i++)
if (!isnp[i])
for (j=2*i;j<range;j+=i)
isnp[j]=true;
for(scanf("%d",&t); t; --t)
{
scanf("%d %d", &n, &m);
memset(dp, 0, sizeof(dp));
for (i = 1; i < 10; i++) //因为前导0不算dp[6][0]=0
dp[need[i] * m + (i % m)]++;
for (i = 0; i < n; i++)
for (j = 0; j < 10; j++) if (i + need[j] <= n)
for (k = 0; k < m; k++)
add(dp[(i + need[j]) * m + (k * 10 + j) % m],dp[i * m + k]);
for (i=res=0; i < m; i++) if (!isnp[i])
add(res,dp[n * m + i]);
printf("%d\n", res);
}
return 0;
}
qq120848369 2010-06-05
  • 打赏
  • 举报
回复
太智商了,随便看看就行了.
flyinghawl 2010-06-05
  • 打赏
  • 举报
回复
原题的地址:
http://poj.youdao.com/nanti3/C/
详情可查看下方数据集可视化效果。 【数据集概况】 · 检测类别(中文):[中央处理器(CPU)] · 训练集:810 张 · 验证集:82 张 · 测试集:40 张 · 总计:932 张 该数据集聚焦于工业制造环境中中央处理器的精准识别,通过多背景、多光照条件下的图像采集,构建了覆盖典型生产场景的高质量样本库。数据集中中央处理器以标准封装形态呈现,背景涵盖金属台面、彩色渐变板及纹理表面,充分模拟实际生产线中的视觉干扰因素,为自动化质检与智能分拣系统提供了可靠的数据支撑。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 37 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9650** mAP50-95 | 0.9173 Precision | 0.9967 Recall | 0.9647 train/box_loss | 0.4580 train/cls_loss | 0.2414 val/box_loss | 0.3658 val/cls_loss | 0.2987 【训练过程分析】 37 轮训练后 mAP50 达到 0.9650,模型收敛良好。Loss 曲线前段快速下降,后段趋于平稳,val_loss 无反弹,没有明显过拟合。mAP50-95 为 0.9173,和 mAP50 差距仅 0.05,框的定位精度也很扎实。 【模型性能评估】 Precision 0.9967、Recall 0.9647,精召双高,模型对中央处理器的检测能力强。 【预测效果展示】 验证集预测效果较好,检测框基本准确覆盖中央处理器,置信度整体偏高。 【改进建议】 1...

33,025

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧