zoukankan      html  css  js  c++  java
  • D

    D - Tolik and His Uncle

    题意:给个n*m的单元格,起始位置(1,1)每次可以自己造个(x,y)使位置变为(a+x,b+y),a,b为目前所在位置,现在要求每对x,y不能重复,要求遍历所有单元格,输出按顺序走的单元格的坐标。

    思路:别被样例迷惑,可以发现对于一维来说,我们可以想到比如长度为5,初始在1,可以走1-5-2-4-3,x为4,-3,2,-1,不会产生重复,

    对于一维来说就是每次走与它中间对称的一个点,然后再走下一个。推广到二维就是每次走关于中心对称的点..

    注意ceil()返回浮点,需要强转int,且int/int时前面需要加(double)或*1.0

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1; i<=(int)ceil(1.0*n/2); i++)
        {
            if(i==(int)ceil(1.0*n/2)&&(n%2!=0))
            {
    //            printf("??%d %d
    ",i,i%2);
                for(int j=1; j<=(int)ceil(1.0*m/2); j++)
                {
                    int x1=n+1-i;
                    int y1=m+1-j;
                    if(x1!=i||y1!=j)
                    {
                        printf("%d %d
    ",i,j);
                        printf("%d %d
    ",x1,y1);
                    }
                    else
                        printf("%d %d
    ",i,j);
                }
            }
            else
            {
                for(int j=1; j<=m; j++)
                {
                    int x1=n+1-i;
                    int y1=m+1-j;
    //                printf("??j=%d m=%d
    ",j,m);
                    printf("%d %d
    ",i,j);
                    printf("%d %d
    ",x1,y1);
                }
            }
        }
    
    }
  • 相关阅读:
    [BZOJ2969] 矩形粉刷
    数字 (number)
    字符串(String)
    小HY的四元组
    最大公约数(Max Gcd)
    [洛谷P2102] 地砖铺设
    Python OS模块(内置模块)
    json解析神器--jsonpath
    kafka 优势+应用场景
    Python之异常处理
  • 原文地址:https://www.cnblogs.com/dongdong25800/p/11087805.html
Copyright © 2011-2022 走看看