首页 > 其他分享 >CCF第三十一次计算机软件能力认证202309-1坐标变换(其二) (暴力求解法,80分)

CCF第三十一次计算机软件能力认证202309-1坐标变换(其二) (暴力求解法,80分)

时间:2023-09-28 15:12:12浏览次数:39  
标签:202309 Operation ops int Point 第三十一次 points 80 ptr

代码如下

此算法是暴力求解算法,时间复杂度O(mn),只能得80分,而且代码在模拟系统里一直提交错误(评判系统应该有bug),但在本地可以正常运行*

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef struct Operation {
    /*操作结点*/
    int type;
    double value;
} Operation;

typedef struct Point{
    /*查询结点*/
    int idx1;
    int idx2;
    double x;
    double y;
} Point;

void output(Operation* ops, Point* points, int m);

int main() {
    int n, m;
    scanf("%d %d", &n, &m);

    Operation* ops = (Operation*)malloc(sizeof(Operation) * n);
    for (int i = 0; i < n; i++) {
        /*输入n个操作*/
        scanf("%d %lf", &(ops[i].type), &(ops[i].value));
    }

    Point* points = (Point*)malloc(sizeof(Point) * m);
    for (int i = 0; i < m; i++) {
        /*输入m个查询*/
        scanf("%d %d %lf %lf", &(points[i].idx1), &(points[i].idx2), &(points[i].x), &(points[i].y));
    }

    output(ops, points, m);

    free(ops);
    free(points);
    return 0;
}

void output(Operation* ops, Point* points, int m) {
    for (int i = 0; i < m; i++) {
        Point *ptr = &(points[i]);
        for (int j = ptr->idx1; j <= ptr->idx2; j++) {
            double v = ops[j - 1].value;
            if (ops[j - 1].type == 1) {
                ptr->x *= v;
                ptr->y *= v;
            } else {
                double temp1 = ptr->x, temp2 = ptr->y;
                ptr->x = temp1 * cos(v) - temp2 * sin(v);
                ptr->y = temp1 * sin(v) + temp2 * cos(v);
            }
        }
        printf("%.3lf %.3lf\n", ptr->x, ptr->y);
    }
}

输入

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.460 201113.678
-75099.123 -738950.159
-119179.897 -789457.532
114151.880 -366009.892

程序运行结果

标签:202309,Operation,ops,int,Point,第三十一次,points,80,ptr
From: https://www.cnblogs.com/gjsun/p/17731666.html

相关文章

  • oralce数据库cpu超过80%,网站反应很慢
    一个oracle集群,zabbix监控报警,oracle节点1cpu过高,登入节点2CPU正常,程序访问很慢,第一步,登入数据库,查看数据库连接池,发现连接信息全部是连接的节点1,节点2未有连接;第二步:导出耗时前10的sql,发现查询得sql没绑定索引,发给开发,优化sql;第三步:查看程序连接数据库信息,发现程序的连接信息......
  • 20230927
    //approve,counter-offer,decide,end-user,lower,margin,profit,reduce,reduction,rough,supplier,asamatteroffact,bringdown,priceindication,refertoapprove-批准Toapprovemeanstoofficiallyagreetooracceptsomething.Itindicatesthe......
  • 20230927
    早上进行了英语课;中午回来,玩了一会儿后休息到下午;去购物,买了去亲戚家的月饼,裤子,还有崩崩崩联动的饮料套餐;晚上写完了数据结构作业,没看清楚题目要求,多浪费了时间,然后被PTA编辑器防止粘贴搞的很烦,一段调试用的代码不能随意的剪切放在不同地方,然后用python解决了这个......
  • 20230927打卡
    早晨,我迎着晨光起床,迎接新的一天。心情愉悦,我准备好迎接今天的挑战。在英语课堂上,老师用生动的教学方式让我们沉浸在英语的海洋中。我们学习了词汇的拓展和语法的巩固,通过练习和互动,我逐渐增强了对英语的理解和应用能力。下午的时间里,我投入到了学习中。琐碎的代码和复杂的逻辑,对......
  • 202309272035-《maven依赖已下载,但还是报红,解决办法》
    1. 勾选设置,maven,选中“始终更新快照”。  2.点击“更新” ......
  • 202309272022-《idea编辑器,maven解析依赖慢,解决办法》
    法一:1.Preference2.Search"maven"keyword,,3.选中“运行程序(runner)”,4.在右侧“vm选项”一栏,输入:  -DarchetypeCatalog=internal 至于为什么,我也说不出一二。 法二:https://blog.csdn.net/weixin_43912822/article/details/114173413......
  • LuoguP2809 hzwer爱折纸
    Luogu原题链接爆搜的思路不难想到,就是将翻折的操作进行模拟,再将翻折后的数组进行dfs然后重复该操作。但是处理翻折操作十分复杂,中间的细节很多。首先纸条可以翻转,大部分人都看到了,所以在爆搜中加入了翻转的操作,但只需要在判定时反向的也判一次就行了,至于正确性你们可以自行......
  • Webpack报错Error: error:0308010C:digital envelope routines::unsupported处理
    在学习组件库流程打包的时候报错找不到module,后来改了版本又报错Error:error:0308010C:digitalenveloperoutines::unsupported报错原因:node17+版本对发布的OpenSSL3.0,而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响.解决方案:在网上搜索......
  • Linux命令(80)之sort
    linux命令之sort1.sort介绍linux命令sort用于将文本文件内容以行为单位加以排序;sort命令默认按每行的第一个字符排序,根据首字母的ASCII码值进行升序(从小到大排列)。sort的默认分隔符是空白(空格和tab),多少空白都算一个分隔符。2.sort用法sort[参数]filesort常用参数参数说......
  • 20230926
    1、单体应用切分成微服务的过程中都做了那些工作?2、谈谈你对springcloud的理解?3、springMVC的工作原理?4、要在工程中实现一个拦截器要怎么做?5、redis的双写一致性问题是怎么保证的?6、redis集群的哨兵机制的工作原理及选取主节点的算法都有什么?7、mysql慢sql性能优化步骤?8、......