当前位置: 首页> 房产> 建筑 > 洛谷 2道 “升级版” 题目 题解

洛谷 2道 “升级版” 题目 题解

时间:2025/7/28 18:08:10来源:https://blog.csdn.net/woshishabi0716/article/details/140845698 浏览次数:0次

先看一下这两道题目:

No.1:P1482 Cantor表(升级版)

No.2:P1534 不高兴的津津(升级版)

OK,开始正文!

第一道:P1482 Cantor表(升级版)

题目描述

现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:

这次与 NOIP1999 第一题不同的是:这次需输入两个分数(不一定是最简分数),算出这两个分数的积(注意需要约分至最简分数),输出积在原表的第几列第几行(若积形如 a(即结果为整数)或者 1/a,则看作表内的 a/1 或 1/a 结算)。

输入格式

共两行。每行输入一个分数(不一定是最简分数)。

输出格式

两个整数,表示输入的两个分数的积在表中的第几列第几行。

输入输出样例

输入 #1

4/5
5/4

输出 #1

1 1

说明/提示

数据范围

对于全部数据,两个分数的分母和分子均小于 10^4。

思路:

对于一个分数,约分后分母是行,分子是列,怎么约分?提供2种方式(以下均为函数实现):

1.用c++自带的__gcd函数(注意是两个下划线)

2.辗转相除法

下面看一下这2种方式的代码:

代码1(__gcd函数)12行:

#include<bits/stdc++.h>
using namespace std;
int main()
{int a,b,c,d;scanf("%d/%d %d/%d",&a,&b,&c,&d);a*=c,b*=d;int gcd=__gcd(a,b);a/=gcd,b/=gcd;cout<<b<<" "<<a;return 0;
}

代码2(自定义函数)16行

#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{return a%b==0?b:gcd(b,a%b);
}
int main()
{int a,b,c,d;scanf("%d/%d %d/%d",&a,&b,&c,&d);a*=c,b*=d;int gcdd=gcd(a,b);a/=gcdd,b/=gcdd;cout<<b<<" "<<a;return 0;
}

第二道:P1534 不高兴的津津(升级版)

题目描述

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每天妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。

这次与 NOIP2004 普及组第一题不同的是:假设津津不会因为其它事不高兴,但是她的不高兴会(当然高兴也会)持续到第二天。请你帮忙检查一下津津以后 n 天的日程安排,看看以后 n 天她会不会不高兴(计算方法:用昨天不高兴程度加上今天上课总时间减去 8 后得到的数作为今天不高兴程度);输出以后 n 天结束后不高兴程度和是多少。

输入格式

第一行共一个数 n。

第二行至第 n+1 行,每行两个数,表示这天上学时间和课外补习班时间。

输出格式

一个数,这 n 天过后的不高兴程度和。

输入输出样例

输入 #1复制

7
5 3
6 2
7 2
5 3
5 4
0 4
0 6

输出 #1复制

-2

说明/提示

数据范围及约定

对于全部数据,上学时间和上课时间各不超过 8,和不超过 16,n≤3000。

思路:

直接一个循环解决,不必多说

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,sum=0,cnt=0;cin >> n;while(n--){int s,f;cin >> s >> f;sum+=s+f-8;cnt+=sum;}cout<<cnt;return 0;
}

这篇博客就到这里啦,我们一会儿再见!(突然发现你们是关注不点赞收藏,点赞收藏不关注

关键字:洛谷 2道 “升级版” 题目 题解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: