CCF计算机软件能力认证202309-2坐标变换(其二)(C语言)

ccf-csp计算机软件能力认证202309-2坐标变换(其二)(C语言版)


题目内容:

问题描述
在这里插入图片描述

输入格式
在这里插入图片描述

输出格式
在这里插入图片描述

样例输入

10 5
2 0.59
2 4.956
1 0.997
1 1.364
1 1.242
1 0.82
2 2.824
1 0.716
2 0.178
2 4.094
1 6 -953188 -946637
1 9 969538 848081
4 7 -114758 522223
1 9 -535079 601597
8 8 159430 -511187

样例输出

-1858706.758 -83259.993
-1261428.46 201113.678
-75099.123 -738950.159
-119179.897 -789457.532
114151.88 -366009.892

样例解释

请添加图片描述

评测用例规模与约定
在这里插入图片描述
评分方式

如果你输出的浮点数与参考结果相比,满足绝对误差不大于 0.1,则该测试点满分,否则不得分。

提示
在这里插入图片描述

解题思路

  1.第一步分析问题,n个操作,m个坐标,对每个坐标的操作是n个操作里的某个区间,鉴于此首先自然而然想到的肯定就是存储下来所有的操作,然后对于每个坐标进行for循环这一系列操作。但是最终成绩只有80分,所以这个思路当数据量比较大时不符合题目要求。
  2.简化问题,既然最直接的方法不可以,那我们就尝试简化数学问题,参考第一题,这一题肯定也是将伸缩量和旋转角度归一至一个值,旋转很多次,最终也只是旋转了一个固定的角度,伸缩同理。所以既然是一系列操作里的某个区间,那我们如何能够快速的获得这个区间的伸缩量和旋转角度呢?
  3.解决问题,从普通到特殊,假如现在这个区间是所有的操作,那么只需要从第一步到最后一步逐步加减乘除就可以,假设现在不想要最后一步了,减去相应的旋转角度或是除去相应的伸缩量就可以,不想要第一步操作也是同理。自然而然就能想到,每到一个节点,我们存储从第一步到这个节点的所有变换,那么例如我们现在想要第四步到第十步的变换,那么只需要第一步到第十步的变换减去第一步到第三步的变换即可,相应的减去相应的弧度,除去相应的伸缩量,至此问题得到了解决。
  4.最终由于每个数据只用一次,我们采用边存边用的形式,对于每一个输入的操作,进行汇总并存入新的数组,代表从第一步到现在所有操作的汇总。最后对于输入的操作区间以及坐标,进行相应的删减后按照题目提供的计算公式计算并输出即可。

提交后得100分的C语言程序如下:

#include<stdio.h>
#include<math.h>int main() {int n, m, i, flag, a, b, x, y;scanf("%d%d", &n, &m);double temp, rad = 0, k = 1, nrad[n+1], nk[n+1];nrad[0] = 0;nk[0] = 1;for (i = 1; i <= n; i++) {scanf("%d%lf", &flag, &temp);if (flag == 1) k = k * temp;else rad = rad + temp;nk[i] = k;nrad[i] = rad;}while (m--) {scanf("%d%d%d%d", &a, &b, &x, &y);k = nk[b] / nk[a-1];rad = nrad[b] - nrad[a-1];printf("%lf %lf\n", x * k * cos(rad) - y * k * sin(rad), x * k * sin(rad) + y * k * cos(rad));}return 0;
}

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

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

相关文章

计算机网络之网络传输,三次握手和四次挥手

网络传输通过高低电压 流 基本类型数组 低电压转高电压&#xff0c;通过网卡 传输模式&#xff1a; 全双工&#xff1a;互相传输且能同时传输 半双工&#xff1a;互相传输但是不能同时传输 单工&#xff1a;单向传输&#xff0c;&#xff08;键盘&#xff0c;显示器&#…

kubernetes详解——从入门到入土(更新中~)

k8s简介 编排工具&#xff1a;系统层面ansible、saltstackdocker容器docker compose docker swarm docker machinedocker compose&#xff1a;实现单机容器编排docker swarm&#xff1a;实现多主机整合成为一个docker machine&#xff1a;初始化新主机mesos marathonmesos …

微信小程序查看接口信息(抓包)

本文仅供交流学习使用 主要参考: https://cloud.tencent.com/developer/article/1833591 https://www.cnblogs.com/x1you/p/12033839.html 由于参考文章在baidu权重不高(google才查到的), 所以自己重新记录一篇, 方便他人, 也防止参考文章丢失. 背景 需要知道微信小程序的接口…

8、Broker进一步了解

1、Broker消息分发服务以及构建ConsumeQueue和IndexFile与消息清除 前面分析如何进行刷盘&#xff0c;本章分析Broker的消息分发以及构建ConsumerQueue和IndexFile&#xff0c;两者构建是为了能够提高效率&#xff0c;减少消息查找时间以及减少网络带宽与存储空间。 ConsumeQ…

mac电池最大充电限制工具 AlDente Pro中文 for Mac

Pro 版特有功能 热保护&#xff1a;在电池温度较高时为电池充电会导致电池老化更快。启用热保护后&#xff0c;当电池温度过高时&#xff0c;充电将自动停止。 航行模式&#xff1a;通常情况下&#xff0c;即使激活了最大电池充电&#xff0c;您的 MacBooks 电池也会始终稍微充…

7.上传project到服务器及拉取服务器project到本地、更新代码冲突解决

