站外题求助

灌水区

时间限制和数据范围说一下啊,要不然直接四个循环暴力出答案就彳亍(我竟然第一时间就是这么想的)
by Ge_BeatBox_Qy @ 2024-03-27 20:48:52


@ OIer_hjh
by Ge_BeatBox_Qy @ 2024-03-27 20:49:21


@[OIer_hjh](/user/925818) 预处理<=n的所有完全平方数,然后DP ```cpp #include<iostream> using namespace std; int n,a[10005],cnt,dp[1000005]; int main() { scanf("%d",&n); for(int i=0;i*i<=n;i++)a[++cnt]=i*i; for(int i=0;i<=n;i++) { for(int j=1;j<=cnt;j++) { dp[j+a[i]]=dp[j]+1; } } printf("%d",dp[n]); return 0; } ```
by yinbe2 @ 2024-03-27 23:32:50


@[OIer_hjh](/user/925818) $O(n\sqrt{n})$ 能过吧
by yinbe2 @ 2024-03-27 23:34:30


@[yinbe2](/user/1285691) 这个有问题啊 输入1000输出的0
by OIer_hjh @ 2024-03-29 07:03:01


@[Ge_BeatBox_Qy](/user/726089) 应该是n<=1e5
by OIer_hjh @ 2024-03-29 07:03:52


|