POJ 1543

简介: //poj1011无限wa,做道简单的,直接暴力竟然AC啦 //大意:输出所有满足a^3 = b^3 + c^3 + d^3 的a #include #include using namespace std; int m(int m) { return m*m*m...
//poj1011无限wa,做道简单的,直接暴力竟然AC啦 
//大意:输出所有满足a^3 = b^3 + c^3 + d^3  的a 
#include <iostream>
#include <cstdlib>
using namespace std;
int m(int m)
{
    return m*m*m;
}
int main()
{
    int i,j,k,n,p;
    cin>>n;
    for(p=6;p<=n;p++)
    for(i=2;i<=n-1;i++)//已经保证bcd互不相等 
    for(j=i+1;j<=n-1;j++)
    for(k=j+1;k<=n-1;k++)
    if(m(i)+m(j)+m(k)==m(p))
    cout<<"Cube = "<<p<<","<<" Triple = ("<<i<<","<<j<<","<<k<<")"<<endl;
    //system("pause");
    return 0;
}
  
  
  
//ac
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <string.h>
using namespace std;
bool vis[101];
int cute[101];
int res[5];
int T,step=1;
void init()
{
    int i,j;
//原来写成了,i = 10,怪不得一直wa
for(i=1;i<=101;i++) cute[i] = i*i*i; } void dfs(int num,int start,int n) { int i,j,k; if(step==4) { if(num==0) printf("Cube = %d, Triple = (%d,%d,%d)\n",n, res[1], res[2], res[3] ); } else { for(i=start;cute[i]<=num;i++)//必须有等号,否则无法结束(成立时的最后一个数) if(!vis[i]) { vis[i] = true; res[step] = i; step++; dfs(num-cute[i],i+1,n); step--; vis[i] = false; } } } int main() { int i,j,k; init(); cin>>T; memset(vis,false,sizeof(vis)); for(i=6;i<=T;i++) { step = 1; dfs(cute[i],2,i); } system("pause"); return 0; }

 

目录
相关文章
|
机器学习/深度学习
棋盘问题 POJ 1321
总时间限制:  1000ms 内存限制:  65536kB 描述 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。
1186 0
POJ 2487 Stamps
Description Background Everybody hates Raymond. He’s the largest stamp collector on planet earth and because of that he always makes fun of all the others at the stamp collector parties.
1067 0
|
机器学习/深度学习
|
算法 计算机视觉
最小割-poj-2914
poj-2914-Minimum Cut Description Given an undirected graph, in which two vertices can be connected by multiple edges, what is the size of the minimum cut of the graph? i.e. how many edges must b
1564 0
|
人工智能 机器学习/深度学习