1.上传project到SVN服务器 1.在eclipse中&#xff0c;从show view里调出SVN资源库视图 2.在SVN资源库窗口的空白位置右键选择新建资源库位置 3.填好服务器的地址 4.资源库导入成功,SVN资源库视图下出现导入的资源库 5.新建project 6.写好project的初始版本 7.右键project --&…

激光雷达生成的图像检测关键点用来辅助里程计的方案

文章&#xff1a;LiDAR-Generated Images Derived Keypoints Assisted Point Cloud Registration Scheme in Odometry Estimation 作者&#xff1a;Haizhou Zhang , Xianjia Yu, Sier Ha , Tomi Westerlund 编辑&#xff1a;点云PCL 欢迎各位加入知识星球&#xff0c;获取PDF…

数据结构与算法编程题41

线性表中各结点的检索概率不等时&#xff0c;可用如下策略提高顺序检索的效率&#xff1a; 若找到指定的结点&#xff0c;则将该结点和其前驱结点&#xff08;若存在&#xff09;交换&#xff0c;使得经常被检索 的结点尽量位于表的前端。试设计在顺序结构的线性表上实现上述策…

DCGAN生成网络模型

DCGAN&#xff08;Deep Convolutional Generative Adversarial Network&#xff09;是一种生成对抗网络&#xff08;GAN&#xff09;的变体&#xff0c;专门设计用于生成图像。它结合了卷积神经网络&#xff08;CNN&#xff09;和生成对抗网络的概念&#xff0c;旨在生成具有高…

mysql基础之DQL基本单表查询

学习DQL之前先知道sql语句的执行顺序 from->join->on->where->group by->count(字段)->having->select->distinct->order by->limit null无法和任何值进行比较&#xff08;不相等&#xff09;&#xff0c;包括null和null也不相等 1.DQL简单查询…

免费好用的5个AI写作工具,如何更好的使用AI写作工具

人工智能&#xff08;AI&#xff09;作为当今科技领域的热门话题&#xff0c;正在以惊人的速度改变我们生活的方方面面。从智能助手到自动驾驶汽车&#xff0c;AI的应用已经渗透到我们日常的方方面面。 1. 什么是AI人工智能&#xff1f; 什么是AI人工智能&#xff1f;简而言之…

CCF编程能力等级认证GESP—C++1级—20230318

CCF编程能力等级认证GESP—C1级—20230318 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)每月天数长方形面积 答案及解析单选题判断题编程题1编程题2 单选…

会声会影2024软件还包含了视频教学以及模板素材

会声会影2024中文版是一款加拿大公司Corel发布的视频编软件。会声会影2024官方版支持视频合并、剪辑、屏幕录制、光盘制作、添加特效、字幕和配音等功能&#xff0c;用户可以快速上手。会声会影2024软件还包含了视频教学以及模板素材&#xff0c;让用户剪辑视频更加的轻松。 会…

基于springboot+vue篮球联盟管理系统源码

&#x1f345; 简介&#xff1a;500精品计算机源码学习 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 文末获取源码 目录 一、以下学习内容欢迎交流&#xff1a; 二、文档资料截图&#xff1a; 三、项目技术栈 四、项目运行图 背景&#xff1a; 篮球运…

对比分析:黑盒测试 VS 白盒测试

一、引言 在软件开发过程中&#xff0c;测试是确保产品质量的关键环节。其中&#xff0c;黑盒测试和白盒测试是两种常见的测试方法。本文将详细解析这两种测试方法的定义、特点&#xff0c;同时通过具体示例进行对比分析。 二、黑盒测试 黑盒测试&#xff0c;又称功能测试&…

社区分享|简米Ping++基于MeterSphere开展异地测试协作

上海简米网络科技有限公司&#xff08;以下简称为“简米”&#xff09;是国内开放银行服务商&#xff0c;高新技术企业&#xff0c;中国支付清算协会会员单位。自2014年成立至今&#xff0c;简米长年聚焦金融科技领域&#xff0c;通过与银行、清算组织等金融机构合作&#xff0…

java基础进阶之数组排序-可能有你不知道的哦!!

1、使用Arrays类的sort方法 1.1、默认升序 java中Arrays类提供了sort方法来进行快速排序&#xff0c;默认是升序的。 Arrays.sort(数组名) private static void ArrSort1(int[] arr) {Arrays.sort(arr);System.out.println("快速排序-默认升序:"Arrays.toString(arr…

【PyTorch】多项式回归

文章目录 1. 模型与代码实现1.1. 模型1.2. 代码实现1.2.1. 完整代码1.2.2. 输出结果 2. Q&A2.1. 欠拟合与过拟合 1. 模型与代码实现 1.1. 模型 将多项式特征值预处理为线性模型的特征值。即 y w 0 w 1 x w 2 x 2 ⋯ w n x n y w_0w_1xw_2x^2\dotsw_nx^n yw0​w1​…

开关电源超强总结

什么是Power Supply? 开关电源的元件构成 三种基本的非隔离开关电源 三种基本的隔离开关电源 反激变换器&#xff08;Flyback&#xff09;工作原理 &#xff08;电流连续模式&#xff09; 反激变换器&#xff08;Flyback&#xff09;工作原理 &#xff08;电流断续模式&#x…

信息化系列——企业信息化建设(3)

期待已久的对策&#xff0c;马上”出炉“&#xff0c;第一次看的朋友&#xff0c;建议现在主页看看&#xff08;1&#xff09;和&#xff08;2&#xff09;&#xff0c;那咱们就废话少说了&#xff0c;开始今天的正题。 企业信息化建设对策 1、增强企业信息化意识 企业管理者…