Cryptography Reloaded UVALive - 4353(BigInteger)
写写式子就出来了方程。。
然后解方程。。不过数很大。。用Java就好啦。。
就不贴呃的代码了。。。贴别人的。。https://blog.csdn.net/qq_15714857/article/details/49790693?locationNum=5&fps=1
import java.util.*;
import java.math.*; public class Main {
public static BigInteger sqrt( BigInteger n ) {
BigInteger L = BigInteger.ZERO , R = n ;
while ( L.compareTo(R) < 0 ) {
BigInteger M = L.add(R) ;
M = M.divide(BigInteger.valueOf(2)) ;
if ( M.multiply(M).compareTo(n) == 0 ) return M ;
else if ( M.multiply(M).compareTo(n) > 0 ) R = M.subtract(BigInteger.ONE);
else if(M.multiply(M).compareTo(n) < 0) L = M.add(BigInteger.ONE) ;
}
if ( L.multiply(L).compareTo(n) == 0 ) return L ;
else return BigInteger.valueOf(-1) ;
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
BigInteger n , d , e ;
BigInteger p , q;
int kase = 1 ;
while(cin.hasNext()){
n = cin.nextBigInteger();
d = cin.nextBigInteger() ;
e = cin.nextBigInteger() ;
if ( n.compareTo(BigInteger.ZERO) == 0 && d.compareTo(BigInteger.ZERO) == 0 && e.compareTo(BigInteger.ZERO) == 0 ) break ; d = d.multiply(e);
d = d.subtract(BigInteger.ONE);
int k = 0 ;
while(true){
k++ ;
BigInteger t = d.mod(BigInteger.valueOf(k));
if ( t.compareTo(BigInteger.ZERO) > 0 ) continue ;
t = d.divide(BigInteger.valueOf(k)) ;
BigInteger b = (t.subtract(n)).subtract(BigInteger.ONE);
BigInteger delta = (b.multiply(b)).subtract(BigInteger.valueOf(4).multiply(n)) ;
if ( delta.compareTo(BigInteger.ZERO) >= 0 ) {
delta = sqrt(delta) ;
if( delta.compareTo(BigInteger.valueOf(-1)) == 0 ) continue ;
b = BigInteger.ZERO.subtract(b) ;
p = b.add(delta) ;
p = p.divide(BigInteger.valueOf(2)) ;
q = b.subtract(delta) ;
q = q.divide(BigInteger.valueOf(2)) ;
if ( p.multiply(q).compareTo(n) == 0 ) {
if ( p.compareTo(q) > 0 ) { t = p ; p = q ; q = t ;}
System.out.println("Case #"+ kase++ + ": " + p + " " + q);
break ;
} }
} }
cin.close();
}
}
Cryptography Reloaded UVALive - 4353(BigInteger)的更多相关文章
- 训练指南 UVALive - 3713 (2-SAT)
layout: post title: 训练指南 UVALive - 3713 (2-SAT) author: "luowentaoaa" catalog: true mathja ...
- java大数(BigInteger)
JAVA之BigInteger 用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂.用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的 ...
- UVALive - 6440(模拟)
题目链接:https://vjudge.net/contest/241341#problem/G 题目大意:输入一个N,n次操作.对于第一种操作增加一个病人,告诉病人的t0,st0,r.第二种操作,在 ...
- UVALive - 7147 (数学)
题目链接 题意 n只队伍,两两之间会进行比赛,赢平输都有相应得分,所有比赛结束后,前m名可以晋级.问最大的不能晋级分数为多少,以及最小的能晋级的分数. 分析 智商题...按照要求来贪心1.没有晋级的队 ...
- Chapter1-data access reloaded:Entity Framework(下)
1.4 Delving deep into object/relational differences 深入挖掘对象关系的不同 理解面向对象和关系世界的不同是重要的,因为他会影响你设计一个对象模型或者 ...
- Chapter1-data access reloaded:Entity Framework(上)
本章包括以下几个部分: 1.DataSet and classic ADO.NET approach2.Object model approach3.Object/relational mismatc ...
- Leonardo's Notebook UVALive - 3641(置换)
题意: 给出26个大写字母的置换B,问是否存在一个置换A,使得A2 = B 解析: 两个长度为n的相同循环相乘,1.当n为奇数时结果也是一个长度为n的循环:2. 当n为偶数时分裂为两个长度为n/2 ( ...
- UVALive 6853(dp)
题意:已知有n个城市,某歌手每月进行一场演唱会,共持续c个月,可连续两个月在同一个城市.城市间的路费已给出,且已知每个城市在第k(1<=k<=c)个月举办演唱会的所得利润,求最终的最大利润 ...
- What a Ridiculous Election UVALive - 7672 (BFS)
题目链接: E - What a Ridiculous Election UVALive - 7672 题目大意: 12345 可以经过若干次操作转换为其它五位数. 操作分三种,分别为: 操作1:交 ...
随机推荐
- WebGL——水波纹特效
大家好,今天我ccentry要做一个水波纹特效,我们来看看水波纹特效的做法.首先我们来看一下水波纹特效的效果是怎么样的,请看下图. 我们要做的就是类似这种纹理特效,那么我们来看看是如何制作的吧.首先鲫 ...
- jmeter线程组介绍
Jmeter中的测试计划是一直有的,但可以在右侧修改名字,要开始做具体测试设计前,都需要在测试计划下边添加一个线程组,添加路径为鼠标捕获测试计划后,点击鼠标右键->添加->Threads( ...
- Received non-all-whitespace CHARACTERS or CDATA event in nextTag(). ,无法整齐打印验证错误。 解析XML文档出现的问题
在启动keyCloak,想要在standAlone模式下切换数据库,修改standAlone.xml文件时. 在bin/目录下启动standAlone模式出现错误: 10:07:24,799 INFO ...
- SICP读书笔记 2.5
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 ...
- 【坚持】Selenium+Python学习之从读懂代码开始 DAY6
2018/05/23 Python内置的@property装饰器 [@property](https://www.programiz.com/python-programming/property) ...
- 三羊献瑞:dfs / next_permutation()
三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞------------------- 三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的汉字代 ...
- Mac环境搭建以太坊私有链
原文地址: 石匠的blog 为了测试以太坊智能合约,最方便的是在本地搭建一个以太坊私有链.在mac上搭建环境主要需要以下步骤. geth安装 geth是go-ethereum的简写,是一个用go语言编 ...
- 服务端模版注入漏洞检测payload整理
服务端模版注入漏洞产生的根源是将用户输入的数据被模版引擎解析渲染可能导致代码执行漏洞 下表涵盖了java,php,python,javascript语言中可能使用到的模版引擎,如果网站存在服务端模版注 ...
- 6.capacity scheduler
1.先决条件 要使用yarn的capcitiy调度器,必须开启yarn的ACLs,否则队列ACLs设置不生效 开启yarn ACLs: # hadoop: core-site.xml hadoop ...
- JVM调优(2)
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...