网易雷火游戏后台开发笔试

四道编程,很容易就超时。
第三题神奇的数字,我用的回溯,只过了20%。
有没有大佬指点下,实在想不到别的算法。
#include<bits/stdc++.h>

using namespace std;
int N,S,X;
int ans=0,tmp;
void dfs(int idx,int mul,int sum)
{
if(idx>=3)
{
if(mul%X!=0)
return ;
}
if(sum > S)
return;
if(idx>=N)
{
if(sum == S)
{
ans = (ans+1) % 1000009;
}
return ;
}
for(int i=0;i<10;i++)
{
tmp = (mul%100)*10 + i;
dfs(idx+1,tmp,sum+i);
}
}

int main()
{
cin >> N >> S >> X;
dfs(0,0,0);
cout << ans << endl;
return 0;
}


#网易雷火笔试##网易雷火##笔试题目#
全部评论
有人说用数位dp
点赞 回复
分享
发布于 2020-04-25 17:16
这种回溯指定超时,50个数你要搜10^50次,显然不能
点赞 回复
分享
发布于 2020-04-25 17:43
阅文集团
校招火热招聘中
官网直投

相关推荐

点赞 3 评论
分享
牛客网
牛客企业服务