首页 > 其他分享 >[CF457A]Golden System

[CF457A]Golden System

时间:2024-04-17 22:55:25浏览次数:29  
标签:CF457A Golden cout System len long

CF457A Golden System

十分精妙的一道题,斐波那契数列和黄金比例\(\Phi\)的内在有着奇妙的联系。

我们设\(x=\frac{\sqrt{5}+1}{2}\),则根据题目给出的规律,有\(x^2=x+1\)。

下面我们通过列举,试图找出规律:

  • \(x^0=1\)
  • \(x^1=x\)
  • \(x^2=x+1\)
  • \(x^3=2x+1\)
  • \(x^4=3x+2\)
  • \(x^5=5x+3\)
  • \(x^6=8x+5\)
    \(…\)

没错,\(x\)的系数构成了一个斐波那契数列\(\{1,0,1,1,2,3,5,8,…\}\),而容易发现\(x^k=x^{k-1}+x^{k-2}\)。所以我们把\(A,B\)序列不断降次,直到只剩若干\(x^0\)和\(x^1\),然后计算具体值判断即可。

这里把\(A,B\)相减得到\(C\),最后看结果的正负性,效果是一样的。

需要注意的是,降次过程中可能会出现超long long的情况,怎么解决呢?我们发现\(x^k\)的系数如果超过某个限制,以至于\(1\sim (k-1)\)即使全是负数,结果也减不到负数。所以在执行途中加一个判断如果\(x^k\)的绝对值大于某个数,就直接输出。这里使用\(10^5\)过了,但为了保险还是大点好。

点击查看代码
#include<bits/stdc++.h>
using namespace std;
string a,b;
long long c[100010];
int main(){
	cin>>a>>b;
	int len=max(a.size(),b.size());
	reverse(a.begin(),a.end());
	reverse(b.begin(),b.end());
	a.resize(len,'0'),b.resize(len,'0');
	a=' '+a,b=' '+b;
	for(int i=1;i<=len;i++) c[i]=a[i]-b[i];
	for(int i=len;i>=3;i--){
		if(llabs(c[i])>100000){
			if(c[i]>0) cout<<'>';
			else cout<<'<';
			return 0;
		}
		c[i-1]+=c[i],c[i-2]+=c[i];
	}
	if(c[1]==c[2]&&c[1]==0){
		cout<<'=';
		return 0;
	}
	double x=(sqrt(5)+1)/2;
	double aa=1.0*c[2]*x+1.0*c[1];
	if(aa>0) cout<<'>';
	else cout<<'<';
	return 0;
}

标签:CF457A,Golden,cout,System,len,long
From: https://www.cnblogs.com/Sinktank/p/18141922

相关文章

  • 解决C# 连接MYSQL数据库查询数据时 Unable to convert MySQL date/time value to Syst
    C#读取MySql时,如果存在字段类型为date/datetime时的可能会出现以下问题“UnabletoconvertMySQLdate/timevaluetoSystem.DateTime”原因:可能是该字段(date/datetime)的值默认缺省值为:0000-00-00/0000-00-0000:00:00,这样的数据读出来转换成System.DateTime时就会有问题;解......
  • C:\Windows\System32\setup 目录中,这个目录包含了一些与系统安装和配置相关的文件
    C:\Windows\System32\setup目录中,这个目录包含了一些与系统安装和配置相关的文件。作用:cmmigr.dll:这是一个动态链接库文件,可能与移动设备中心相关。它可能包含了用于迁移和处理移动设备中心配置的函数和资源。comsetup.dll:这是ComponentServicesSetup工具的......
  • C:\Windows\System32\spool 目录中,这个目录是与打印相关的系统服务的默认位置。 Pr
    C:\Windows\System32\spool目录中,这个目录是与打印相关的系统服务的默认位置。作用:drivers:这个文件夹包含了打印机驱动程序文件。Windows系统使用这些驱动程序来与不同类型和品牌的打印机进行通信。PRINTERS:这个文件夹通常用于存储正在打印的文档的临时文件。当......
  • 我们为什么需要操作系统(Operating System)?
    我们为什么需要操作系统(OperatingSystem)?a)从计算机体系的角度,OS向下统筹了所有硬件资源(1),向上为所有软件提供API调用(2),使得软件程序员不必知晓硬件的具体细节,实现了计算机体系的分层;      b)从资源管理的角度,OS对有限的计算资源进行分配(3),是软件按照“某种理想的状......
  • docker使用centos镜像创建的容器内使用systemctl重启sshd服务报错或者无法使用
    问题是这样的:如果镜像是ubuntu系统的,创建容器后使用systemctl启动sshd没有什么问题,但是如果镜像是centos,那就会报错failedtoconnecttobusnosuch原因:centos系统的的安全性较高,相比ubuntu一些底层无法映射到容器中,即使在创建容器时加上--security-optseccomp:unconfined --......
  • 什么是 Sysprep: Sysprep 是 全称为 System Preparation Tool,用于准备计算机的硬盘镜像
    C:\Windows\System32\Sysprep是Windows操作系统中的一个重要文件夹,用于存放系统准备工具(Sysprep)及其相关文件。让我来解释一下:什么是Sysprep:Sysprep是Windows操作系统中的一个工具,全称为SystemPreparationTool,用于准备计算机的硬盘镜像以进行系统部署。它能够将......
  • SystemVerilog -- 6.0 Interface
    SystemVerilogInterfaceWhatisanInterface?Interface是一种将信号封装到block中的方法。所有相关信号组合到一起形成一个接口块,以便可以将其重新用于其他项目。此外,与DUT和其它验证组件的连接也变的更加容易。interfaceExampleAPB总线协议信号被放在给定的接口中。......
  • Linux systemd 定时任务
    哈喽大家好,我是咸鱼。说到Linux定时任务,大家用得最多的就是crond服务,但其实systemd也有类似的功能。我们不但可以通过systemd来管理服务,还能设置定时任务,那就是systemdtimer。与crond相比,systemd定时任务具有以下优点:更高的精度:systemd定时任务可以精确到秒,而c......
  • System Design Interview
    1ProximityService1)requirements FunctionalRequirementsNon-FunctionalRequirements1Returnallbusinessesbasedonuser'slocation(latituteandlongitutepair)andradius(5km)Lowlatency.Usersseenearbybusinessquickly2B......
  • SystemVerilog -- 2.1 Data Types ~ New Data types
    SystemVeriloglogicandbit在上一篇文章中,概述了主要数据类型。在本会话中,我们将研究4-state和2-state变量以及两种名为logic和bit的新数据类型。4-statedatatypes除了0和1之外,还可以具有未知(X)和高阻态(Z)值的类型称为4态类型。请注意,只能在过程快中驱动,例如,数据类......