zoukankan      html  css  js  c++  java
  • codeforces C. Inna and Huge Candy Matrix

    http://codeforces.com/problemset/problem/400/C

    题意:给你一个n*m的矩阵,然后在矩阵中有p个糖果,给你每个糖果的初始位置,然后经过x次顺时针反转,y次旋转,z次逆时针反转,问最后每个糖果的位置。

    思路:推出顺时针反转、旋转、逆时针反转的坐标的变化即可。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <cmath>
     4 #include <iostream>
     5 #define maxn 100010
     6 #include <algorithm>
     7 using namespace std;
     8 
     9 int n,m,x,y,z,k;
    10 struct node
    11 {
    12     int x,y;
    13 } p[maxn];
    14 
    15 int main()
    16 {
    17     scanf("%d%d%d%d%d%d",&n,&m,&x,&y,&z,&k);
    18     for(int i=1; i<=k; i++)
    19     {
    20         scanf("%d%d",&p[i].x,&p[i].y);
    21     }
    22     x%=4;
    23     y%=2;
    24     z%=4;
    25     for(int i=1; i<=k; i++)
    26     {
    27         int nn=n,mm=m,xx,yy;
    28         for(int j=1; j<=x; j++)
    29         {
    30             xx=p[i].x;
    31             yy=p[i].y;
    32             p[i].x=yy;
    33             p[i].y=nn-xx+1;
    34             swap(nn,mm);
    35         }
    36         for(int j=1; j<=y; j++)
    37         {
    38             xx=p[i].x;
    39             yy=p[i].y;
    40             p[i].x=xx;
    41             p[i].y=mm-yy+1;
    42         }
    43         for(int j=1; j<=z; j++)
    44         {
    45             xx=p[i].x;
    46             yy=p[i].y;
    47             p[i].x=mm-yy+1;
    48             p[i].y=xx;
    49             swap(nn,mm);
    50         }
    51     }
    52     for(int i=1; i<=k; i++)
    53     {
    54         printf("%d %d
    ",p[i].x,p[i].y);
    55     }
    56     return 0;
    57 }
    View Code
  • 相关阅读:
    2021.3.3
    2021.3.2
    2021.3.1
    2021.2.28(每周总结)
    2021.2.27
    2021.2.26
    2021.2.25
    2021.2.23
    Redis系统学习之五大基本数据类型(List(列表))
    Redis系统学习之五大基本数据类型(String(字符串))
  • 原文地址:https://www.cnblogs.com/fanminghui/p/4265950.html
Copyright © 2011-2022 走看看