四方定理(洛谷 1586)
2016-09-25 21:23
211 查看
题目描述
四方定理是众所周知的:任意一个正整数n,可以分解为不超过四个整数的平方和。例如:25=12+22+22+42,当然还有其他的分解方案,25=42+32和25=52。给定的正整数n,编程统计它能分解的方案总数。注意:25=42+32和25=32+42视为一种方案。输入输出格式
输入格式:第一行为正整数t(≤100),接下来t行,每行一个正整数n(≤32768)。
输出格式:
对于每个正整数n,输出方案总数。
输入输出样例
输入样例#1:1 2003
输出样例#1:
48
/* 先用暴力搜一遍,全超时,后用O(n^logn)因为常数问题又超时, 题解的四重循环,就是利用了无重复情况的特点,常数很小,也很好理解。 */ #include<cstdio> #include<iostream> #include<cmath> using namespace std; int n; int main() { freopen("jh.in","r",stdin); int T,n; scanf("%d",&T); int ans=0; while(T--) { scanf("%d",&n); ans=0; for(int i=0;i*i*4<=n;i++) for(int j=i;i*i+j*j*3<=n;j++) for(int k=j;i*i+j*j+k*k*2<=n;k++) { int l=n-i*i-j*j-k*k; int s=(int)sqrt(l); if(s*s==l&&s>=k) ans++; } printf("%d\n",ans); } return 0; }
View Code
相关文章推荐
- 洛谷P1586 四方定理
- [DP] Luogu1586 四方定理
- 洛谷 P1586 四方定理
- 洛谷P1586 四方定理
- [luoguP1586] 四方定理(DP 背包)
- 洛谷 P 1387 最大正方形
- BZOJ4299 & CC FRBSUM:ForbiddenSum & BZOJ4408 & 洛谷4587 & LOJ2174:[FJOI2016]神秘数——题解
- 洛谷 P 2756 飞行员配对方案问题
- 洛谷P4240 毒瘤之神的考验 【莫比乌斯反演 + 分块打表】
- 洛谷p1725 露琪诺 单调队列优化的DP
- 洛谷 P1144 最短路计数
- 2017洛谷3月丧病月赛思考记录
- 洛谷P3386 【模板】二分图匹配
- 洛谷 P1197 [JSOI2008]星球大战
- 洛谷P3901 数列找不同(莫队)
- 洛谷 P2801 教主的魔法
- 【AC自动机】【树状数组】【dfs序】洛谷 P2414 [NOI2011]阿狸的打字机 题解
- 【洛谷】3375 KMP字符串匹配
- [洛谷P4234] 最小差值生成树
- 洛谷 P1722 矩阵 II