第三届山西省赛1004 一道大水题(scanf)

Posted Surprisez

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三届山西省赛1004 一道大水题(scanf)相关的知识,希望对你有一定的参考价值。

一道大水题

时间限制: C/C++ 2000ms; Java 4000ms 内存限制: 65535KB

通过次数: 44 总提交次数: 1020

问题描述

  

        Dr. Pan作为上兰帝国ACM的总负责人,对队员的队员的训练也是日常关心,他要求每周要有一位队员出一道题目。不知过了多少年,终于轮到Shiyiliang出题了,他费尽脑汁,终于出了一道大水题

给定一个偶数n,n的取值范围为[-1e18,1e18],要求一对整数x,y满足以下条件:

     1.x*y==n

     2.x与n必须同号,即如果n>0则x>0,n<0则x<0

     3.x必须为偶数,y必须为奇数

     4.y的取值范围为(-1e18,1e18)

     5.使x的值尽可能小的情况下,y的值尽可能大

   

为了减轻队员的工作量,Dr. pan决定只要求输出y即可.

 

输入描述

第一行一个T(T<=100000)代表样例数。

接下来T行,每行一个数字代表题目中的n(-1e18<=n<=1e18,保证n为偶数)。

输出描述

输出T行。

每行一个数字代表题目中的y,该数字必须为奇数。

样例输入
1
12
样例输出
3
来源
第三届山西省大学生程序设计大赛
提示
 
 
赛后看了其他队的代码,确定自己被卡cin了。。果然以后不能用劳什子cin/cout加速,乖乖scanf吧T_T
 1 #include<iostream>
 2 #include<cstdio>
 3 typedef long long ll;
 4 using namespace std;
 5 ll x=1e18;
 6 int main()
 7 {
 8     int t;
 9     scanf("%d",&t);
10     while(t--)
11     {
12         ll a;
13         scanf("%lld",&a);
14         if(a<0)
15         printf("1\n");
16         else if(a>0){
17             while((a&1)==0)a>>=1;
18             printf("%lld\n",a);
19         }
20         else printf("%lld\n",x-1);
21     }return 0;
22  }

 

以上是关于第三届山西省赛1004 一道大水题(scanf)的主要内容,如果未能解决你的问题,请参考以下文章

2020-2021年度第二届全国大学生算法设计与编程挑战赛 (春季赛)F - 这是一道大水题

LuoguP3930 SAC E#1 - 一道大水题 Knight

2019CCPC-江西省赛(重现赛)

东北农业大学第三届校赛总结

宽度优先搜索神奇的状态压缩 CodeVs1004四子连棋

洛谷P3930SAC E#1 - 一道大水题 Knight