gpt4 book ai didi

c - 为什么我在 Lightoj 1176 问题上遇到 TLE?

转载 作者:行者123 更新时间:2023-11-30 18:44:23 26 4
gpt4 key购买 nike

问题:Ekka 和他的 friend Dokka 决定买一个蛋糕。他们都喜欢蛋糕,这就是为什么他们买了蛋糕后想分享蛋糕。顾名思义,Ekka 非常喜欢奇数,Dokka 非常喜欢偶数,他们想分蛋糕,让 Ekka 分到 N 平方厘米,Dokka 分到 M 平方厘米,其中 N 是奇数。并且 M 是偶数。 N和M均为正整数。

他们想要划分蛋糕,使得 N * M = W,其中 W 是他们设定的冲劲因子。现在你知道了他们的潇洒因素,你必须看看他们是否能买到想要的蛋糕。

输入输入以整数T(≤10000)开头,表示测试用例的数量。

每种情况都包含一个整数 W (2 ≤ W < 2^63)。并且 W 不会是 2 的幂。

输出对于每个案例,首先打印案例编号。如果他们买不到想要的蛋糕,就打印“不可能”。如果他们能买这样的蛋糕,你就必须打印N和M。如果有多个解决方案,则打印M尽可能小的结果

时间限制:2秒

我尝试过示例输入并得到与输出相同的结果。

示例输入

3

10

5

12

示例输入的输出

案例1:5 2

情况2:不可能

案例3:3 4

我的代码:

   #include<stdio.h>
#include<math.h>
int main()
{
int t,k;
scanf("%d",&t);
for(k=1;k<=t;k++)
{


int a,i,j=1,c;

scanf("%d",&a);

for(i=2;i<sqrt(a)+2;i++)
{
if(a%i==0 && i%2!=0)

c=i;
}
int b=a/c;
if(b%2==0 && b*c==a)
printf("Case %d: %d %d\n",k,c,b);
else
printf("Case %d: Impossible\n",k);



}
return 0;
}

Light OJ 为我的解决方案提供了 TLE。

最佳答案

您的解决方案是给予 TLE

可能您需要稍微优化一下。

我建议的一件事是:

如果数字 W 不能被 2 整除,则打印“Impossible”

如果数字 W 能被 2 整除,则继续将该数字除以 2,直到它变成奇数。

因此,生成的奇数将是一份,W/odd_number 将是另一份。

关于c - 为什么我在 Lightoj 1176 问题上遇到 TLE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58335858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com