一块 n×n 正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式: 转 90°:图案按顺时针转 90°。 转 180°:图案按顺时针转 180°。 转 270°:图案按顺时针转 270°。 反射:图案在水平方向翻转(以中央铅垂线为中心形成原图案的镜像)。 组合:图案在水平方向翻转,然后再按照 1∼3 之间的一种再次转换。 不改变:原图案不改变。 无效转换:无法用以上方法得到新图案。 如果有多种可用的转换方法,请选择序号最小的那个。 只使用上述 7 个中的一个步骤来完成这次转换。 输入格式 第一行一个正整数 n。 然后 n 行,每行 n 个字符,全部为 @ 或 -,表示初始的正方形。 接下来 n 行,每行 n 个字符,全部为 @ 或 -,表示最终的正方形。 输出格式 单独的一行包括 1∼7 之间的一个数字(在上文已描述)表明需要将转换前的正方形变为转换后的正方形的转换方法。 输入输出样例 输入 #1复制 3 @-@ --- @@- @-@ @-- --@ 输出 #1复制 1 说明/提示 【数据
```cpp #include <iostream> #include <vector> using namespace std; // 旋转90度 vector<string> rotate90(const vector<string>& pattern) { int n = pattern.size(); vector<string> result(n, string(n, ' ')); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { result[j][n - 1 - i] = pattern[i][j]; } } return result; } // 旋转180度 vector<string> rotate180(const vector<string>& pattern) { return rotate90(rotate90(pattern)); } // 旋转270度 vector<string> rotate270(const vector<string>& pattern) { return rotate90(rotate180(pattern)); } // 反射 vector<string> reflect(const vector<string>& pattern) { int n = pattern.size(); vector<string> result = pattern; for (int i = 0; i < n; i++) { for (int j = 0; j < n / 2; j++) { swap(result[i][j], result[i][n - 1 - j]); } } return result; } // 判断两个图案是否相同 bool isSame(const vector<string>& a, const vector<string>& b) { int n = a.size(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (a[i][j] != b[i][j]) { return false; } } } return true; } int main() { int n; cin >> n; vector<string> original(n), target(n); // 读取原始图案 for (int i = 0; i < n; i++) { cin >> original[i]; } // 读取目标图案 for (int i = 0; i < n; i++) { cin >> target[i]; } // 转90度 if (isSame(rotate90(original), target)) { cout << 1 << endl; } // 转180度 else if (isSame(rotate180(original), target)) { cout << 2 << endl; } // 转270度 else if (isSame(rotate270(original), target)) { cout << 3 << endl; } // 反射 else if (isSame(reflect(original), target)) { cout << 4 << endl; } // 组合 else { vector<string> reflected = reflect(original); if (isSame(rotate90(reflected), target)) { cout << 5 << endl; } else if (isSame(rotate180(reflected), target)) { cout << 5 << endl; } else if (isSame(rotate270(reflected), target)) { cout << 5 << endl; } // 不改变 else if (isSame(original, target)) { cout << 6 << endl; } // 无效转换 else { cout << 7 << endl; } } return 0; } ``` [2025-11-25 19:03:09 | AI问答 | 817点数解答]
- [字节豆包] 一块 n×n 正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式: 转 90°:图案按顺时针转 90°。 转 180°:图案按顺时针转 180°。 转 270°:图案按顺时针转 270°。 反射:图案在水平方向翻转(以中央铅垂线为中心形成原图案的镜像)。 组合:图案在水平方向翻转,然后再按照 1∼3 之间的一种再次转换。 不改变:原图案不改变。 无效转换:无法用以上方法得到新图案。 如果有多种可用的转换方法,请选择序号最小的那个。 只使用上述 7 个中的一个步骤来完成这次转换。 输入格式 第一行一个正整数 n。 然后 n 行,每行 n 个字符,全部为 @ 或 -,表示初始的正方形。 接下来 n 行,每行 n 个字符,全部为 @ 或 -,表示最终的正方形。 输出格式 单独的一行包括 1∼7 之间的一个数字(在上文已描述)表明需要将转换前的正方形变为转换后的正方形的转换方法。 输入输出样例 输入 #1复制 3 @-@ --- @@- @-@ @-- --@ 输出 #1复制 1 说明/提示 【数据(817点数解答 | 2025-11-25 19:03:09)47
- [DeepSeek] 在学习了进制转换后, 𝑇 𝐽 老师提出一个问题: 𝑛 ! 转换成 𝑃 进制后,末尾会有多少零呢? 比如: 10 ! = 1 ∗ 2 ∗ . . . ∗ 10 = ( 3628800 ) 10 = ( 156574400 ) 8 = ( 1101110101111100000000 ) 2 = ( 375 𝐹 00 ) 16 10 ! 表示成十进制、八进制,未尾都有 2 个零; 10 ! 表示成二进制未尾有 8 个零。 请你编程计算 𝑛 ! 表示 𝑃 进制后末尾零的个数? 输入 一行,两个用空格隔开的整数 𝑛 , 𝑝 . 输出 一行,一个整数,表示零的个数。 样例输入 复制 10 2 样例输出 复制 8 提示 对于20%数据, 𝑝 = 10 。 对于100%数据, 2 ≤ 𝑛 ≤ 100000 , 2 ≤ 𝑝 ≤ 100000(549点数解答 | 2026-01-11 17:49:54)25
- [字节豆包] 题目描述 小 S 的生日就要到了,小 Q 决定送给小 S 数字 x 当做礼物。为此,她首先准备了一个四位数 x。 但是,小 S 并不喜欢 ≥k 的数字。因此,小 Q 要将 x 的每一位上的数字分别变成这一位数字除以 k 得到的余数。 请你告诉小 Q 最终 x 会变成什么样子。 输入格式 一行,两个用空格隔开的正整数 x,k,其中 x 表示小 Q 准备的数字,保证是一个四位正整数。k 的含义参照题目描述。 输出格式 一行,一个非负整数,表示 x 每一位对 k 取余后的数字。 用c++语言(321点数解答 | 2025-11-05 18:39:56)81
- [字节豆包] 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(385点数解答 | 2025-01-08 03:43:54)428
- [字节豆包] 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(346点数解答 | 2025-01-08 03:46:29)423
- [字节豆包] 题目描述 网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码 应满足以下要求 :。 只能由 a∼z 之间 26 个小写字母、A∼Z 之间 26 个大写字母、0∼9 之间 10 个数字 以及 !@#$ 四个特殊字符构成。 密码最短长度 :6 个字符,密码最大长度 :12 个字符。 大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一 个。 输入格式 输入一行不含空格的字符串。约定长度不超过 100。该字符串被英文逗号分隔为多 段,作为多组被检测密码。 输出格式 输出若干行,每行输出一组合规的密码。输出顺序以输入先后为序,即先输入则先输 出。 输入输出样例 输入 #1 seHJ12!@,sjdkffH$123,sdf!@&12HDHa!,123&^YUhg@! 输出 #1 seHJ12!@ sjdkffH$123 说明/提示 【样例 1 解释】 输入被英文逗号分为了四组被检测密码:seHJ12!@、sjdkffH$123、sdf!@&12HDHa!、 123&^YUhg@!。其中 sdf!@&12HDHa! 长度(567点数解答 | 2025-11-26 20:44:53)53
- [DeepSeek] 题目描述 读入一个 的数字矩阵, 依次输出将原矩阵顺时针寻旋转90°, 180°, 270° 的数字矩阵 . 输入 读入一个整数 接下来 行, 每行 个数的数字矩阵, 每个数字不会超过10000 样例输入 复制 3 1 2 3 4 5 6 7 8 9 样例输出 复制 7 4 1 8 5 2 9 6 3 9 8 7 6 5 4 3 2 1 3 6 9 2 5 8 1 4 7(685点数解答 | 2025-12-15 12:24:50)20
- [DeepSeek] 题目描述 读入一个n*n 的数字矩阵, 依次输出将原矩阵顺时针寻旋转90°, 180°, 270° 的数字矩阵 . 输入 读入一个整数n[1,100] 接下来 行, 每行 个数的数字矩阵, 每个数字不会超过10000 样例输入 复制 3 1 2 3 4 5 6 7 8 9 样例输出 复制 7 4 1 8 5 2 9 6 3 9 8 7 6 5 4 3 2 1 3 6 9 2 5 8 1 4 7(311点数解答 | 2025-12-28 17:05:44)23
- [字节豆包] 题目描述 十进制数字中的每一个数码可以用数位来描述。例如,503 的个位为 3,十位为 0,百位为 5。对其进行数位翻转,就是将最高位变为最低位,而最低位变为最高位。503 翻转后的结果为 305。 小 A 定义了「第二数位」。十进制数从低位到高位,每两个数码构成一个「第二数位」,最高位不足两个数码的,用前导零补齐。例如,12345 将被划分为 01 23 45,共三个「第二数位」。 类似的,「第二数位」翻转,就是将最高位的「第二数位」变为最低位的「第二数位」,而最低位的「第二数位」变为最高位的「第二数位」。「第二数位」内的数码顺序不变。 给出整数 n,请对其进行「第二数位」翻转。翻转后输出的十进制整数不应包含前导零。 输入格式 一行一个整数 n 输出格式 输出一行一个整数,表示对 n 「第二数位」翻转后的结果。 输入样例1 123456 输出样例1 563412 说明/提示 用c++语言(462点数解答 | 2025-11-10 20:30:20)87
- [字节豆包] (1)设计pci抽象类,接口内有约定设备启动的start()方法、约定设备关闭的stop()方法 (2)设计描述显卡的displaycard类、描述声卡的soundcard类和描述网卡的netcard类,这三个都是pci的子类,因此具有了pci接口中声明的设备启动start方法和设备关闭stop方法 (3)设计描述主板的mainboard类,该类中有一个pci类型的数组,描述主板提供的5个插槽,有一个add(pci device)方法,实现向主板插入指定pci设备device,有一个run()方法,实现依次启动主板上的所有pci设备,有一个stop()方法,实现依次关闭主板上所有pci设备 (4)设计计算机类computer类,该类有一个私有的mainboard类型的成员变量cmb, 有一个start()方法,实现开机、运行主板设备的功能;有一个stop()方法,实现关机,停止主板设备的功能 (5)设计computertest主类,在main方法中,创建computer类型的对象com,并通过方法调用模拟启动计算机,关闭计算机操作。(716点数解答 | 2024-12-08 23:38:38)294
- [字节豆包] 模拟实现如下情形:计算机包括主板,主板上有5个pci插槽,可插装显卡、声卡、网卡等pci设备。主板启动时,依次启动主板上的各个pci设备,关机时,依次关闭主板上的各个pci设备。 (1)设计pci抽象类,接口内有约定设备启动的start()方法、约定设备关闭的stop()方法 (2)设计描述显卡的displaycard类、描述声卡的soundcard类和描述网卡的netcard类,这三个都是pci的子类,因此具有了pci接口中声明的设备启动start方法和设备关闭stop方法 (3)设计描述主板的mainboard类,该类中有一个pci类型的数组,描述主板提供的5个插槽,有一个add(pci device)方法,实现向主板插入指定pci设备device,有一个run()方法,实现依次启动主板上的所有pci设备,有一个stop()方法,实现依次关闭主板上所有pci设备 (4)设计计算机类computer类,该类有一个私有的mainboard类型的成员变量cmb, 有一个start()方法,实现开机、运行主板设备的功能;有一个stop()方法,实现关机,停止主板设备的功能 (5)设计co(637点数解答 | 2024-12-09 08:31:54)267
- [字节豆包] 题目描述 小明刚刚学习了三种整数编码方式:原码、反码、补码,并了解到计算机存储整数通常使用补码。但他总是觉得,生活中很少用到 2 31 − 1 2 31 −1 这么大的数,生活中常用的 0 ∼ 100 0∼100 这种数也同样需要用 4 4 个字节的补码表示,太浪费了些。 热爱学习的小明通过搜索,发现了一种正整数的变长编码方式。这种编码方式的规则如下: 对于给定的正整数,首先将其表达为二进制形式。例如, ( 0 ) { 10 } = ( 0 ) { 2 } (0) {10} =(0) {2} , ( 926 ) { 10 } = ( 1110011110 ) { 2 } (926) {10} =(1110011110) {2} 。 将二进制数从低位到高位切分成每组 7 7 bit,不足 7 7bit 的在高位用 0 0 填补。例如, ( 0 ) { 2 } (0) {2} 变为 0000000 0000000 的一组, ( 1110011110 ) { 2 } (1110011110) {2} 变为 001111(490点数解答 | 2026-01-02 19:51:12)20