首页 > 其他分享 >P1763 埃及分数

P1763 埃及分数

时间:2022-12-11 22:25:06浏览次数:46  
标签:分数 埃及 return P1763 ll mt flag ans now

#include <iostream>
#include <cstring>
#include <string>
using namespace std;
typedef long long ll;
ll a , b , md ;
ll ans [ 100000 ] , s [ 100000 ] ;
ll gcd ( ll x , ll y ) { return y == 0 ? x : gcd ( y , x % y ) ; }
void hj ( ll & x , ll & y ) { ll t = gcd ( x , y ) ; x /= t ; y /= t ; } 
ll findanumber ( ll x , ll y ) {
	ll _ = y / x ;
	if ( _ * x < y ) _ ++ ;
	return _ ;
}
bool dfs ( ll now , ll x , ll y , ll pre ) {
	if ( now == md ) {
		hj ( x , y ) ;
		if ( x != 1 ) return false ; 
		s [ now ] = y ; 
		bool flag = false ; 
		for ( ll i = now ; i >= 1 ; i -- ) 
			if ( ans [ i ] != s [ i ] ) { flag = ( ans [ i ] == -1 || s [ i ] < ans [ i ] ) ; break ; }
		if ( flag ) {
			for ( ll i = 1 ; i <= now ; i ++ ) 
				ans [ i ] = s [ i ] ;
		}
		return true ; 
	}
	bool flag = false ; 
	ll mt = max ( pre , findanumber ( x , y ) ) ;
	for ( ; ; mt ++ ) {
		if ( mt * x >= y * ( md - now + 1 ) ) break ;
		s [ now ] = mt ;
		ll xx = x * mt - y , yy = y * mt ;
		hj ( xx , yy ) ;
		if ( dfs ( now + 1 , xx , yy , mt + 1 ) ) flag = true ;
	}
	return flag ; 
}
int main ( ) {
	cin >> a >> b ;
	hj ( a , b ) ;
	if ( a == 1 ) { cout << b << endl; return 0 ; }
	md = 1 ; 
	while ( ++ md ) {
		memset ( ans , -1 , sizeof ( ans ) ) ;
		if ( dfs ( 1 , a , b , findanumber ( a , b ) ) ) {
			for ( ll i = 1 ; i <= md ; i ++ ) cout << ans [ i ] << " " ;
			cout << endl;
			return 0 ;
		}
	}
	return 0 ;
}

标签:分数,埃及,return,P1763,ll,mt,flag,ans,now
From: https://www.cnblogs.com/dadidididi/p/16974684.html

相关文章

  • 带分数
    带分数\(100\)可以表示为带分数的形式:\(100=3+\)\(\frac{69258}{714}\)还可以表示为:\(100=82+\)\(\frac{3546}{197}\)注意特征:带分数中,数字\(1∼9\)分别出现且只......
  • 计算有序分数加减法
    intmain(){ inti=0; intflag=1; doublesum=0.0;//计算结果为小数,赋值应为小数; doublesum1=0.0; doublesum2=0.0; for(i=1;i<=100;i++) { /*sum+=f......
  • 全国土壤湿度数据集/土壤水分数据集(2000-2020)
    我们提供了中国范围内1km高质量的土壤湿度数据集-SMCI1.0(SoilMoistureofChinabyinsitudata,version1.0),SMCI1.0是包含2000-2020年、日尺度、以10厘米为间隔10层......
  • 全国土壤湿度/土壤水分数据集-China Soil Moisture Dataset(2000-2020)
       我们提供了中国范围内1km高质量的土壤湿度数据集-SMCI1.0(SoilMoistureofChinabyinsitudata,version1.0),SMCI1.0是包含2000-2020年、日尺度、以10厘米为......
  • (A数据可视化)用条形图显示某门课各分数段人数,如下图所示
    题目补充用条形图显示某门课各分数段人数,如下图所示,其中:标题为"成绩分布",x轴为各分数段,依次为[20,40,60,80,100],y轴为人数,依次为[1.0,2.0,3.0,5.0,4.0],柱宽为10,Y轴标尺起......
  • 分数与小数
    【例1】求1/n的值。问题描述给定个非0的整数n,计算1/n的值。输入第一行整数T,表示测试组数。后面T行,每行一个整数n(1≤|n|≤10^5)。输出输出1/n(是循环小数的,只输出......
  • C++运动会分数统计系统
    C++运动会分数统计系统一、运动会分数统计系统1.功能要求参加运动会有n个学校,学校编号为1....n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1····m,女子......
  • 第十周内容回顾(包含部分数据库)
    目录python操作MySQLSQL注入问题视图触发器事务存储过程函数索引的相关概念索引数据结构慢查询优化前端之HTMLHTTP协议HTML概览head内常见标签body内基本标签常见符号body......
  • 集合习题分数排序
    创建一个学生类,属性包括id[1-40],分数0-100,所有属性随机生成,创建set集合,保存20个对象,找到分数最高和分数最低的学生privatestaticvoiddemo2(){//用treeset......
  • SQL常用日期格式化转换与百分数转换
    目录SQL将小数转为保留两位的百分数常用的日期格式化补充:秒/毫秒转为持续时间常用拼接方式:本篇开启数据库在工作中常用到的格式转换与工具,欢迎大家评论留言......