广东ACM省赛 E题
题意: 输入一个P 使得存在一个一个N大于等于P, 并且存在m 等于 m/n * (m-1)/(n-1)=1/2.
思路
此题可以利用佩尔方程求解, 也可以打表解决.本次我解决利用的是佩尔方程(其实也是打表).
将方程化解成 8mm-8m=4n*n-4n 等于 (2n-1)²-2(2m-1)²=-1 设 a=2n-1; b=2m-1 方程等于 a²-2b²=-1; 已知n,m的最小解是4和3.所以 a和b的最小解为7和5.
我们取一个方程 为 x²-2y²=1 两方程相乘得到 (a²-2b²)(x²-2y²)=-1 化解得:(ax+2by)²-2(bx+ay)²=-1; 所以 a=ax+2by,b=bx+ay.也是方程a²-2b²=-1的一个解;
取x 和y的最小值为 x=3,y=2 所以 a1=3a0+4b0, b1=3b0+2a0; 第一项a0=7,b0=5 所以 a1=21+20=41 对应的x等于21 b1=15+14=29 对应的Y等于15.
所以它的规律就是
第一项 n=4,m=3.
n1=3n0+4m0-3.
m1=3m0+2n0-2.
存表二分搜就好了
备注: 我这个代码可能有bug,没平台交随便写写,暴力打表能过的. 这题主要提供个思路
java code:
import java.math.;
import java.util.;
import java.io.*;
public class Main {
static final int MAXN=128;
static BigInteger[] x=new BigInteger[MAXN];
static BigInteger[] y=new BigInteger[MAXN];
static BigInteger BB,CC;
static void Init()
{
x[0]=BigInteger.valueOf(7);
y[0]=BigInteger.valueOf(5);
for(int i=1;i<MAXN;i++)
{
x[i]=x[i-1].multiply(BigInteger.valueOf(3)).add(y[i-1].multiply(BigInteger.valueOf(4)));
y[i]=x[i-1].multiply(BigInteger.valueOf(2)).add(y[i-1].multiply(BigInteger.valueOf(3)));
}
}
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
BigInteger N;
Init();
N=in.nextBigInteger();
for(int i=0;i<MAXN;i++)
{
if(N.compareTo(x[i])!=1&&((x[i].mod(BigInteger.valueOf(2))).equals(BigInteger.valueOf(1)))&&((y[i].mod(BigInteger.valueOf(2))).equals(BigInteger.valueOf(1))))
{
BB=x[i].add(BigInteger.valueOf(1));
BB=BB.divide(BigInteger.valueOf(2));
CC=y[i].add(BigInteger.valueOf(1));
CC=CC.divide(BigInteger.valueOf(2));
System.out.println(BB+" "+CC);
break;
}}
}
}
广东ACM省赛 E题的更多相关文章
- 第十届山东省acm省赛补题(1)
今天第一场个人训练赛的题目有点恐怖啊,我看了半个小时多硬是一道都不会写.我干脆就直接补题去了.... 先补的都是简单题,难题等我这周末慢慢来吧... A Calandar Time Limit: 1 ...
- Sdut 2409 The Best Seat in ACM Contest(山东省第三届ACM省赛 H 题)(模拟)
题目描述 Cainiao is a university student who loves ACM contest very much. It is a festival for him once ...
- Rectangles(第七届ACM省赛原题+最长上升子序列)
题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=1255 描述 Given N (4 <= N <= 100) rec ...
- 青岛理工ACM交流赛 J题 数格子算面积
数格子算面积 Time Limit: 1000MS Memory limit: 262144K 题目描述 给你一个多边形(用’\’和’/’表示多边形的边),求多边形的面积. 输入 第一行两个正整数h ...
- 哈尔滨工程大学ACM预热赛 补题
链接:https://ac.nowcoder.com/acm/contest/554/A来源:牛客网 小虎刚刚上了幼儿园,老师让他做一个家庭作业:首先画3个格子,第二行有2个格子,第三行有1个格子. ...
- 第十届山东省acm省赛补题(2)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4124 L Median Time Limit: 1 Second ...
- Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)
Time Limit: 5000MS Memory limit: 65536K 题目描述 Haveyou ever played a popular game named "Fruit Ni ...
- 哈尔滨工程大学ACM预热赛 G题 A hard problem(数位dp)
链接:https://ac.nowcoder.com/acm/contest/554/G Now we have a function f(x): int f ( int x ) { if ( ...
- 第八届山东ACM省赛F题-quadratic equation
这个题困扰了我长达1年多,终于在今天下午用两个小时理清楚啦 要注意的有以下几点: 1.a=b=c=0时 因为x有无穷种答案,所以不对 2.注意精度问题 3.b^2-4ac<0时也算对 Probl ...
随机推荐
- 如何快速找到指定端口被哪个程序占用并释放该端口(解决bindException)
首先打开打开任务管理器,选择性能模块,下方有打开资源监视器,或者直接搜索资源监视器 在资源监视器中点击侦听端口模块,即可看到正在使用网络端口的应用程序名和pid,如果被占用可以直接使用命令行关闭即可 ...
- Set集合之TreeSet类
TreeSet简介 TreeSet是SortedSet接口的实现类,正如SortedSet名字所暗示的,TreeSet可以确保集合元素处于排序状态.与HashSet集合相比,TreeSet还提供了如下 ...
- [Oracle]记一次由sequence引发的enq sv-contention等待事件
数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库等待会话暴增,大约到了80个会话.通过查看EM的SQL信息,发现等待产生于SQL语句 se ...
- 使用 runtime 实现字符串转方法,并传递参数
利用runtime的动态机制实现字符串转方法并传递参数 使用 SEL 关键字引用方法声明,使用 methodForSelector 寻找方法实现, 使用函数指针调用方法. - (void)action ...
- Spring boot Mybatis整合构建Rest服务(超细版)
Springboot+ Mybatis+MySql整合构建Rest服务(涵盖增.删.改.查) 1.概要 1.1 为什么要使用Spring boot? 1.1.1 简单方便.配置少.整合了大多数框架 ...
- js toFixed()方法的坑
javascript中toFixed使用的是银行家舍入规则. 银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法. 简单来说就是:四舍六入五考虑,五后非零就进一,五后为零 ...
- SQLSERVER 使用 ROLLUP 汇总数据,实现分组统计,总计(合计),小计
版权声明:本文为博主原创文章,未经博主允许不得转载.本人观点或有不当之处,请在评论中及时指正,我会在第一时间内修改. https://blog.csdn.net/aiming66/article/de ...
- C++_构造函数与析构函数
构造函数与析构函数 OOP第二课 1 构造函数 1.1 构造函数具有一些特殊的性质 1.2 定义构造函数的一般形式 1.3 利用构造函数创建对象 2 成员初始化表 3 缺省参数的构造函数 4 重载构造 ...
- Ubuntu 16 Java Develop环境快速搭建
安装JDK 1. 更新apt-get: $ sudo apt-get update 2. 安装jdk: $ sudo apt-get install openjdk-8-jdk 部分eclipse现只 ...
- PHP几种常见魔术方法与魔术变量解析
原文地址:http://small.aiweimeng.top/index.php/archives/49.html 先不多说,直接上代码,如下: class Demo { private $str ...