The Meaningless Game,算是思维吧。
题目直接链接
题意:
某游戏规则:每次选定数字k(正整数),两人初始分数为1,获胜者分数乘k2,失败者分数成k,给你两个数字,判断是否可能是本游戏的两人的得分。
分析:
为啥题意我不写判断两个数可不可以表示成a*a*b和a*b*b呢,因为这样我后面就没的写了。。。好的,那我们证明一下这两个的等价性:假设有n局游戏,每局的数字为k1。。。kn,然后A获胜的局数是
a1。。。ax,B获胜的局数是b1。。。by,那么A的分数:k(a1)*k(a1)*。。。*k(ax)*k(ax)*k(b1)*。。。*k(by),同样的,b的得分:k(a1)*。。。*k(ax)*k(b1)*k(b1)*。。。*k(by)*k(by)于是令a=k(a1)*。。。*k(ax),b=k(b1)*。。。*k(by),那么A的得分:a*a*b,B的得分a*b*b,然后再反过来证,如果AB的得分可以表示成a*a*b和a*b*b那么一定有可能,直接构造:就两局第一局分数为a,A赢,第二局分数为b,B赢。证完等价之后,我们考虑一下怎么判断能不能表示成a*a*b和a*b*b,其实我们可以直接求出a,b来。我们另A的分数是x,B的分数是y,那么gcd(x,y)=a*b*gcd(a,b)。x/gcd(x,y)=a/gcd(a,b);y/gcd(x,y)=b/gcd(a,b);令t1=gcd(a,b)*gcd(a,b)*gcd(a,b)=x/(x/gcd(x,y)*x/gcd(x,y)*y/gcd(x,y));
令t2=y/(x/gcd(x,y)*y/gcd(x,y)*y/gcd(x,y)),要满足t1=t2=k3(k为整数)即可。证明很简单,首先满足能表示成a*a*b和a*b*b一定能满足t1=t2=k3(k为整数)(这么推过来的),满足t1=t2=k3也一定满足可以表示成a*a*b和a*b*b(都把a,b找出来了,肯定没问题),那么就好办了。
还有一个小小的问题,判断三次时最好不要从1到x二分,否则可能爆long long,如果不放心区间的话,判断时也不应写mid*mid*mid,总之要注意一些爆long long的地方。
代码:
#include <cstdio>
long long G(long long a,long long b){
if(b==)
return a;
return G(b,a%b);
}
int B(long long a){
long long l=,r=a;
while(l<=r){
long long mid=(l+r)/;
if(a%mid==&&mid*mid==a/mid)
return ;
else if(mid*mid<=a/mid)
l=mid+;
else
r=mid-;
}
return ;
}
int main(){
int n;
scanf("%d",&n);
long long js1,js2;
for(int i=;i<=n;i++){
scanf("%lld%lld",&js1,&js2);
long long js=G(js1,js2);
long long a=js1/js;
long long b=js2/js;
if(js1%(a*a*b)){
printf("No\n");
continue;
}
long long jsjs=js1/(a*a*b);
if(B(jsjs))
printf("No\n");
else if(jsjs*a*b*b==js2)
printf("Yes\n");
else
printf("No\n");
}
return ;
}
The Meaningless Game,算是思维吧。的更多相关文章
- Code Forces 833 A The Meaningless Game(思维,数学)
Code Forces 833 A The Meaningless Game 题目大意 有两个人玩游戏,每轮给出一个自然数k,赢得人乘k^2,输得人乘k,给出最后两个人的分数,问两个人能否达到这个分数 ...
- 重构实践——为了try-catch大兴排场
可能是我们共同的强迫症,不要说看到,就算想到太多的try-catch也很难接受. 于是,开始了一些尝试,这些尝试都算是思维的锻炼.场面的见识.经验的积累. Version1 —— 原始版本 一开始,在 ...
- C. Meaningless Operations Codeforces Global Round 1 异或与运算,思维题
C. Meaningless Operations time limit per test 1 second memory limit per test 256 megabytes input sta ...
- The Meaningless Game 思维题
题目描述 Slastyona and her loyal dog Pushok are playing a meaningless game that is indeed very interesti ...
- Unity3D 游戏前端开发技能树(思维导图)
如果做游戏也是一种游戏,那么这个游戏的自由度实在是太高了.(导图源文件链接:http://pan.baidu.com/s/1eSHpH5o 密码:qzl5) 最近要用思维导图软件Xmind把自己的思路 ...
- SQL到NOSQL的思维转变
NOSQL系统一般都会宣传一个特性,那就是性能好,然后为什么呢?关系型数据库发展了这么多年,各种优化工作已经做得很深了,NOSQL系统一般都是吸收关系型数据库的技术,然后,到底是什么因素束缚了关系型数 ...
- AngularJS应用开发思维之1:声明式界面
这篇博客之前承接上一篇:http://www.cnblogs.com/xuema/p/4335180.html 重写示例:模板.指令和视图 AngularJS最显著的特点是用静态的HTML文档,就可以 ...
- python socket编程---从使用Python开发一个Socket示例说到开发者的思维和习惯问题
今天主要说的是一个开发者的思维和习惯问题. 思维包括编程的思维和解决一个具体问题的分析思维,分析思路,分析方法,甚至是分析工具. 无论是好习惯还是不好的习惯,都是在者一天一天的思维中形成的.那些不好的 ...
- Codeforces Round #426 (Div. 2)【A.枚举,B.思维,C,二分+数学】
A. The Useless Toy time limit per test:1 second memory limit per test:256 megabytes input:standard i ...
随机推荐
- Flask简单http接口实现
# flask demo from flask import Flask, request app = Flask(__name__) # http://127.0.0.1:8080 @app.rou ...
- MongoDB知识点总结
一:MongoDB 概述 一.NoSQL 简介 1. 概念:NoSQL(Not Only SQL的缩写),指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称.用于超大规模数 ...
- airpods2隐藏的使用技巧(十)点
airpods的凭借出色的外观.不错的音质以及非常人性化的用户体验秒杀了同类型的许多真无线蓝牙耳机,以下是第二代产品airpods2一些使用的技巧,推荐给大家. 一. 随时随地查看airpods2 ...
- 00-03.kaliLinux-vi粘贴复制功能配置
KaliLinux在xShell的vim中默认是无法复制和粘贴的,需要做如下配置后才能使用: 方法一 进入vim命令行模式,输入: :set mouse=c #进入Command-line 模式 然后 ...
- 如何使用PHP生成图片
/** * 从图片文件创建Image资源 * @param $file 图片文件,支持url * @return bool|resource 成功返回图片image资源,失败返回false */ fu ...
- JS中的各类运算符
2020-04-15 JS中的各类运算符 // 假设有如下代码,那么a(10)的返回结果是?( ) function a(a) { a^=(1<<4)-1; return a; } // ...
- (二)用testng的groups管理用例
原文链接:https://www.cnblogs.com/Jourly/p/7002096.html 一.需求: 测试时经常有两种场景,第一种是冒烟测试的小部分用例:一类是全部用例. 二.针对第一种运 ...
- 用python做时间序列预测九:ARIMA模型简介
本篇介绍时间序列预测常用的ARIMA模型,通过了解本篇内容,将可以使用ARIMA预测一个时间序列. 什么是ARIMA? ARIMA是'Auto Regressive Integrated Moving ...
- VS Code WebApi系列——2、jwt结合数据库校验
Knowledge should be shared free. 我们都知道WebApi最重要的作用就是为外部服务提供相应的数据接口和服务,所以一般WebApi都会连接后台数据库,那么最重要的一件事就 ...
- .Net Core微服务入门全纪录(五)——Ocelot-API网关(下)
前言 上一篇[.Net Core微服务入门全纪录(四)--Ocelot-API网关(上)]已经完成了Ocelot网关的基本搭建,实现了服务入口的统一.当然,这只是API网关的一个最基本功能,它的进阶功 ...