首页 > 其他分享 >DHU OJ 二维数组 n 层正方形

DHU OJ 二维数组 n 层正方形

时间:2024-08-13 23:28:03浏览次数:11  
标签:OJ column 二维 正方形 int num 数组 DHU row

 思路及代码

// n个数 s = 2n-1
/*
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
*/
//num1 row(1,1)->(1,5),(5,1)->(5,5);column(1,1)->(5,1),(1,5)->(5,5)
//num2 row(2,2)->(2,4),(4.2)->(4,4);column(2,2)->(4,2),(2,4)->(4,4)
//num3 row(3,3)->(3,3);column(3,3)->(3,3);
// s 层
//只管前 n 行,后面复制
//num1 row(1,1)->(1,n) column(1,1)->(1,s),(n,1)->(n,s);
//num2 row(2,2)->(2,n-1) column(2,2)->(2,s),(n-1,2)->(n-1,s);
//num n row(n,n)->(n,s-n+1) column(n,n)->(n,n)
//num k row(k,k)->(k,s-k+1) column(k,k)->(n,k),(k,s-k+1)->(n,s-k+1)
//下标 规律-1,规律方便理解
//复制剩余行
//input n 1<= <=25
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
    int n;
    cin >> n;
//solution
    int s = 2*n - 1;
    int square[s][s];
//前 n 行
//from 1->n
    for (int num = 1; num <= n; num++){
        for (int i = num-1; i <= s-num;i++){
            square[num-1][i] = num;
        }
        for (int j = num-1; j <= n-1; j++){
            square[j][num-1] = num;
            square[j][s-num] = num;
        }
    }
//剩余行
//from 1->n
    for (int num = 1; num <= n; num++){
        memcpy(square[s-num], square[num-1],sizeof(int)*s);
    }
//output
    for (int x = 0; x <= s-1;x++){
        for (int y = 0; y <= s-1; y++){
            cout << square[x][y] << ' ';
            
        }
        cout << endl;
    }
    return 0;
}

感觉整个人都不好了

参考:1️⃣C++ 多维数组 | 菜鸟教程

2️⃣ https://wenku.csdn.net/answer/443qxau0jp

3️⃣二维数组的初始化,下标,遍历,及数组间的赋值_二维数组下标-CSDN博客

收获:1️⃣复习二维数组的初始化,遍历,访问元素直接访问

2️⃣

void *memcpy(void *to, const void *from, size_t numBytes);
//to: A pointer to the memory location where the copied data will be stored.
//from: A pointer to the memory location from where the data is to be copied.
//numBytes: The number of bytes to be copied.

菜菜,不是教程,做题和学习记录

标签:OJ,column,二维,正方形,int,num,数组,DHU,row
From: https://blog.csdn.net/jtymyxmz/article/details/141140561

相关文章

  • DHU OJ 循环结构 字母图形
    思路及代码去尾加头认为示例给的不好比如输入63输出是ABCBABCBAABCBABCBA还是ABCBABCBADCBEDCFDE呢是后者//inputn,mint1<=<=26#include<iostream>#include<vector>usingnamespacestd;intmain(){intn,m;cin>>n>>m;//solu......
  • DHU OJ 二维数组 杨辉三角
    思路及代码//inputT,int1<=<=20//inputT组n#include<iostream>usingnamespacestd;intmain(){intT;cin>>T;intn;//createn=20杨辉三角int**p=newint*[20];for(inti=0;i<=19;i++){p[i]=new......
  • [lnsyoj2256]消除游戏
    题意给定序列\(a\),每次可以选择其中长度\(>m\)且完全相同的一段并删除,并将序列的剩余部分拼合成一段;或在任意位置插入一个数。求最终将序列\(a\)清空的最小操作数sol很显然,本题的插入操作是为了能够使一段数能够凑够\(m\)个,因此我们可以只考虑删除操作,只在操作上下手脚......
  • [lnsyoj4079/luoguP6899]Pachinko
    题意一个包括空地、障碍和空洞的\(H\timesW\)地图,从第一列随机选取空地作为起始位置,到达某个空洞后停止运动。给定向上下左右移动的概率比\(p_u:p_d:p_l:p_r\),求在每个空洞停止运动的概率为多少。sol由于每次到达空洞后即会停止运动,因此到达空洞的期望次数即为到达每个空洞......
  • [题解 hduoj-7522] 2024HDU 暑假多校7 - cats 的最小生成树
    原题链接题意有一个有重边的无向图,每次找到它的最小生成树,并删除生成树的边,直到不存在最小生成树,问被每条边在第几次被删除.思路考虑用类似Kruskal算法,但是是遍历一遍所有边,同时处理出来所有的生成树.具体这样做:如Kruskal一样,把所有边按边权排序,......
  • jzoj8132 扔骰子
    jzoj8132扔骰子题面传送门扔\(n\)个骰子,第\(i\)个有\(a_i\)个面,数值为\(1\)∼\(a_i\),求扔出点数最大值的期望。先将\(a_i\)排序。则对于\(Max=[a_{i-1}+1,a_i]\),有\(n-i+1\)个位置对\(Max\)有影响。此时,最大值为\(Max\)的概率为:后\(n-i+1\)个都小于等于......
  • 新手常见错误:Language level is invalid or missing in pom.xml. Current project JDK
    目录Blue留声机:分析报错 Blue留声机:今天开一个maven的时候遇到这样一个报错,这个报错对于我来言是一个并不陌生的报错,早期学习spring框架的时候,遇到过这个问题,当时怎么也弄不出来(现在想想那个时候的我真菜),现在却对这种问题的解决游刃有余。好了,不多bb了,看看我一般处理bu......
  • 单向链表 - OJ
    题目一:删除链表中等于给定值val的所有节点。 203.移除链表元素-力扣(LeetCode)【思路】:可以先想想只删除一个val怎么删的。publicListNoderemoveElements(ListNodehead,intval){//链表为空if(head==null){returnhead;......
  • UOJ #712. 【北大集训2021】简单数据结构
    Description你有一个长度为\(n\)的序列\(a\),下面你要进行\(q\)次修改或询问。给定\(v\),将所有\(a_i\)变为\(\min(a_i,v)\)。将所有\(a_i\)变为\(a_i+i\)。给定\(l,r\),询问\(\sum_{i=l}^ra_i\)。\(1\leqn,q\leq2\times10^5,0\leqa_i,v_i\leq10^{12}......
  • [开题报告]FLASK框架图书馆座位预约系统oj14m(源码+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高校教育规模的不断扩大,图书馆作为知识资源与学习空间的核心,其座位资源的有效管理日益成为关注焦点。传统的先到先得模式不仅容易导致......