codeforces 834C The Meaningless Game(数学题)
2018-02-12 08:47
501 查看
传送门:codeforces 834C
题目大意:
两人进行比赛,初始分都为 1,每局选择一个自然数 k,胜者的得分乘以 k^2,败者的得分乘以 k,给出两人的最终得分,问这个得分是否有可能出现。
思路:
正确思路很简单,我主要是想说明一下我之前的思路是怎么错的。
正确思路是将两者的得分相乘,然后开三次方得 x,如果乘积是立方数并且两者的得分都是 x 的倍数,则这个分数有可能出现,反之,没可能。
我的错误思路是将两者的得分分别分解质因数,由于每一轮两者共乘以了 k^3,所以看看两者同一质因子的指数是否为 3 的倍数。由于 1000^3 = 1e9 ,所以理论上只求出 1000以内的质数就可以了。这种思路的错误在于当两者得分都是一个很大的质数时,1000以内质数的质数都是 0,会错判为有可能出现。
注意:
两数乘积大,要用 long long型,另外开三次方可以用 pow(n,1.0/3) 这个函数,不过结果要四舍五入,这个地方我不是很明白为什么要四舍五入,是因为 1.0/3 不精确吗,如果谁懂还请不吝赐教……
代码:#include<stdio.h>
#include<math.h>
typedef long long LL;
int main()
{
int t,a,b;
LL n,x;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&a,&b);
n=(LL)a*b;
x=pow(n,1.0/3)+0.5; //对乘积开三次方并四舍五入
//如果乘积是立方数并且两者得分都是 x 的倍数
if(x*x*x!=n||a%x!=0||b%x!=0) printf("No\n");
else printf("Yes\n");
}
return 0;
}
题目大意:
两人进行比赛,初始分都为 1,每局选择一个自然数 k,胜者的得分乘以 k^2,败者的得分乘以 k,给出两人的最终得分,问这个得分是否有可能出现。
思路:
正确思路很简单,我主要是想说明一下我之前的思路是怎么错的。
正确思路是将两者的得分相乘,然后开三次方得 x,如果乘积是立方数并且两者的得分都是 x 的倍数,则这个分数有可能出现,反之,没可能。
我的错误思路是将两者的得分分别分解质因数,由于每一轮两者共乘以了 k^3,所以看看两者同一质因子的指数是否为 3 的倍数。由于 1000^3 = 1e9 ,所以理论上只求出 1000以内的质数就可以了。这种思路的错误在于当两者得分都是一个很大的质数时,1000以内质数的质数都是 0,会错判为有可能出现。
注意:
两数乘积大,要用 long long型,另外开三次方可以用 pow(n,1.0/3) 这个函数,不过结果要四舍五入,这个地方我不是很明白为什么要四舍五入,是因为 1.0/3 不精确吗,如果谁懂还请不吝赐教……
代码:#include<stdio.h>
#include<math.h>
typedef long long LL;
int main()
{
int t,a,b;
LL n,x;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&a,&b);
n=(LL)a*b;
x=pow(n,1.0/3)+0.5; //对乘积开三次方并四舍五入
//如果乘积是立方数并且两者得分都是 x 的倍数
if(x*x*x!=n||a%x!=0||b%x!=0) printf("No\n");
else printf("Yes\n");
}
return 0;
}
相关文章推荐
- codeforces 735 C. Tennis Championship (数学)
- Codeforces Round #439 (Div. 2) Problem C (Codeforces 869C) - 组合数学
- 【Codeforces 869 C The Intriguing Obsession】& 组合数学 & 思维
- Codeforces 876 C Classroom Watch 基础数学,暴力
- CodeForces-702D Road to Post Office(初中数学脑洞题)
- CodeForces - 667A Pouring Rain (数学模拟)水
- codeforces 758D-D - Ability To Convert 数学细节题
- CodeForces 712C Memory and De-Evolution(贪心+数学)
- CodeForces 567C. Geometric Progression(map 数学啊)
- CodeForces 469A. I Wanna Be the Guy(数学)
- Codeforces 635C XOR Equation【数学姿势】
- CodeForces - 140A New Year Table (数学几何&精度)大圆内能放几个小圆
- Codeforces 886E (Codeforces Round #445) Maximum Element 组合数学+DP
- codeforces 55D beautiful number [数学+数位DP]【动态规划+数论】
- codeforces 894E - Ralph and Mushrooms tarjan缩点+数学+记忆化搜索找最长路
- CodeForces 621C 数学概率期望计算
- Non-square Equation CodeForces - 233B (数学)
- codeforces 559C|51nod1486 Gerald and Giant Chess(组合数学+逆元)
- Codeforces 628B New Skateboard (数学)
- CodeForces 366A Dima and Guards(结构体,数学)