ACM-ICPC2018焦作网络赛 Participate in E-sports(大数开方)
Participate in E-sports
- 11.44%
- 1000ms
- 65536K
Jessie and Justin want to participate in e-sports. E-sports contain many games, but they don't know which one to choose, so they use a way to make decisions.
They have several boxes of candies, and there are ii candies in the i^{th}ith box, each candy is wrapped in a piece of candy paper. Jessie opens the candy boxes in turn from the first box. Every time a box is opened, Jessie will take out all the candies inside, finish it, and hand all the candy papers to Justin.
When Jessie takes out the candies in the N^{th}Nth box and hasn't eaten yet, if the amount of candies in Jessie's hand and the amount of candy papers in Justin's hand are both perfect square numbers, they will choose Arena of Valor. If only the amount of candies in Jessie's hand is a perfect square number, they will choose Hearth Stone. If only the amount of candy papers in Justin's hand is a perfect square number, they will choose Clash Royale. Otherwise they will choose League of Legends.
Now tell you the value of NN, please judge which game they will choose.
Input
The first line contains an integer T(1 \le T \le 800)T(1≤T≤800) , which is the number of test cases.
Each test case contains one line with a single integer: N(1 \le N \le 10^{200})N(1≤N≤10200) .
Output
For each test case, output one line containing the answer.
样例输入复制
4
1
2
3
4
样例输出复制
Arena of Valor
Clash Royale
League of Legends
Hearth Stone
题目来源
听说牛顿迭代法也能过,这里粘个板子:https://blog.csdn.net/f_zyj/article/details/77852787
public static BigInteger sqrt(String x) {
int mlen = x.length(); //被开方数的长度
int len; //开方后的长度
BigInteger beSqrtNum = new BigInteger(x);//被开方数
BigInteger sqrtOfNum; //存储开方后的数
BigInteger sqrtOfNumMul; //开方数的平方
String sString;//存储sArray转化后的字符串
if(mlen% == ) len = mlen/;
else len = mlen/+;
char[] sArray = new char[len];
Arrays.fill(sArray, '');//开方数初始化为0
for(int pos=; pos<len; pos++){
//从最高开始遍历数组,每一位都转化为开方数平方后刚好不大于被开方数的程度
for(char num=''; num<=''; num++){
sArray[pos] = num;
sString = String.valueOf(sArray);
sqrtOfNum = new BigInteger(sString);
sqrtOfNumMul = sqrtOfNum.multiply(sqrtOfNum);
if(sqrtOfNumMul.compareTo(beSqrtNum) == ){
sArray[pos]-=;
break;
}
}
}
return new BigInteger(String.valueOf(sArray));
}
大数开方模板
import java.util.Scanner;
import java.math.BigInteger; class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int T = cin.nextInt();
for (int cas = 1; cas <= T; ++cas) {
String str = cin.next();
BigInteger n = new BigInteger(str);
BigInteger m = n.multiply(n.subtract(BigInteger.ONE)).shiftRight(1);
//System.out.println(n);
//System.out.println(m);
boolean nIsSquare = isSquare(n);
boolean mIsSquare = isSquare(m);
if (nIsSquare && mIsSquare) {
System.out.println("Arena of Valor");
} else if (nIsSquare && !mIsSquare) {
System.out.println("Hearth Stone");
} else if (!nIsSquare && mIsSquare) {
System.out.println("Clash Royale");
} else {
System.out.println("League of Legends");
}
}
} public static boolean isSquare(BigInteger n) {
BigInteger low = BigInteger.ZERO;
BigInteger high = n;
while (low.compareTo(high) <= 0) {
BigInteger mid = low.add(high).shiftRight(1);
BigInteger square = mid.multiply(mid);
int result = square.compareTo(n);
if (result == 0) {
return true;
} else if (result > 0) {
high = mid.subtract(BigInteger.ONE);
} else {
low = mid.add(BigInteger.ONE);
}
}
return false;
}
}
ACM-ICPC2018焦作网络赛 Participate in E-sports(大数开方)的更多相关文章
- 2018 ICPC 焦作网络赛 E.Jiu Yuan Wants to Eat
题意:四个操作,区间加,区间每个数乘,区间的数变成 2^64-1-x,求区间和. 题解:2^64-1-x=(2^64-1)-x 因为模数为2^64,-x%2^64=-1*x%2^64 由负数取模的性质 ...
- 焦作网络赛K-Transport Ship【dp】
There are NN different kinds of transport ships on the port. The i^{th}ith kind of ship can carry th ...
- 焦作网络赛B-Mathematical Curse【dp】
A prince of the Science Continent was imprisoned in a castle because of his contempt for mathematics ...
- 焦作网络赛E-JiuYuanWantstoEat【树链剖分】【线段树】
You ye Jiu yuan is the daughter of the Great GOD Emancipator. And when she becomes an adult, she wil ...
- 焦作网络赛L-Poor God Water【矩阵快速幂】
God Water likes to eat meat, fish and chocolate very much, but unfortunately, the doctor tells him t ...
- ACM-ICPC2018焦作网络赛 Mathematical Curse(dp)
Mathematical Curse 22.25% 1000ms 65536K A prince of the Science Continent was imprisoned in a cast ...
- ACM-ICPC2018焦作网络赛 Transport Ship(二进制背包+方案数)
Transport Ship 25.78% 1000ms 65536K There are NN different kinds of transport ships on the port. T ...
- HDU 4731 Minimum palindrome 2013 ACM/ICPC 成都网络赛
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4731 题解:规律题,我们可以发现当m大于等于3时,abcabcabc……这个串的回文为1,并且字典数最小 ...
- HDU 4734 F(x) 2013 ACM/ICPC 成都网络赛
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4734 数位DP. 用dp[i][j][k] 表示第i位用j时f(x)=k的时候的个数,然后需要预处理下小 ...
随机推荐
- 洛谷 3275 [SCOI2011]糖果
题目戳这里 N句话题意 有N个人,k个限制,有五种限制 如果X=1, 表示第A个小朋友的糖果必须和第B个小朋友的糖果一样多: 如果X=2, 表示第A个小朋友的糖果必须少于第B个小朋友的糖果: 如果X= ...
- JavaScript for循环实现表格隔行变色
本代码主要演示的是for循环, <!doctype html> <html lang="en"> <head> <meta charset ...
- 我的Java开发学习之旅------>使用Working Setst将Eclipse中的项目分类使项目一目了然
今天发现Eclipse中若有太多的项目,杂七杂八的,看起来会非常的痛苦.今天请教公司的前辈学会了一个方法,在Eclipse中,当项目比较多的时候,我们可以用WorkingSet将这些项目分类,把相关连 ...
- SIFT算法详解(转)
原文地址 http://blog.csdn.net/pi9nc/article/details/23302075 尺度不变特征变换匹配算法详解 Scale Invariant Feature Tran ...
- Other Linker flags 添加 -Objc导致包冲突
Other Linker flags 添加 -Objc导致包冲突 先尝试不添加-Objc,不行的话尝试下面的方法. 第三方冲突解决办法: https://www.jianshu.com/p/02846 ...
- h大数据
安全认证 hw HBase安全认证(创建HBaseHolder时认证) String userPrincipal = FeatureContext.INSTANCE.getOrElse(Constan ...
- Java多线程系列 基础篇05 synchronized关键字
1. synchronized原理 在java中,每一个对象有且仅有一个同步锁,所以同步锁是依赖于对象而存在.当我们调用某对象的synchronized方法时,就获取了该对象的同步锁.例如,synch ...
- node+express上传图片到七牛
本人微信公众号:前端修炼之路,欢迎关注 最近做项目的时候有一个上传图片的需求,由于没有后端的配合,所以决定自己来搭个服务器,实现上传图片功能.以后如果需要修改成java或者php为后端,直接使用即可, ...
- CSS那个背景图片的坐标怎么设置?怎么计算的?
background:url(images/hh.gif) no-repeat -10px 0;},作用是移动背景的位置. 背影图片的左上角相对当前元素左上角的坐标. 右为X轴正半轴, 下为Y轴正半轴 ...
- 多线程与Java的JMM内存模型
共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见.从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存( ...