[luoguP2618] 数字工程(DP)
2017-08-13 20:32
183 查看
离线处理。。。
先线性筛一遍。
直接预处理出所有答案。
注意要用push,用乘法,常数小。
#include <cstdio> #include <cstring> #define N 1000001 #define min(x, y) ((x) < (y) ? (x) : (y)) int n, cnt; int f , prime ; bool notpri ; inline void init() { int i, j; notpri[0] = notpri[1] = 1; for(i = 2; i < N; i++) { if(!notpri[i]) prime[++cnt] = i; for(j = 1; i * prime[j] < N; j++) { notpri[i * prime[j]] = 1; if(!(i % prime[j])) break; } } } int main() { int i, j; init(); memset(f, 127, sizeof(f)); f[1] = 0; for(i = 1; i < N - 1; i++) { f[i + 1] = min(f[i + 1], f[i] + 1); for(j = 1; j <= cnt && i * prime[j] < N; j++) f[i * prime[j]] = min(f[i * prime[j]], f[i] + 1); } while(~scanf("%d", &n)) printf("%d\n", f ); return 0; }
相关文章推荐
- [luoguP1043] 数字游戏(DP)
- LuoguP2602 [ZJOI2010]数字计数【数位dp】By cellur925
- POJ 3176 Cow Bowling(DP 数字三角形)
- [luoguP2224] [HNOI2001]产品加工(背包DP)
- [luoguP1773] 符文之语_NOI导刊2010提高(02)(DP)
- 【数位DP】BZOJ3629数字之积
- [luoguP1947] 笨笨当粉刷匠_NOI导刊2011提高(10)(DP)
- VS2008中MFC中集成对话框工程遇到控件ID变化成4位数字
- gdut Problem G: 等凹数字 (数位dp)
- NOIP2013pj小朋友的数字[DP 最大子段和]
- BZOJ 1799 self 同类分布(数位dp,区间各位数字和能整除原数的数字个数)
- 【bzoj3679】 数字之积 数位dp
- [luoguP1415] 拆分数列(DP)
- NBUT - 1619 - 递增数字 (数位DP)
- 【DP】数字三角形4
- bzoj 1049: 数字序列 dp
- 计蒜客 数字解码 dp
- [BZOJ3611][Heoi2014]大工程(虚树+树形DP)
- DP 数字三角形+找钱问题
- 【BZOJ】1833: [ZJOI2010]count 数字计数(数位dp)