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更加爽

总结

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

下班!!!喽~~

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【爬虫】web自动化和接口自动化

专栏文章索引&#xff1a;爬虫 目录 一、介绍 二、推荐 1.接口自动化 2.Web自动化 一、介绍 爬虫技术一般可以分为两种类型&#xff1a;接口自动化和web自动化。下面是它们的简要介绍&#xff1a; 1.接口自动化 接口自动化技术的主要目的是通过模拟HTTP请求来实现自动化…

Docker在Mac上轻松部署RabbitMQ:从拉取镜像到创建运行带管理界面的容器全攻略

1、去官网下载docker 安装&#xff1a;把图标拉到应用程序即可 https://docs.docker.com/desktop/install/mac-install/ 2、拉取rabbitmq镜像 docker pull rabbitmq:3.8-management 3、创建并启动容器&#xff0c;同时设置环境变量以创建用户和密码 docker run -d --name m…

axure和蓝湖上查看页面的说明和上传文件

蓝湖上传文件 入口 可添加链接和文件 文件可添加 PDF&#xff0c;word&#xff0c;Excel等&#xff0c;不能添加压缩包&#xff0c;可在线预览文件内容 axure元件说明 在原型上添加说明 axure发布页 axure预览页或发布到axure的服务器上&#xff0c;查看页面说明的方法 点…

C++之模版详解

一.array与vector对比 由图发现&#xff0c;使用array数组是必须提前开好空间&#xff0c;而vector是顺序表&#xff0c;可以实现动态开辟空间 array也支持迭代器&#xff0c;如下&#xff1a; int main() {array<int, 10> arr{ 1,2,3,4,5,6,7,8,9,10 };auto it arr.be…

【感悟《剑指offer》典型编程题的极练之路】01数组篇!

​​​​​​​ ​​​​​​​ 个人主页&#xff1a;秋风起&#xff0c;再归来~ ​​​​​​​ 文章所属专栏&#xff1a;《剑指offer》典型编程题的极练之路 ​​​​​​​ ​​​​​​​ …

内网横向1

IPC$详解 IPC( Internet Process Connection) 共享 “ 命名管道 ” 的资源 , 是为了实现进程间通信而开放的命名管道。 IPC 可以通过验证用户名和密码获得相应的权限&#xff0c;通常在远程管理计算机和查看计算机的共享资源时使用 通过 ipc$ &#xff0c;可以与目标机器建立连…

第六十一回 放冷箭燕青救主 劫法场石秀跳楼-编译安装飞桨paddlepaddle@openKylin+RISCV

卢俊义在水里被张顺抓住&#xff0c;用轿子抬到了梁山。宋江等人下马跪在地上迎接&#xff0c;请他坐第一把交椅。卢俊义宁死不从&#xff0c;大家只好说留他在山寨几天&#xff0c;先让李固带着马车货物回去。吴用对李固说&#xff0c;你的主人已经答应坐第二把交椅了&#xf…

安科瑞智能断路器产品介绍【可监可控 远程操控 短路保护】

开发背景 过去几年智慧用电的产品应用中&#xff0c;大多数只安装于进线测。主要存在以下几个问题&#xff1a;难定位&#xff0c;不知道具体哪个回路出线问题&#xff0c;排查困难&#xff1b;出线过载或线缆温度过高无法知晓&#xff1b;即使是出线回路安装了的场景&#xf…

Vue3 依赖注入provide与inject

简介 关于provide与inject下面是vue官网上的一些介绍 通常情况下&#xff0c;当我们需要从父组件向子组件传递数据时&#xff0c;会使用props。想象一下这样的结构&#xff1a;有一些多层级嵌套的组件&#xff0c;形成了一颗巨大的组件树&#xff0c;而某个深层的子组件需要一个…

HarmonyOS卡片刷新服务,信息实时更新一目了然

如今衣食住行娱乐影音等App占据了大多数人的手机&#xff0c;一部手机可以满足日常大多需求&#xff0c;但对需要经常查看或进行简单操作的场景来说&#xff0c;总需要用户点开App操作未免过于繁琐。 针对该问题&#xff0c; HarmonyOS SDK为用户提供了Form Kit&#xff08;卡…

