一道简单的几何变换
来源:互联网 发布:统计局70城房价数据 编辑:程序博客网 时间:2024/05/16 18:40
一道简单的几何变换
运行时限: 1000 ms 单次运行时限: 1000 ms 内存限制: 64 MB
总提交: 68次 通过: 7次
总提交: 68次 通过: 7次
Judge By Case
题目描述
小光最近在学习几何变换,老师给他留了一个作业,在二维平面上有n个点(x,y),老师给了m个几何变换对n个点进行操作,要求小光输出变换后的n个点的坐标(x’,y’)。小光为了偷懒,请求你帮他写个程序来完成老师的作业。
由于小光刚刚学习几何变换,老师只会给出四种变换,如下:
平移变换: (x’,y’)=(x+p,y’+q) 程序的输入格式为:1 p q (p,q为整数)
缩放变换: (x’,y’)=(x*L,y*L) 程序的输入格式为:2 L (L为整数)
上下翻转: (x’,y’)=(x,-y) 程序的输入格式为:3
左右翻转: (x’,y’)=(-x,y) 程序的输入格式为:4
由于小光刚刚学习几何变换,老师只会给出四种变换,如下:
平移变换: (x’,y’)=(x+p,y’+q) 程序的输入格式为:1 p q (p,q为整数)
缩放变换: (x’,y’)=(x*L,y*L) 程序的输入格式为:2 L (L为整数)
上下翻转: (x’,y’)=(x,-y) 程序的输入格式为:3
左右翻转: (x’,y’)=(-x,y) 程序的输入格式为:4
程序输入说明
N(1<=N<=10^5)
然后N个点(x,y) 其中x,y均为整数
M (1<=M<=10^5)
然后M个变换,输入格式如上所述。
然后N个点(x,y) 其中x,y均为整数
M (1<=M<=10^5)
然后M个变换,输入格式如上所述。
程序输出说明
N个点的坐标
程序输入样例
可见格式带空格和换行符的格式带空格和换行符的格式说明
21 12 211 1 1
程序输出样例
OriginalTransformed带空格和换行符的格式说明
2 23 3
提示
注意同一组数据中每个点进行的变换都相同。
题目来源
安徽省2014年“京胜杯”大学生程序设计竞赛
[统计数据] [提 交]
为了节省时间必须要注意不能对单个坐标计算 而是便输出边计算:
AC情况:
合工大AC情况:
代码C:
# include <stdio.h># define N 100001int A[2][N];int main(){ int W[4]={1,0,1,0},n,m,L,i,P,Q; while(scanf("%d",&n)==1) { for(i=0;i<n;i++) scanf("%d%d",&A[0][i],&A[1][i]); scanf("%d",&m); for(i=0;i<m;i++) { scanf("%d",&L); if(L==1){ scanf("%d%d",&P,&Q); W[1]+=P; W[3]+=Q; } else if(L==2){ scanf("%d",&P); Q=0; while(Q<4) W[Q++]*=P; } else if(L==3){ W[2]=-W[2]; W[3]=-W[3]; } else{ W[0]=-W[0]; W[1]=-W[1]; } } for(i=0;i<n;i++) printf("%d %d\n",W[0]*A[0][i]+W[1],W[2]*A[1][i]+W[3]); W[0]=W[2]=1; W[1]=W[3]=0; } return 0; }
阅读全文
0 0
- 一道简单的几何变换
- 一道简单的几何变换
- 2014省赛-J一道简单的几何变换
- 【数字图像处理】图像的简单几何变换
- 图象的几何变换
- 图像的几何变换
- 图像的几何变换
- 图像的几何变换
- 图像的几何变换
- 图像的几何变换
- 图像的几何变换
- 图像的几何变换
- OpenGL的几何变换
- 图形的几何变换
- 图像的几何变换
- 图像处理的几何变换
- 二维图形的几何变换
- Core Animation 的几何变换
- 非常详细的 Docker 学习笔记
- 关于Redis的理解
- python时间
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E. Maximum Flow
- Redis集群简单搭建使用
- 一道简单的几何变换
- 1.struts2实例
- 交叉验证(Cross Validation)方法思想简介
- mysql5.7使用前初始化(主要是更改密码)
- EL表达式
- 安装vmware时显示无法写入注册表怎么办
- 9-16NOIP模拟赛总结
- Spring MVC--18.json结果返回(@)
- 关于 React服务器端渲染(SSR)