2014年3月6日

HDU 3555 数位DP

摘要: 题意,问1~n 有多少个数含有49.f[i][0]表示小于等于i位的不含有49数有几个。f[i][1]表示小于等于i位的含有49的数有几个。f[i][2]表示小于等于i位的不含有49,但是最高位是9的数有几个。f[i][0]=f[i-1][0]+f[i-1][0]*9-f[i-1][2]; 第一个f[i-1][0]表示小于i位的所有数。f[i-1][0]*9表示i-1位的数,在第i位有9种可能。也可以理解成最高位可以是0,049就是一个两位数。 f[i][1]=f[i-1][1]*10+f[i-1][2]; f[i][2]=f[i-1][0];49,049,0049是不是重复算了... 阅读全文

posted @ 2014-03-06 20:18 six_god 阅读(230) 评论(0) 推荐(0) 编辑

导航