zoukankan      html  css  js  c++  java
  • 江西财经大学第一届程序设计竞赛 I 题 小P和小Q

    题目链接:https://www.nowcoder.com/acm/contest/115/I

    这题目要注意的是!!!pow函数前强制类型转换一定要float !!!一定要是float,double不可以,否则数据一大就会出错,cbrt函数也是这样!!!

    解题思路:每回合的k都不一样,所以我们找找规律看看。假设最后 a 得到 x1 分,b 得到 x2 分。假设 a 赢了两局,b 赢了一局那么我们是不是可以将 x1拆分为 x1= k12*k22*k3, 则 x2=k1*k2*k3

    那么就有(x1*x2)1/3==n (n为正整数) 。

    这道题还要特判一下,比如a 1分,b  8分。虽然开3次方为2,是正整数,但是却得不到。后台数据也没有卡这点。

    AC代码:

     1 #include<iostream>
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 int main(){
     5     int t;
     6     cin>>t;
     7     while(t--){
     8         long long a,b;
     9         cin>>a>>b;
    10         long long c=a*b;
    11         if(a==1&&b==1){
    12             cout<<"Yes"<<endl;
    13         }else if(a==1&&b!=1){
    14             cout<<"No"<<endl;
    15         }else if(a!=1&&b==1){
    16             cout<<"No"<<endl;
    17         }else{
    18             long long ans=(float)pow(c,1.0/3.0);  //float !!!一定要是float,double不可以,否则数据一大就会出错,cbrt函数也是这样!!!
    19             long long va=ans*ans*ans; 
    20             if(va==c){
    21                 cout<<"Yes"<<endl;
    22             }else{
    23                 cout<<"No"<<endl;
    24             }
    25         }
    26     }
    27     return 0;
    28 }
  • 相关阅读:
    sqlalchemy 转json 的几种常用方式
    程序员的思维模型指南
    软件的本质
    Python数据模型及Pythonic编程
    Linux Kernel C语言编程范式
    U-Boot内存管理
    Linux网络文件系统的实现与调试
    Linux内核内存管理架构
    Linux多核并行编程关键技术
    Go/Python/Erlang编程语言对比分析及示例
  • 原文地址:https://www.cnblogs.com/ISGuXing/p/8907286.html
Copyright © 2011-2022 走看看