96SEO 2026-02-19 22:39 0
三、实现代码四、代码测试4.1蓝桥杯测试平台4.2直接传入原始输入的k值4.3限制k值大小4.4pow函数求整数高次幂存在误差4.5满分代码

给定指定阶数的皮亚诺曲线以及曲线上的两个点的坐标求解两个点之间的距离曲线起点坐标规定为0,0。
k1阶的皮亚诺曲线是在k阶曲线的基础上每一个格子由一阶曲线代替而生成。
例如二阶曲线如下图
k阶曲线的边长为3的k次幂格子总数为3的2k次幂。
无论k取何值曲线的起点总为左下角坐标为0,0终点为右上角坐标为3的2k次幂-1,3的2k次幂-1。
如果直接求解两点间的距离那么需要求解任意两点间的详细路径难度很大可以将求两点间距离转换为求出到原点的距离然后相减k1阶曲线是在1阶曲线的基础上层层细化网格而成那么任意一点到原点的距离也可以先从宏观处入手层层细化求解。
一阶曲线按照从起点到终点的行走顺序对网格进行划分那么可分为1~9个区域如下图所示
任意k阶曲线都可以划分为上图所示的9个区域例如二阶曲线划分如下图
假设k阶曲线上的任意一点该点到原点的距离该点到所在区域起点的距离本区域之前的区域网格数累加和而该点到所在区域起点的距离又可以转换为以所在区域起点为原点的求解到原点距离的问题因此可以层层递归求解。
首先判断出k阶曲线上任意一点xy所在区域每个区域的边长为3的k-1次幂因此可以通过对比大小得出判断点到所在区域起点的距离如果要转换为以所在区域起点为原点的点到该原点的距离就要将区域的起点映射为区域1的起点即原点该映射不仅仅是平移可能还要旋转以二阶曲线为例区域2的起点转换为区域1的起点。
区域2的起点坐标为2,3如果要转换到0,0那么就需要进行映射2-xy-3xy为区域2内的点2-x说明区域2进行了X轴方向的翻转本区域之前的区域网格数累加计算较为简单每个区域的网格数为3的2k-2次幂例如区域5之前的区域网格数累加就等于4×3的2k-2次幂。
解题步骤大致如上读者对皮亚诺曲线随阶数的增加而在形状上层层裂变的过程有一个形象的想象过程有助于理解解题步骤。
由于题目中说明k值范围为1~100而点的坐标的范围为不超过10的18次方显然3的100次幂超过了10的18次方同时也超过了C中long
long类型可表示的范围因此不能直接将k值代入进行求解而是要先判断出在10的18次方范围内的最大k值判断代码如下
k);if(p11e18)break;k;}coutkendl;coutp1endl;
k38;coutabs(func01(x11,y11,k)-func01(x12,y12,k))endl;return
为测试代码正确性可以在蓝桥杯的刷题平台提交代码网址为https://www.lanqiao.cn/problems/?first_category_id1。
在蓝桥杯解题平台对代码进行测试当将k值直接传入递归函数时可以得到90%的分数显示10个测试实例中有一个答案错误如下图所示
对k值大小进行限制采用了本文第三节中给出的代码在蓝桥杯平台提交结果依然显示10个测试实例中有一个答案错误后将该错误实例的输入数据与输出数据下载到本地测试数据如下
kx11x12y11y12100972800214282722763781912860110024270972800214336621164781912860202693276
在本地运行程序得到的输出为191503939959943987确实与答案不一致经过一番检查后发现是由于pow函数导致的答案错误。
分别使用pow函数求3的k次幂与连续乘积计算3的k次幂测试结果的一致性代码如下
k);p2*3;if(p11e18)break;k;coutp1,p2endl;}coutkendl;coutp1endl;
从输出结果分析当k≥35时两种方法计算出的3的k次幂出现了不同且差异会越来越大。
通过查找资料得知pow函数返回的是double类型在被强制转换为整型时会出现误差。
因此代码中不再使用pow函数而是通过连续乘积计算幂最终代码如下
p[i]p[i-1]*3;coutabs(func01(x11,y11,k)-func01(x12,y12,k))endl;return
初始编写上述代码时第一个点的坐标变量本来定义为x1y1代码在本地Dev-C编译器上能够正确运行但是在蓝桥杯解题平台上运行就报出该错误后经查找资料后发现cmath头文件中定义了与y1同名的函数所以导致报错因此上述代码中的变量名改为x11,y11,x12,y12。
类型专用存储空间表示范围次方表示int4个字节-2,147,483,6482,147,483,647
232-1约为10的9次方long4个字节-2,147,483,6482,147,483,647
long8个字节-9,223,372,036,854,775,8089,223,372,036,854,775,807
long8个字节018,446,744,073,709,551,6150
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback