• 牛客练习赛31 龙魂合一萨坎与晶石


    链接:https://ac.nowcoder.com/acm/contest/218/E
    来源:牛客网

     


    题解:其实就是按照一种规律下去划线就完事了,自己找几张图画一下,不难理解,举例说明n=4;

    需要注意的是第一步不要斜对角得画,很明显歪着画,能多画一点。

    一个循环划上面的线,贴着第一列画(起点是第一列),步骤如下:

    一个循环划下面的线,贴着第一行画(起点是第一行)。

    最后画亘古不变的两条线:一个是最上面一行的矩形的对角线,另一个是最后一列的矩形的对角线。

    ​​​​​​​

    题目描述

    「文词只是浪费时间。 毁灭这语言人人都懂。」           ——萨坎沃

           萨坎重回乌金之眼,他发现乌金之眼正因之前的交战被开启。他思索着主人的目的,突然发现巨龙形态下的自己可以读懂晶石上的铭文。他变成巨龙,驱散了另一条堕落的龙魂,阅读了晶石上的神秘铭文。他具体读到了什么我们不得而知,我们只知道,阅读铭文后的萨坎只想切碎所有的晶石。

           浮在空中的晶石排列成了一个 n x n 的方格阵。每个单位边长的方格内有一颗晶石。萨坎能做的是选择两个不同的落在方格阵边界的交点,然后用剑沿着这两点连线割下去。如果一个方格被割断(只割到顶点或边界不算割断),那么这个方格内的晶石将失去能量。

    i2UxsA.png

           如上图所示,这是一个 3 x 3 的方格阵。其中橙色部分表示被割断的方格;深红色线表示割下的路径。每个交点的坐标标记在其附近。

           经过交战,萨坎剩余的能量只够切割 n+1 次。由于种种原因,萨坎必须切恰好 n+1 刀,并且萨坎所切的 n+1 刀中,不能有任何两刀平行。有着丰富经验的萨坎在砍完 n+1 刀之后所有的晶石都失去了能量。

           现在请聪明的你也学着像萨坎那样,在这个 n x n 的方格中,切恰好 n+1 刀,使所有方格都能被割断。

    输入描述:

    第一行一个正整数 T ,表示有 T 组测试数据。
    接下去每组测试数据输入一行,包含一个正整数 n 。

    输出描述:

    
     

    每个测试数据输出 n+1 行,每行四个整数 px, py, qx, qy ,表示一条由点 (px, py) 和点 (qx, qy) 连成的直线。点 (px, py) 和点 (qx, qy) 必须落在方格阵的边界上,且两点不能相同。

    每行的四个整数之间请用一个空格隔开,行末请不要添加多余空格。文末请不要输出多余信息。

    示例1

    输入

    复制

    1
    2

    输出

    复制

    0 0 1 2
    1 2 2 0
    0 0 2 0

    说明

    
     

    分割方案如下图所示。

    备注:

    1 ≤ N ≤ 2000
    1 ≤ T ≤ 20

    代码

    #include <iostream>
    #include <cstdio>
    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
        int t;
        cin>>t;
        while(t--){
            int n;
            cin>>n;
            if(n==1){
                cout<<"0 0 1 1"<<endl;
                cout<<"0 0 1 0"<<endl;
                continue;
            }
            //printf("%d %d %d %d
    ",0,0,n,n-1);
            for(int i=0;i<n-1;i+=2){
                printf("%d %d %d %d
    ",i,0,n,n-1-i);
            }
            for(int i=1;i<n-1;i+=2){
                printf("%d %d %d %d
    ",0,i,n-1-i,n);
            }
            printf("%d %d %d %d
    ",0,n,n,n-1);
            printf("%d %d %d %d
    ",n,0,n-1,n);
        }
        return 0;
    }
    
  • 相关阅读:
    HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第7章定位
    HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第6章表格与表单
    【原创】Linux虚拟化KVM-Qemu分析(一)
    Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解
    2.MongoDB 4.2副本集环境基于时间点的恢复
    1.MongoDB 2.7主从复制(master –> slave)环境基于时间点的恢复
    离线人脸识别门禁考勤——Android设备端APK及源码免费下载
    Centos7 忘记密码的解决方法
    基于fastText模型的文本分类
    各种文本分类模型实践
  • 原文地址:https://www.cnblogs.com/UUUUh/p/10284062.html
Copyright © 2020-2023  润新知