HDU6831 Fragrant numbers(区间dp)2020杭电多校第六场
Sample Input
3
520
1
2
Sample Output
6
1
2
题意:
“1145141919” 的无穷串,给出一个n,要求选最少的num,使得前num个数中间添加任意括号、加号、乘号,计算结果等于n。
题解:
区间dp+预处理
dp[i][j][val]:[i,j]区间内是否能计算出valval。
于是可得转移方程:
dp[i][j][v1+v2]=dp[i][mid][v1]+dp[mid+1][j][v2]
dp[i][j][v1∗v2]=dp[i][mid][v1]*dp[mid+1][j][v2]
最多只需要前12位就能构造出所有数,除了3、7。
打表法:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
Code2:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include