返回信息流http://poj.org/problem?id=3536 这是poj3536 的一道水题。不知道问题出在哪里
简单来说就是 已知体积,求a,b,c.令得到最小表面积
题目翻译为
啤酒爱好者俱乐部定期聚会。他们恨温暖的啤酒,但俱乐部的冰箱太小,储存足够的啤酒的整个公司。所以他们决定以一种特殊的超级大啤酒的冰箱。新的冰箱应该是一个平行六面体一×B×C和商店恰好n立方体的1×1×1啤酒箱(俱乐部有N个成员)。为了减少损失,冷,冰箱的表面的总面积应尽可能小。
例如,如果冰箱的容量必须是12,可能的变体:
维度表面积
3 2 2 32××
4 3 1 38××
6 2 1 40××
12 1 1 50××
在这种情况下最好的变种是3×2×2。
帮助啤酒爱好者寻找他们的新冰箱的最佳尺寸。
输入
输入文件包含整数N(1≤N≤106)-冰箱的能力。帮助啤酒爱好者寻找他们的新冰箱的最佳尺寸。
输出
输出三个整数:A,B和C -冰箱的最佳尺寸。如果有几个方案,输出任何人。
#include <iostream>
using namespace std;
int main()
{
int n,count=0,a[2000];
int x,y,z;
int sarea,min=1000000;
for(int i=1;i<=n;i++)
if(n%i==0)
a[count++]=i;
for(int i=0;i<count;i++)
for(int j=0;j<count;j++)
for(int k=0;k<count;k++)
if(a[i]*a[j]*a[k]==n)
{
sarea=(a[i]*a[j]+a[i]*a[k]+a[j]*a[k])*2;
if(sum<min)
{
min=sarea;
x=a[i];y=a[j];z=a[k];
}
}
cout<<x<<" "<<y<<" "<<z<<endl;
return 0;
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #81618同步于 2014/8/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
求好心的学长学姐帮忙。代码一直wrong answer
ywg557
2014/8/19镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 deng0515001 的大作中提到: 】
: 远远看去,满满的都是for,这样不超时么
不超时,毕竟剪过一次枝,求了 它的因子。 第一次傻傻的没剪枝,严重超时
【 在 caiyulun 的大作中提到: 】
: 你的min太小了,调大点就行了,我改成1000000000就AC了,亲测。
难道人品差,依旧wrong answer
不可能啊,你看看
Source Code
Problem: 3536 User: caiyulun
Memory: 728K Time: 250MS
Language: G++ Result: Accepted
Source Code
#include <iostream>
using namespace std;
int main()
{
int n,count=0,a[2000];
int x,y,z;
int sarea,min=1000000000;
cin>>n;
for(int i=1;i<=n;i++)
if(n%i==0)
a[count++]=i;
for(int i=0;i<count;i++)
for(int j=0;j<count;j++)
for(int k=0;k<count;k++)
if(a[i]*a[j]*a[k]==n)
{
sarea=(a[i]*a[j]+a[i]*a[k]+a[j]*a[k])*2;
if(sarea<min)
{
min=sarea;
x=a[i];y=a[j];z=a[k];
}
}
cout<<x<<" "<<y<<" "<<z<<endl;
return 0;
}
【 在 ywg557 的大作中提到: 】
: 难道人品差,依旧wrong answer