PAT乙级考后杂谈

PAT乙级考后杂谈上周末去隔壁大学参加了PAT乙级的考试,结果没想到第一次考试就出了点小问题…本来考试是在1.30全国各个考点都同时开始(因为要排名),结果快到1.30的时候机房连不上网络,最后我们这个考点直接移后到将近2.30才开始考试,虽然结束时间也移后了,不过这多年不遇的突发情况直接让我遇到也太真实了。。。小插曲过后,再说下考试内容,乙级确实难度不大,三小时五道题,前两道题基本是送分题,虽然作者本人比较菜…

大家好,又见面了,我是你们的朋友全栈君。

上周末去隔壁大学参加了PAT乙级的考试,结果没想到第一次考试就出了点小问题…

本来考试是在1.30全国各个考点都同时开始(因为要排名),结果快到1.30的时候机房连不上网络,最后我们这个考点直接移后到将近2.30才开始考试,虽然结束时间也移后了,不过这多年不遇的突发情况直接让我遇到也太真实了。。。

小插曲过后,再说下考试内容,乙级确实难度不大,三小时五道题,前两道题基本是送分题,虽然作者本人比较菜花了四五十分钟,但基本也在可接受范围内。

接下来主要说下这个第三题,这题真的坑我不浅,简单说下题目:输入两个数n,m(0<=n<m<=25000),在此范围内找到一个数a使得它与另外一个(0,25000)范围得数b满足如下关系:a^3 – (a-1)^3=( b^2+ (b-1)^2) ^2(原题不是这样给的,这是换算完的结果),然后满足此关系的数对a,b按照a的大小顺序输出在屏幕上,如果找不到则输出No Solution

简单分析下这题,显然暴力使用双重循环遍历一定会超时,所以在外层循环确定了a时,内层查找b时使用二分的办法就不会超时了。

我当时的第一思路就是如此,但是在写第二层的二分查找时,出现了一个问题:对于给定的m,n只能找出一组答案,第二次进入循环时,L和R(左右端点)的值不会改变,所以导致只能找到一组解。当时百思不得其解,花了一个多小时在上面也没能成功找出问题。考试结束后我根据回忆重新写了这道题(基本与我考试写的一模一样),试图找出问题所在,结果程序运行结果竟然正确。。。下贴出代码:(考试和我本机都是使用DEVC++,只不过考试时的版本稍老一些)

//0<n<m<25000,(a^3-(a-1)^3)=(b^2+(b-1)^2)^2 
#include <iostream>
using namespace std;
long long a3(long long a)
{
	return (a*a*a-(a-1)*(a-1)*(a-1));
}
long long b2(long long b)
{
	return (b*b+(b-1)*(b-1))*(b*b+(b-1)*(b-1));
}
int main()
{
	int n,m;
	long long l=1,r=25000;
	long long mid;
	cin >> n >> m;
	for(int i=n;i<=m;i++)
	{
		l=1;
		r=25000;
		while(l<=r)
		{
			mid=(r-l)/2+l;
			if(a3(i)==b2(mid))
			{
				cout << i << ' ' << mid << endl;
				break;
			}
			else if(a3(i)>b2(mid))
			{
				l=mid+1;
			}
			else
			{
				r=mid-1;
			}
		}
		
	}
	return 0;
}

真的很怪。。因为我坚信我的思路没错,在那里debug一个多小时,导致后面的题(第四题和这道题差不多,第五题涉及到链表,稍微麻烦一些)没什么时间做。。难顶

不过上述代码确实也不是完美的,有什么缺陷希望有大佬可以指教一下,也许能启发我想到考试中我到底这道题出了什么问题

总体来说乙级不是很难,基本不涉及什么算法和数据结构,虽然出了点小插曲不过拿来练手还是不错的,明年甲级倒是要好好考一下

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132537.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用cookie登录百度网盘(网站使用cookie)

    cookies2.txt为存放cookie字符串的文件。cookie字符串获取方式1.可以通过手动的方式去取,比如登录之后在console里面执行document.cookie即可获得2.在application里面查看cookie的值3.通过webdriver.Chrome(…)创建出来的实例,调用get_cookies()就可以获取到…

    2022年4月10日
    523
  • 拓端tecdat|python卷积神经网络人体图像识别[通俗易懂]

    拓端tecdat|python卷积神经网络人体图像识别[通俗易懂]原文链接:http://tecdat.cn/?p=7563二十多年来,自动发现裸体图片一直是计算机视觉中的中心问题,并且由于其悠久的历史和直接的目标,它成为该领域如何发展的一个很好的例子。在这篇博文中,我将使用裸露检测问题来说明现代卷积神经网络(convnets)的训练与过去的研究有何不同。(警告和免责声明:这篇文章包含了裸露的可视化效果,以用于科学目的。如果您未满18岁…

    2022年5月8日
    45
  • 一种突发事件的时滞动力学模型 2019-nCoV与参数辨识[通俗易懂]

    一种突发事件的时滞动力学模型 2019-nCoV与参数辨识[通俗易懂]@TOC一种突发事件的时滞动力学模型2019-nCoV与参数辨识摘要在本文中,我们提出了一个具有时滞的动态系统来描述2019-nCoV在中国的爆发。这种传染病的一个典型特征是它可以在潜伏期传播,因此可以用微分方程中的时滞过程来描述。分类群体的累计数量作为变量,与官方数据一致,便于参数辨识。为2019-nCoV疫情的预测和参数识别提供了数值方法,数值结果表明,该动态系统能够较好地预测疫情的发展…

    2022年9月28日
    4
  • 统计机器学习-Multinoulli分布、多项式分布

    统计机器学习-Multinoulli分布、多项式分布Multinoulli分布(多元伯努利分布):模型:       Mu(p)Mu(p)Mu(p)       d面????获得每一面的概率: p1,p2,…,pdp_1,p_2,…,p_dp1​,p2​,…,pd​分布函数:p(x∣p)=∏k=1dpkxkp(x|p)=\prod_{k=1}^dp_k^{x_k}p(x∣p)=k=1∏d​pkxk​​E(X)=pE(X)=pE(…

    2022年8月31日
    4
  • 人们的Live Meeting系列 (floyd)

    人们的Live Meeting系列 (floyd)

    2022年1月16日
    48
  • totalcmd工具的主要功能_windows cmd 命令大全

    totalcmd工具的主要功能_windows cmd 命令大全一、Totalcmd配合7-Zip进行压缩、解压缩下载7z文件。可去官网下载安装版文件,再解压,只提取其中的7z.dll文件和7zG.exe文件再将其放在totalcmd\Utilities\7-Zip目录下。(注Utilities是我自己建的一个文件夹,用来存放一些可直接调用的小工具。)说明:虽说7-Zip有个叫7za.exe的命令行工具,但显示效果不佳…

    2025年8月3日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号