2023年蓝桥杯省赛——平方差

目录

题目链接:1.平方差 - 蓝桥云课 (lanqiao.cn)

思路

暴力偷分

发现规律

发现蹊跷

总结


题目链接:1.平方差 - 蓝桥云课 (lanqiao.cn)

思路

        咱就是说,写蓝桥杯的题目的第一件事情是什么,那就是不管三七二十一先暴力一下把能拿到的分数拿到再说没毛病。

暴力偷分

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;

public class Main {
	public static void main(String[] args) throws IOException{
		StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		st.nextToken();
		int L = (int) st.nval;
		st.nextToken();
		int R = (int) st.nval;
		
		int res = 0;
		for (int i = L; i <= R; i++) {
			if (have(i)) {
				res++;
			}
		}
		System.out.println(res);
	}
	
	public static boolean have(int x) {
		for (int i = 1; i <= x; i++) {
			for (int j = 0; j < x; j++) {
				if (x == i*i - j*j) {
					return true;
				}
			}
		}
		return false;
	}
}

嘿嘿

我不要脸!!~~~~~

发现规律

如果大家寻找一下数的规律

比如,1~16中满足题目要求的数字有

可以:1,3,4,5,7,8,9,11,12,13,15,16

不可以:2,6,10,14

满足要求的是奇数或者2的偶数倍

那么我就写下了如下的代码


// 1:无需package
// 2: 类名必须Main, 不可修改
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;

public class Main {
    public static void main(String[] args) throws IOException{
		// 得出结论是,奇数和二的偶数倍都可以
		StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		st.nextToken();
		int L = (int) st.nval;
		st.nextToken();
		int R = (int) st.nval;
		
		int res = 0;
		
		for (int i = L; i <= R; i++) {
			// 遍历所有数看有那些数满足通过观察得到的规律
			if (i % 2 != 0 || i % 4 == 0) {
				res++;
			}
		}
		System.out.println(res);
	}
}

        为什么,为什么只通过了90%,我的代码已经很完美了啊,啊啊啊啊啊啊啊,根本想不出来优化的方法了啊,难道我就要放弃了吗,放弃了吗,放弃了吗.........

发现蹊跷

        我也是服了,你们知道为什么我这里的输入流一直使用的是StreamTokenizer吗,因为在输入的数据量比较大的情况下它的效率更高,可以提升速度,但是我真的是服啦!!!!!!!!记住前任的话,有利有弊,你得到了什么必然会失去什么。查了一下资料才知道这个小东西使用navl读取的数据默认都是double类型,如果我们long类型的长度已经超过了double类型的精度那么对不起,听天由命吧。所以我老老实实用回了Scanner万金油老哥┭┮﹏┭┮爱了。

package src;

//1:无需package
//2: 类名必须Main, 不可修改
import java.util.Scanner;

public class Main {
 public static void main(String[] args) {
     // 得出结论是,奇数和二的偶数倍都可以
     Scanner sc = new Scanner(System.in);
     
     long L = sc.nextLong();
     
     long R = sc.nextLong();
     
     long res = 0L;
     res += (R + 1)/2 - L/2;

     res += R / 4 - (L - 1)/4;
     
     System.out.println(res);
 }
}

那么有些大聪明可能就不服了,写出了如下的处理方式

     StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
     st.nextToken();
     String lString = st.sval;
     // 用于等一下的测试效果
     System.out.println(lString);
     long L = Long.parseLong(lString);
     st.nextToken();
     String rString = st.sval;
     // 用于等一下的测试效果
     System.out.println(rString);
     long R = Long.parseLong(rString);

恭喜你,思路很棒,但是现实很骨感。。。。o(╥﹏╥)o

控制台是这样的

1 16
null
Exception in thread "main" java.lang.NumberFormatException: null
    at java.lang.Long.parseLong(Long.java:552)
    at java.lang.Long.parseLong(Long.java:631)
    at src.Main.main(Main.java:15)
 

为什么呢这里会是null呢wdf***?

        因为默认情况下,StreamTokenizer将把数字解析为double类型,并将其值存储在nval字段中。如果词素被认定为数字,sval字段将为null。

        所以这里就真的可以放弃StreamTokenizer,当然这个是可以修改处理方式的,但是有这时间不如直接换成Scanner更加爽

