poj1543 Perfect Cubes (搜索,水题)

来源:互联网 发布:mac用office 编辑:程序博客网 时间:2024/05/16 02:05
题意:给定n,在a<=n的情况下,求使得a^3=b^3+c^3+d^3成立的abcd,且依次不递减。
思路:暴搜就好。刚开始用pow(x,3)tle了,要先记录下x^3的值。

#include <iostream>#include <cstdio>#include <cmath>#include <queue>#include <stack>#include <algorithm>#include <cstring>#include <utility>#define ll long long#define INF 0x3f3f3f3fusing namespace std;int n,a,b,c,d,an,bn,cn,dn;int num[105];void dfs(int sum,int t){  if(t==1)  {    for(b=2;b<=100;b++)      dfs(sum-num[b],t+1);  }  if(t==2)  {    for(c=b;c<=100;c++)      dfs(sum-num[c],t+1);  }  if(t==3)  {    for(d=c;d<=100;d++)      if(sum==num[d])        printf("Cube = %d, Triple = (%d,%d,%d)\n",a,b,c,d);  }}int main(){  for(int i=2;i<=100;i++) num[i]=i*i*i;     //打表  while(scanf("%d",&n)!=EOF)  {    for(a=2;a<=n;a++)      dfs(num[a],1);  }  return 0;}

0 0
原创粉丝点击