黄山市网站建设,电子商务网站建设评价,怎么获取网站数据做统计数据,网站项目总体设计模板2023“钉耙编程”中国大学生算法设计超级联赛#xff08;3#xff09;8-bit Zoom
题解
有一张尺寸为 n n n\times n nn的图片#xff0c;你要将图片放大成大小为 n Z 100 n Z 100 \dfrac{nZ}{100}\times \dfrac{nZ}{100} 100nZ100nZ的图片。
当下列任何一个条件不成…2023“钉耙编程”中国大学生算法设计超级联赛38-bit Zoom
题解
有一张尺寸为 n × n n\times n n×n的图片你要将图片放大成大小为 n Z 100 × n Z 100 \dfrac{nZ}{100}\times \dfrac{nZ}{100} 100nZ×100nZ的图片。
当下列任何一个条件不成立时图片不能放大成上述的图片 n Z 100 \dfrac{nZ}{100} 100nZ不是整数在放大的图片中无法确定某些像素的颜色
给出图片求能否放大成上述的图片。如果可以的话输出放大后的图片否则输出 error \text{error} error。
有 T T T组数据。 1 ≤ T ≤ 10 , 1 ≤ n ≤ 50 , 100 ≤ Z ≤ 200 , Z % 25 0 1\leq T\leq 10,1\leq n\leq 50,100\leq Z\leq 200,Z\% 250 1≤T≤10,1≤n≤50,100≤Z≤200,Z%250 题解
先判断 n Z 100 \dfrac{nZ}{100} 100nZ是不是整数不是的话输出 error \text{error} error。
先将图放大 Z 25 \dfrac{Z}{25} 25Z倍这样的话原图的每个 1 × 1 1\times 1 1×1的格子在放大后的图中变为 Z 25 × Z 25 \dfrac{Z}{25}\times \dfrac{Z}{25} 25Z×25Z的格子。
然后将图片缩到原来的 1 4 \dfrac 14 41将每个 4 × 4 4\times 4 4×4的部分变为一个格子。如果出现一个 4 × 4 4\times 4 4×4的部分存在两个像素的颜色不相同的情况则不合法输出 error \text{error} error。
放大 Z 25 \dfrac{Z}{25} 25Z倍后再缩到原来的 1 4 \dfrac 14 41也就是将原图放大 Z 100 \dfrac{Z}{100} 100Z倍符合题意。如果经过放大在缩小后的图合法则将最后的图输出即可。
时间复杂度为 O ( n 2 ) O(n^2) O(n2)。
code
#includebits/stdc.h
using namespace std;
int t,n,Z,w,fl;
char a[105][105],b[505][505];
char gt(){char chgetchar();while(cha||chz) chgetchar();return ch;
}
int main()
{scanf(%d,t);while(t--){scanf(%d%d,n,Z);for(int i1;in;i){for(int j1;jn;j){a[i][j]gt();}}if(n*Z%100!0){printf(error\n);continue;}wZ/25;for(int i1;in;i){for(int j1;jn;j){for(int k(i-1)*w1;ki*w;k){for(int l(j-1)*w1;lj*w;l){b[k][l]a[i][j];}}}}fl0;for(int i1;in*w;i4){for(int j1;jn*w;j4){for(int k0;k4;k){for(int l0;l4;l){if(b[ik][jl]!b[i][j]) fl1;}}}}if(fl) printf(error\n);else{for(int i1;in*w;i4){for(int j1;jn*w;j4){printf(%c,b[i][j]);}printf(\n);}}}return 0;
}