[luoguP2657] [SCOI2009]windy数(数位DP)

2021-02-19 11:20

阅读:441

标签:lan   mat   答案   +=   query   sizeof   amp   str   post   

传送门

 

f[i][j]表示位数为i,第i位为j的windy数的个数

先预处理出f数组。

求的时候先算没有前导0的答案,再算位数和给定的数相同的答案。

 

#include 
#include 
#include 

using namespace std;

int f[15][10], d[15];

inline void init()
{
	int i, j, k;
	for(i = 0; i = 2) f[i][j] += f[i - 1][k];
}

inline int query(int x)
{
	int i, j, ret = 0;
	memset(d, 0, sizeof(d));
	for(; x; x /= 10) d[++d[0]] = x % 10;
	for(i = 1; i = 1; i--)
	{
		for(j = 0; j = 2) ret += f[i][j];
		}
		if(i != d[0] && abs(d[i + 1] - d[i]) 

  

 

[luoguP2657] [SCOI2009]windy数(数位DP)

标签:lan   mat   答案   +=   query   sizeof   amp   str   post   

原文地址:https://www.cnblogs.com/zhenghaotian/p/8316049.html


评论


亲,登录后才可以留言!