该怎么输出,第一行随着输入的不同起始位置也在改变,可以将空白的部分也看成和三角类似的字符串吗,毕竟他们的面积有倍数关系;哦,不能直接cout单独一个三角,因为随着输入不同,每行也都不相同,所以应该用二维数组
没想道遇到的最大的问题是转义序列"/__\“这样就会报错,解决办法就是改成”/__\\"
而这题我的第一想法是一边计算一边输出,看了题解的分治方法是先存储在一个很大的数组里,经计算修改数组里的值,最后“倒序”输出。
这题要想直接模拟很难,因为会找错规律,图腾是“复制”过来的
而不管是杨辉三角还是分治的思想,解题方法感觉都很。
杨辉三角:所有的数%2,于是递推公式可以变化成a[j]^=a[j-1];(已经降维了)
第一步,前置空格;第二步,更改这一行数值;第三步,判断奇数行还是偶数行,根据0还是1分别输出

分治:
每次图腾都是由上一次图腾“复制”过来,所以将图腾倒置存于数组里,根据输入的n决定复制几次,最后输出
1.初始化2.复制(向右和向下)3.输出

//第一版直接模拟错误代码
char p[4][10]={"   /\\   ","  /__\\  "," /\\  /\\ ","/__\\/__\\"
};string s[4]={"   /\\   ","  /__\\  "," /\\  /\\ ","/__\\/__\\"
};int main() {int n;cin>>n;for(int i=0;i<1<<(n-2);i++) {for(int j=0;j<4;j++) {for(int k=0;k<4*((1<<(n-2))-i-1);k++) cout<<' ';for(int m=0;m<i+1;m++) cout<<s[j];cout<<endl;}}return 0;
}//杨辉三角法int main() {int n,a[1100]={1};cin>>n;for(int i=0;i<1<<n;i++) {//1<<n表示2的n次方for(int j=1;j<(1<<n)-i;j++) cout<<' ';//前置空格,找到规律,总共是2^n-i-1个空格for(int j=i;j>0;j--) a[j]^=a[j-1];//需要倒推,之前题目遇到过if(i%2) //i从0开始,所以这是偶数行for(int j=0;j<=i;j+=2) cout<<(a[j]?"/__\\":"    ");//这里由于变形后的杨辉三角很神奇,偶数行要么两个1连在一起,要么两个0连在一起//所以j可以直接+2elsefor(int j=0;j<=i;j++) cout<<(a[j]?"/\\":"  ");cout<<endl;}return 0;
}//分治法int main() {int n,l=4;cin>>n;char a[1030][2050];memset(a, ' ', sizeof(a));//全部置空,函数在头文件<cstring>中a[0][0]=a[1][1]='/';a[0][1]=a[0][2]='_';a[0][3]=a[1][2]='\\';while(--n) {for(int i=0;i<l/2;i++)for (int j=0; j<l;j++)a[i][j+l]=a[i+l/2][j+l/2]=a[i][j];l<<=1;}for(int i=l/2-1;i>=0;i--) {for (int j=0;j<l;j++) {cout<<a[i][j];}cout<<endl;}return 0;
}

补充知识:
与运算的用途:
1)清零
如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。
2)取一个数的指定位
比如取数 X=1010 1110 的低4位,只需要另找一个数Y,令Y的低4位为1,其余位为0,即Y=0000 1111,然后将X与Y进行按位与运算(X&Y=0000 1110)即可得到X的指定位。
3)判断奇偶
只要根据最未位是0还是1来决定,为0就是偶数,为1就是奇数。因此可以用if ((a & 1) == 0)代替if (a % 2 == 0)来判断a是不是偶数。
异或运算的用途:
1)翻转指定位
比如将数 X=1010 1110 的低4位进行翻转,只需要另找一个数Y,令Y的低4位为1,其余位为0,即Y=0000 1111,然后将X与Y进行异或运算(X^Y=1010 0001)即可得到。
2)与0相异或值不变
例如:1010 1110 ^ 0000 0000 = 1010 1110
3)交换两个数

void Swap(int &a, int &b){if (a != b){a ^= b;b ^= a;a ^= b;}
}

洛谷P1498 南蛮图腾相关推荐

  1. 洛谷 P1498 南蛮图腾

    P1498 南蛮图腾 题目描述 自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术 ...

  2. 洛谷-P1498 南蛮图腾

    题目描述 自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图 ...

  3. 洛谷 P1498 南蛮图腾 分治递归过程详解

    题目描述 自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图 ...

  4. 洛谷——P1498 南蛮图腾

    题目描述 自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果(看Hint),在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独 ...

  5. [洛谷P1498] 南蛮图腾(分治+递归)

    分析 根据题目标签,首先解释一下分治算法:分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解.即一种分目标完成 ...

  6. 洛谷 P1498 南蛮图腾 —— 模拟

    题目:https://www.luogu.org/problemnew/show/P1498 大约一年前该做的题...现在来填一下坑: 然而不怎么会模拟!还滚去看TJ了: 就是翻倍复制: \ 这个符号 ...

  7. 洛谷P1498 南蛮图腾(递归,找规律)

    题目链接:传送门 题目思路:打眼一看,递归题目(看看数据范围很合适,比较小).就是找出各个三角形的顶点规律. 代码: #include<bits/stdc++.h> using names ...

  8. [洛谷] P1498 南蛮图腾

    暴力解决 每次把已打出的所有图形往下复制两次 出来的图形都挤在左侧 再按规律在前补空格即可 #include <iostream> #include <cmath> #incl ...

  9. 洛谷 1498 南蛮图腾

    题目描述 自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果(看Hint),在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独 ...

最新文章

  1. Excel VBA附合导线平差自动计算表
  2. 福建农林大学朱方捷组招聘讲师/副教授/助理——生信分析方向
  3. P4报名截止|引爆1.1万亿基因测序市场,精准医学50+殿堂级专家议程大曝光
  4. Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
  5. 读取纯真IP数据库的公用组件QQWry.NET
  6. libevent -简单的异步IO介绍
  7. 我们需要什么样的恐怖小说?
  8. keil5中文乱码的解决
  9. junit:junit_处理JUnit中异常的另一种方法:catch-exception
  10. 9针串口定义测试方法_一些定义–测试技术9
  11. 如何获取字符的ASCII值
  12. ubuntu挂载移动硬盘出现错误:mount:unknown filesystem type ‘exfat‘
  13. const 使用方法具体解释
  14. Android 离线文字转语音功能-TTS(Text To Speech)
  15. 架构师害怕程序员知道的十项技能
  16. win10扬声器红叉_win10系统右下角小喇叭红叉显示扬声器耳机或者耳机已拔出的图文技巧...
  17. ubuntu Pathon 目录
  18. 深度剖析头条面试真题 | 二叉树那点事儿
  19. 智慧屏新品尝鲜:精致机身旗舰声画
  20. str.substring() 的用法

热门文章

  1. 从3K到30K在长沙这座城市买房买车,23岁的年纪我到底经历了什么
  2. [持续更新] 神经机器翻译论文汇总 Papers on Neural Machine Translation
  3. 手机管理服务器文件夹,手机查看云服务器文件夹
  4. proteus流水账
  5. Error: Request failed with status code 403
  6. MyBatis入门-association标签使用
  7. 行业分类参考-做所有事情都要归于行业
  8. 黎明杀机因为计算机丢失,黎明杀机存档丢失解决方法
  9. Kaggle比赛如何开始
  10. 2023年蓝队初级护网总结