HDU 5912 Fraction
2024-08-31 10:56:09
题目来源:2016 CCPC 长春站
题意:青蛙先生想计算一个式子的值,输入两个数列a[],b[]求出最后的分子和分母
思路:一开始看到这个图片首先想到的是递归实现,递归部分始终计算的是右下部分
/*************************************************************************
> File Name: A.cpp
> Author: WArobot
> Mail: 768059009@qq.com
> Created Time: 2017年04月15日 星期六 21时10分45秒
************************************************************************/
#include<bits/stdc++.h>
#include<cstdio>
using namespace std;
long long n,a[100],b[100];
long long p,q;
void fun(long long step,long long z,long long m){
long long t1 = m*b[step-1] , t2 = m*a[step-1]+z;
if(step==1) {
p = t1 ; q = t2 ;
return;
}
fun(step-1, t1 , t2 );
}
int gcd(long long a,long long b){
return b==0?a:gcd(b,a%b);
}
int main(){
int t,kase = 0;
scanf("%d",&t);
while(t--){
scanf("%lld",&n);
for(int i=0;i<n;i++) scanf("%lld",a+i);
for(int i=0;i<n;i++) scanf("%lld",b+i);
p = q = 0;
if(n<=1) p = b[0] , q = a[0];
else fun(n-1,b[n-1],a[n-1]);
int d = gcd(p,q);
if(d!=0){
p /= d; q /= d;
}
printf("Case #%d: %lld %lld\n",++kase,p,q);
}
return 0;
}
后来一想为啥非得要用递归做......
/*************************************************************************
> File Name: A2.cpp
> Author: WArobot
> Mail: 768059009@qq.com
> Created Time: 2017年04月16日 星期日 20时35分55秒
************************************************************************/
#include<bits/stdc++.h>
using namespace std;
int t , kase = 0 , n;
int a[100] , b[100];
int p,q; // p为分子 q为分母
int gcd(int a,int b){
return b==0?a:gcd(b,a%b);
}
void solve(){
p = b[n-1] , q = a[n-1];
for(int i=n-2;i>=0;i--){
int t1 = p , t2 = q;
p = t2*b[i];
q = t2*a[i] + t1;
}
int d = gcd(p,q);
p /= d; q /= d;
}
int main(){
int kase = 0;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",a+i);
for(int i=0;i<n;i++) scanf("%d",b+i);
solve();
printf("Case #%d: %d %d\n",++kase,p,q);
}
return 0;
}
最新文章
- Angular表单验证
- 算法_队列的Java通用数组实现
- nginx的rewrite,gzip,反向代理学习笔记
- svn不能更新也不能提交【svn A conflict in the working copy obstructs the current operation】
- Darwin Streaming Server 6.0.3安装、订制、插件或模块
- UML 中关系详解以及在visio中的表示
- hdu 1106 排序
- 《Programming Massively Parallel Processors》Chapter5 习题解答
- SSH自动断开连接的原因
- IOS传值之Block传值(二)
- winform连接oracle时Oracle.DataAccess.dll版本问题
- 网络服务器系统wamp的安装
- 【安富莱二代示波器教程】第6章 示波器设计—双通道ADC驱动
- 用户在浏览器中输入一个url发生的奥秘
- 都是分号惹的祸 ORA-00911
- Python 安装 lxml 插件
- dns资源记录类型
- 解决VS2013 git客户端遇到的一些问题
- Java 大型系统高并发大数据的处理方式
- Motan