总结

        累了,记住遇到这种类似数学的问题,先找规律,如果比较大的测试用例超时,优化代码,如果答案错误在代码逻辑没问题的情况下,看看精度问题。

下班!!!喽~~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/474797.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图像分类神经网络综述

一、图像分类神经网络发展的四个阶段 经典深度卷积神经网络模型注意力机制卷积神经网络模型轻量级卷积神经网络模型神经网络架构搜索模型 二、深度卷积神经网络模型 1、LeNet 其包含 3 个卷积层 、2 个池化层和 2 个全连接层 , 每个卷积层和全连接层均有可训练的参数, 为深…

Xftp传输文件名乱码问题

背景 项目有个静态文件下载时是几天前的老文件&#xff0c;最新文件不下载。检查路径啥的都没问题后&#xff0c;确定就是当前文件夹。 发现 正当纳闷时候&#xff0c;当前文件中有一个乱码文件&#xff0c;没多想&#xff0c;让同事看一下&#xff0c;他看到老文件名是正常的…

鸿蒙Harmony应用开发—ArkTS-属性动画

组件的某些通用属性变化时&#xff0c;可以通过属性动画实现渐变过渡效果&#xff0c;提升用户体验。支持的属性包括width、height、backgroundColor、opacity、scale、rotate、translate等。布局类改变宽高的动画&#xff0c;内容都是直接到终点状态&#xff0c;例如文字、can…

2024Python计算机二级7

带符号的定点数之中&#xff0c;正数的原码、补码和反码均相同&#xff0c;负数的反码是对该数的原码除符号位外各位取反&#xff0c;补码是在该数的反码的最后&#xff08;即最右边&#xff09;一位上加1&#xff1b;不管是正数还是负数&#xff0c;其补码的符号位取反即是偏移…

Linux常用命令之文件权限类

1.1 Linux的文件属性 在Linux里使用ll或者ls-l命令来显示一个文件的属性以及文件所属的用户和组。 以-开头&#xff1a;普通文件 以d开头&#xff1a;目录 以l开头&#xff1a;链接 以c开头&#xff1a;字符类型的设备文件(例如&#xff1a;鼠标、键盘&#xff0c;他们输入…

网站HTTPS证书怎么获取?有免费的吗?

嘿&#xff0c;朋友们&#xff01;想让你的网站更加安全可靠&#xff0c;让访客安心浏览吗&#xff1f;那就离不开SSL证书的帮助了。SSL证书就像是你网站的守护盾&#xff0c;它能够加密网站与用户浏览器间的通信&#xff0c;使得数据传输过程中既安全又私密。今天&#xff0c;…

【MySQL】存储过程、存储函数、触发器

目录 存储过程介绍技术背景存储过程的作用与优势存储过程跟自定义函数很像。它们的区别是&#xff1a; 存储过程的缺点存储过程的特性基本存储过程使用1.创建语法语法说明&#xff1a;使用案例1.创建获取新闻类别数量的存储过程2.创建获取指定新闻类别ID下新闻数量的存储过程 2…

冶炼金属---蓝桥杯c++B组真题

题目描述如下 本题当然可以简单的模拟题目含义&#xff0c;暴力去做&#xff0c;把v从1枚举到1e9&#xff0c;找哪两个数分别使得a/x等于b&#xff0c;并且是该情况的边界&#xff0c;但这样的时间复杂度是n&#xff0c;对于1e9来说是会超时的&#xff0c;我们要想办法优化 首…

IOS推送证书过期如何更新证书(uni-push)?

1. 生成CSR文件 1.2 选择存储到磁盘 - 填写相关信息 - 继续 - 保存后续使用 2. 登录苹果开发者后台&#xff0c;重新创建推送证书 2.1 点击Account - 进入此页面 点击证书、标识符和描述文件下的证书 2.2 点击Identifiers选择要更新的项目2.3 选择Push Notifications&#xf…

TTP 错误 500.19 - Internal Server Error

1、错误详细内容如下图所示&#xff1a; 2、以管理员身份运行命令提示符&#xff1a; %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules 3、问题解决了&#xff0c;哈哈哈哈~&#xff01;