ARM64汇编07 - 访存指令

访存指令是ARM64汇编语言中的一部分&#xff0c;涵盖了数据访问和内存操作的指令。这些指令使处理器能够与内存进行交互&#xff0c;包括读取数据、写入数据以及执行其他内存相关的操作。理解这些指令对于理解处理器如何与内存交互以及如何管理数据至关重要。 访存指令介绍两个…

ChatGPT又要更新了?GPT-5发布时间确定!

在K-Startup-OpenAI Match Day活动上&#xff0c;OpenAI CEO萨姆奥特曼(Sam Altman)首次公开肯定了GPT-5的潜力。他指出&#xff0c;GPT-5不仅会带来显著的进步&#xff0c;更将在高级推理功能上实现一次前所未有的飞跃&#xff0c;打破外界对于其仅是渐进式提升的误解。 同时现…

开源表单设计器颗粒度级别控制表单的显示条件原理分析

表单渲染中, 有些表单的显示有不同条件, 比如需要上一个表单的开关打开,或者文本内容为 xxxx, 或者需要大于或等于或小于指定值, 或者需要选中某个选项, 或者需满足以上多个条件或在满足多个条件中的一个, 有 n 种场景选择, 这样就需要条件显示配置功能, 来满足多样化需求 预览…

【干货】Java开发者快速上手.NET指南

前言 前几天有小伙伴在技术群里发了一个微软官方出的&#xff1a;适用于Java开发人员的.NET快速入门免费电子书&#xff0c;今天大姚来分享一下Java开发者想要快速上手.NET有哪些教程和优质资料。 微软适用于Java开发人员的.NET快速入门指南 下载阅读地址&#xff1a;适用于 …

(基础)AJAX概念和axios使用、URL、请求方法和数据提交、HTTP协议、接口、form-serialize插件

AJAX概念和axios使用 AJAX概念 AJAX就是使用XMLHttpRequest对象与服务器通信&#xff0c;它可以使用JSON、XML、HTML和text文本等格式发送和接收数据&#xff0c;AJAX最吸引人的就是它的异步特性&#xff0c;也就是说它可以在不重新刷新页面的情况下与服务器通信&#xff0c;…

windows10装windows11的CMD(Terminal)终端

文章目录 一 前言二 安装Terminal三 启动设置成默认启动cmd 一 前言 我装了WSL的LINUX系统&#xff0c;在 windows10 系统下面不方便启动linux&#xff0c;但是Windows11 在cmd 里面就可以打开&#xff0c; 所以找了这个方法 二 安装Terminal 先在windows10微软的商城(Microso…

>>Vue3+pinia+echarts等实现疫情可视化大图

一.>>前言 1.这个项目是在小满实战篇可视化&#xff08;第九章-饼图&#xff09;_哔哩哔哩_bilibili 这一系列课程为基础来做的&#xff0c;真的很感谢小满老师&#xff0c;讲的内容干货满满&#xff0c;暂时解决了手上没有项目的难题。大家可以去观摩一下他的优质课程。…

什么是膨胀卷积/空洞卷积

什么是膨胀卷积/空洞卷积 膨胀卷积&#xff08;Dilated Convolution/Atrous Convolution&#xff09;&#xff08;下面都使用膨胀卷积 这个名词&#xff09; 先来一张图&#xff0c;让大家对于膨胀卷积有个直观的理解&#xff0c;上图左边就是普通卷积&#xff0c;右边是膨胀卷…

外包干了14天,技术退步明显。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;2019年我通过校招踏入了成都一家软件公司&#xff0c;开始了我的职业生涯。那时的我&#xff0c;满怀热血和憧憬&#xff0c;期待着在这个行业中闯出一片天地。然而&#xff0c;随着时间的推移&#xff0c;我发现自己逐渐陷入…

京东按图搜索京东商品(拍立淘) API 返回值说明

京东按图搜索商品&#xff08;拍立淘&#xff09;的API返回值包含了关于通过图片搜索到的京东商品的相关信息。由于我无法提供最新的京东API返回值的确切结构&#xff0c;以下是基于常见API设计原则的一个大致的返回值示例和说明&#xff1a; 调用链接获取详情 item_search_i…