求优化
  • 板块题目总版
  • 楼主houpingze
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/10/13 22:18
  • 上次更新2023/11/5 10:49:06
查看原帖
求优化
253765
houpingze楼主2020/10/13 22:18

RT,题面:

题目描述 Description
在所有n的拆分方案中,满足所有加数都是平方数的方案有多少?

输入描述 Input Description
一个正整数n。

输出描述 Output Description
满足条件的方案数。

样例输入 Sample Input
【输入样例】
5
 
样例输出 Sample Output
【输出样例】
2

【数据范围】
20%的数据,1≤n≤10;
50%的数据,1≤n≤50;
80%的数据,1≤n≤800;
100%的数据,1≤n≤2000。

我的代码:

#include<iostream>
using namespace std;
int cnt,n,a[2010];
void dfs(int x,int ans){
    if(ans==n) {
        cnt++;
        return ;
    }
    if(ans>n) return ;
    for(int i=x;i*i<=n-ans;++i) dfs(i,ans+i*i); 
}
int main(){
    cin>>n;
    dfs(1,0);
    cout<<cnt;
    return 0;
}//爆搜+剪枝 65pts 

有可能优化到80pts吗(使用dfs)

2020/10/13 22:18
加载中...