数据库运行状况和性能监控工具

数据库监控是跟踪组织中数据库的可用性、安全性和性能的过程&#xff0c;它涉及通过跟踪各种关键指标来分析数据库的性能&#xff0c;确保数据库的正常运行并具有深入的可见性&#xff0c;并在出现潜在问题时触发即时警报&#xff0c;以采取主动措施来确保数据库的高可用性。 …

炼丹!训练 stable diffusion 来生成LoRA定制模型

LoRA&#xff0c;英文全称Low-Rank Adaptation of Large Language Models&#xff0c;直译为大语言模型的低阶适应&#xff0c;这是微软的研究人员为了解决大语言模型微调而开发的一项技术。 比如&#xff0c;GPT-3有1750亿参数&#xff0c;为了让它能干特定领域的活儿&#xf…

【C++从练气到飞升】04---拷贝构造函数

&#x1f388;个人主页&#xff1a;库库的里昂 ✨收录专栏&#xff1a;C从练气到飞升 &#x1f389;鸟欲高飞先振翅&#xff0c;人求上进先读书。 目录 ⛳️推荐 一、拷贝构造函数的引入 1. 以日期类为例:进行的值拷贝是不会发生错误的 2. 以栈类为例:进行的值拷贝会发现发…

AI论文速读 |(Mamba×时空图预测!) STG-Mamba:通过选择性状态空间模型进行时空图学习

&#xff08;来了来了&#xff0c;虽迟但到&#xff0c;序列建模的新宠儿mamba终于杀入了时空预测&#xff01;&#xff09; 论文标题&#xff1a;STG-Mamba: Spatial-Temporal Graph Learning via Selective State Space Model 作者&#xff1a;Lincan Li, Hanchen Wang&…

Java中的I/O讲解(超容易理解)(中篇)

如果想观看更多Java内容 可上我的个人主页关注我&#xff0c;地址 子逸爱编程-CSDN博客https://blog.csdn.net/a15766649633?spm1000.2115.3001.5343 使用工具 IntelliJ IDEA Community Edition 2023.1.4 使用语言 Java8 代码能力快速提升小方法&#xff0c;看完代码自己…

学几招静态路由配置技巧,让你事半功倍!

中午好&#xff0c;我的网工朋友。 静态路由是在网络设备上手动配置的路由信息&#xff0c;用于指定数据包的传输路径。 无论是项目中交换机的静态路由配置&#xff0c;还是在公司网络中路由器的静态路由设置&#xff0c;都有非常多的应用。 与动态路由协议不同&#xff0c;…

java每日一题——幸运囚犯(合集遍历,查询数据练习)

前言&#xff1a; 合集基本学完了&#xff0c;做做题巩固下知识点。打好基础&#xff0c;daydayup! 题目如下&#xff1a; 目前有100名囚犯&#xff0c;每个囚犯的编号是1-200之间的随机数。现在要求依次随机生成100名囚犯的编号&#xff08;要求这些囚犯的编号是不能重复的&a…

DCDC电源管理芯片MC34063A,内含温度补偿的参考电压源(1.25V)、比较器、能有效限制电流及控制工作周期的振荡器,驱动器及大电流输出开关管等

MC34063A 为一单片 DC-DC 变换集成电路&#xff0c;内含温度补偿的参考电压源&#xff08;1.25V&#xff09;、比较器、能有效限制电流及控制工作周期的振荡器&#xff0c;驱动器及大电流输出开关管等。外配少量元件&#xff0c;就能组成升压、降压及电压反转型 DC-DC 变换器。…

基于net的医院病历管理系统

摘 要 伴随着我国社会的发展&#xff0c;人民生活质量日益提高。互联网逐步进入千家万户&#xff0c;改变传统的管理方式&#xff0c;医院病历管理系统以互联网为基础&#xff0c;利用net技术&#xff0c;和SQL Server数据库开发设计一套医院病历管理系统&#xff0c;提高工作…

C++第九弹---类与对象(六)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 日期类 1、日期类的分析和设计 1.1、日期类的功能说明 1.2、日期类的分析和设计 1.2.1、数据结构的分析 1.2.2、文件结构设计 2、日期类的结构分析…