洛谷-入门4-数组4
P5732 【深基5.习7】杨辉三角题目描述给出 n(1≤n≤20)输出杨辉三角的前 n 行。如果你不知道什么是杨辉三角可以观察样例找找规律。输入格式无输出格式无输入输出样例输入 #1复制6输出 #1复制1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1实现代码#includebits/stdc.h using namespace std; long long a[1000][1000]; int main(){ int n; cinn; for(int i1;in;i){ for(int j1;jn;j){ if(j1||jn) a[i][j]1; else{ a[i][j]a[i-1][j]a[i-1][j-1]; } } } for(int i1;in;i){ for(int j1;ji;j){ couta[i][j] ; } coutendl; } return 0; }P1789 【Mc生存】插火把题目描述话说有一天linyorson 在“我的世界”中开了一个 n×n 的方阵。现在他有 m 个火把和 k 个萤石分别放在 (x1,y1)∼(xm,ym) 和 (o1,p1)∼(ok,pk) 的位置。已知没有光并且没放东西的地方会生成怪物请问在这个方阵中有几个点会生成怪物注意在本题中火把与萤石的照明范围与原版 Minecraft我的世界不尽相同请以本题中的描述为准。火把的照亮范围是暗暗光暗暗暗光光光暗光光火把光光暗光光光暗暗暗光暗暗萤石是光光光光光光光光光光光光萤石光光光光光光光光光光光光输入格式输入共 mk1 行。第一行为两个正整数 n,m 和一个非负整数 k。第二到第 m1 行每行两个正整数 xi,yi表示各个火把的位置。第 m2 到第 mk1 行每行两个正整数 oi,pi表示各个萤石的位置。数据中可能没有萤石但一定有火把。输出格式有几个点会生出怪物。输入输出样例输入 #1复制5 1 0 3 3输出 #1复制12说明/提示数据保证 1≤n≤1001≤mk≤251≤m≤250≤k≤5。实现代码#includebits/stdc.h using namespace std; long long a[1000][1000]{0}; int main(){ int x,y,z; cinxyz; for(int i2;iy1;i){ int n,m; cinnm; if(m-20){ a[n][m-2]1; } if(m-2x){ a[n][m2]1; } if(n-20){ a[n-2][m]1; } if(n2x){ a[n2][m]1; } for(int jn-1;jn1;j){ for(int km-1;km1;k){ if(j0jxk0kx){ a[j][k]1; } } } } for(int iy2;iyz1;i){ int n,m; cinnm; for(int jn-2;jn2;j){ for(int km-2;km2;k){ if(j0jxk0kx){ a[j][k]1; } } } } int sum0; for(int i1;ix;i){ for(int j1;jx;j){ if(a[i][j]0)sum; } } coutsum; return 0; }P1319 压缩技术题目描述设某汉字由 N×N 的 0 和 1 的点阵图案组成。我们依照以下规则生成压缩码。连续一组数值从汉字点阵图案的第一行第一个符号开始计算按书写顺序从左到右由上至下。第一个数表示连续有几个 0第二个数表示接下来连续有几个 1第三个数再接下来连续有几个 0第四个数接着连续几个 1以此类推……例如: 以下汉字点阵图案0001000 0001000 0001111 0001000 0001000 0001000 1111111对应的压缩码是 7 3 1 6 1 6 4 3 1 6 1 6 1 3 7 第一个数是 N ,其余各位表示交替表示0和1 的个数压缩码保证 N×N 交替的各位数之和输入格式数据输入一行由空格隔开的若干个整数表示压缩码。其中压缩码的第一个数字就是 N表示这个点阵应当是 N×N 的大小。接下来的若干个数字含义如题目描述所述。输出格式输出一个 N×N 的 01 矩阵表示最后的汉字点阵图点阵符号之间不留空格。输入输出样例输入 #1复制7 3 1 6 1 6 4 3 1 6 1 6 1 3 7输出 #1复制0001000 0001000 0001111 0001000 0001000 0001000 1111111说明/提示样例解释数据范围数据保证3≤N≤200。实现代码#includebits/stdc.h using namespace std; int a[100000]; int main(){ int n; cinn; int t,i0; int x1; while(cint){ i; if(i%20){ for(int j1;jt;j){ cout1; x; if((x-1)%n0){ coutendl; } } } else{ for(int j1;jt;j){ cout0; x; if((x-1)%n0){ coutendl; } } } if(x-1n*n) return 0; } }P1320 压缩技术续集版题目描述设某汉字由 N×N 的 0 和 1 的点阵图案组成。我们依照以下规则生成压缩码。连续一组数值从汉字点阵图案的第一行第一个符号开始计算按书写顺序从左到右由上至下。第一个数表示连续有几个 0第二个数表示接下来连续有几个 1第三个数再接下来连续有几个 0第四个数接着连续几个 1以此类推……例如: 以下汉字点阵图案0001000 0001000 0001111 0001000 0001000 0001000 1111111对应的压缩码是 7 3 1 6 1 6 4 3 1 6 1 6 1 3 7 第一个数是 N其余各位表示交替表示 0 和 1 的个数压缩码保证 N×N 交替的各位数之和输入格式汉字点阵图点阵符号之间不留空格。输出格式输出一行压缩码。输入输出样例输入 #1复制0001000 0001000 0001111 0001000 0001000 0001000 1111111输出 #1复制7 3 1 6 1 6 4 3 1 6 1 6 1 3 7说明/提示数据保证3≤N≤200。实现代码#includebits/stdc.h using namespace std; int s[100000]; char a,b0; int main(){ int n0,t1; while(cina){ n; if(ab){ s[t]; } else{ s[t]; ba; } } coutsqrt(n); for(int i1;it;i){ cout s[i]; } return 0; }P1205 [USACO1.2] 方块转换 Transformations题目描述一块 n×n 正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式转 90°图案按顺时针转 90°。转 180°图案按顺时针转 180°。转 270°图案按顺时针转 270°。反射图案在水平方向翻转以中央铅垂线为中心形成原图案的镜像。组合图案在水平方向翻转然后再按照 1∼3 之间的一种再次转换。不改变原图案不改变。无效转换无法用以上方法得到新图案。如果有多种可用的转换方法请选择序号最小的那个。只使用上述 7 个中的一个步骤来完成这次转换。输入格式第一行一个正整数 n。然后 n 行每行 n 个字符全部为或-表示初始的正方形。接下来 n 行每行 n 个字符全部为或-表示最终的正方形。输出格式单独的一行包括 1∼7 之间的一个数字在上文已描述表明需要将转换前的正方形变为转换后的正方形的转换方法。输入输出样例输入 #1复制3 - --- - - -- --输出 #1复制1说明/提示【数据范围】对于 100% 的数据1≤n≤10。题目翻译来自 NOCOW。USACO Training Section 1.2实现代码#includebits/stdc.h using namespace std; int n; char a[15][15],b[15][15],c[15][15],d[15][15]; bool work1() { for(int i1;in;i) { for(int j1;jn;j) b[j][n-i1]a[i][j]; } for(int i1;in;i) for(int j1;jn;j) if(b[i][j]!c[i][j]) return 0; return 1; } bool work2() { for(int i1;in;i) { for(int j1;jn;j) b[n-i1][n-j1]a[i][j]; } for(int i1;in;i) for(int j1;jn;j) if(b[i][j]!c[i][j]) return 0; return 1; } bool work3() { for(int i1;in;i) { for(int j1;jn;j) b[n-j1][i]a[i][j]; } for(int i1;in;i) for(int j1;jn;j) if(b[i][j]!c[i][j]) return 0; return 1; } bool work4() { for(int i1;in;i) { for(int j1;jn;j) b[i][n-j1]a[i][j]; } for(int i1;in;i) for(int j1;jn;j) if(b[i][j]!c[i][j]) return 0; return 1; } bool work5() { work4(); for(int i1;in;i) for(int j1;jn;j) a[i][j]b[i][j]; if(work1()) return 1; for(int i1;in;i) for(int j1;jn;j) a[i][j]b[i][j]; if(work2()) return 1; for(int i1;in;i) for(int j1;jn;j) a[i][j]b[i][j]; if(work3()) return 1; return 0; } bool work6() { for(int i1;in;i) for(int j1;jn;j) if(b[i][j]!c[i][j]) return 0; return 1; } void work() { if(work1()) { cout1; return ; } if(work2()) { cout2; return ; } if(work3()) { cout3; return ; } if(work4()) { cout4; return ; } if(work5()) { cout5; return ; } if(work6()) { cout6; return ; } cout7; } int main() { cinn; for(int i1;in;i) for(int j1;jn;j) { cina[i][j]; d[i][j]a[i][j]; } for(int i1;in;i) for(int j1;jn;j) cinc[i][j]; work(); return 0; }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2461263.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!