(数学或二分)Codeforces Round #426 C. The Meaningless Game
来源:互联网 发布:淘宝跳蚤街与闲鱼 编辑:程序博客网 时间:2024/05/17 22:27
题目网址: Codeforces Round #426 C. The Meaningless Game
题意分析:
题意:
- Slastyona 和 她的狗一起玩游戏, 每一场游戏包括很多轮(可能0轮)
- 初始她们的分数均为 1
- 她们选取一个数 k, 谁最先回答出来, 则她(它)的分数乘以k^2, 另一个人的分数乘以 k
- 但是n场游戏得分Slastyona记不太清楚, 给出n场游戏两个人(动物??)的得分, 问这个得分是否合理(即 是否存在一场游戏,使得她们可以达到这个得分)
思路:
- Slastyona 得分 为a, 她的狗得分为b
- 若得分合理, 则 满足 a*b = T^3 (因为她们的得分是一人乘以k^2, 一人乘以k, 所以得分合理的话, 就会有一个大T使得 a*b = T^3)
- 并且 a是能整除这个大T的, b 也是能整除这个大T的
- 题目转换为找这个大T
代码:
解法1: 直接用数学函数 cbrt开三次方根
#include <bits/stdc++.h>using namespace std;// 数学方法int main(int argc, char const *argv[]){ int n, a, b; while (~scanf("%d", &n)) { for (int i = 0; i < n; ++i) { scanf("%d %d", &a, &b); int K = cbrt((double)a * (double)b); int aa = a / K; int bb = b / K; puts((aa * aa * bb == a && bb * bb * aa == b) \ ? "Yes" : "No"); // 和思路表述的意思是一致的 } } return 0;}
解法2: 用二分查找来找到满足的条件
#include <bits/stdc++.h>using namespace std;#define ll long longconst ll MAX = 1e6+5;// 二分bool check(ll a, ll b){ ll l = 1, r = MAX; ll cmp = a * b; while (l <= r) { ll mid = (l+r)/2; if(mid * mid * mid < cmp) { l = mid + 1; } else r = mid - 1; } if(l * l * l == cmp && !(a % l) && !(b % l)) return true; else return false;}int main(int argc, char const *argv[]){ int n; ll a, b; while (~scanf("%d", &n)) { for (int i = 0; i < n; ++i) { scanf("%I64d %I64d", &a, &b); if(check(a, b)) printf("Yes\n"); else printf("No\n"); } } return 0;}
阅读全文
1 0
- (数学或二分)Codeforces Round #426 C. The Meaningless Game
- codeforces 426 Div2C 833A The Meaningless Game(二分||数学)
- Codeforces Round #426 (Div. 2)The Meaningless Game(思维+二分)
- Codeforces Round #426 (Div. 2)The Meaningless Game(思维+二分)
- Codeforces Round #426 (Div. 2)The Meaningless Game(思维+二分)
- Codeforces Round #426 (Div. 2) C. The Meaningless Game(简单数学)
- Codeforces Round #426 (Div. 2) C. The Meaningless Game C. The Meaningless Game
- Codeforces Round #426 (Div. 2) C:The Meaningless Game The Meaningless Game
- (Codeforces Round #426 (Div. 2)) C.The Meaningless Game
- Codeforces Round #426 (Div. 2) C. The Meaningless Game
- Codeforces Round #426 (Div. 2)-C. The Meaningless Game
- Codeforces Round #426 (Div. 2) C The Meaningless Game
- Codeforces Round #426 (Div. 2) C. The Meaningless Game
- Codeforces Round #426 (Div. 2) C. The Meaningless Game
- Codeforces Round #426 (Div. 2) C The Meaningless Game
- 【CodeForces】426Div2 C The Meaningless Game
- CodeForces #426 div2 C The Meaningless Game
- Codeforces 834 C The Meaningless Game(二分)
- (Android机)不要随意安装Xposed插件,不然可能遭受财产损失
- SSIS项目基础实战操作手册_v1.0(傻瓜版)(一)
- 微信小程序前置课程:flex布局(二)
- python opencv入门 图像金字塔(16)
- hpuoj 【1063】欢迎来到南大门 【数学】
- (数学或二分)Codeforces Round #426 C. The Meaningless Game
- 【备忘】传智播客黑马程序员28期JavaEE基础及就业班视频教程
- 关于数据溢出的情况
- FFT频率和实际物理频率的分析
- 深度学习解决NLP问题:语义相似度计算——DSSM
- Java读取文件的几种方法
- 深度学习网络训练,调参技巧
- Ubuntu下忘记MySQL root密码解决方法
- 数据库SQL实战