首页 > 试题广场 >

压缩二维码

[编程题]压缩二维码
  • 热度指数:268 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

小欧的二维码转换服务上线了!只需要发送一个字符串,服务器就会把他转换成一个二维码发送给客户端。二维码是一个为  的方格子,里面每个  的格子都有黑或者白两种颜色。然而,没过多久,小欧的服务器就崩溃了。经过检查,小欧发现,服务器会生成一张二维码的图片,发送给客户端,而传输图片的流量大小过大,导致服务器瘫痪。聪明的小欧知道只有黑白格的二维码可以用比特位  和  来编码,编码后的传输效率远远大于图片。

小欧发明了一种编码方式:用  长度的二进制串来表示一个边长为  的二维码。他会逐行扫描该二维码,并且把扫描到的内容变成  比特流,其中  代表白色, 代表黑色。

现在给你一张二维码图,请你把他转换成比特流。


输入描述:

第一行一个数  。

接下来  行,每行  个字符,代表该二维码图形。其中  代表白色, 代表黑色。



输出描述:
\frac{ {2^n*2^n}}{4} 个整数,代表转换后的比特流。每个整数为4位比特位所组成的二进制数的值。
示例1

输入

1
.#
#.

输出

6
示例2

输入

2
.##.
#..#
##..
...#

输出

6 9 12 1

说明

逐行扫描后,得到的01比特流为:0110100111000001。
将4个比特位合成为一个整数,得到 6(0110) 9(1001) 12(1100) 1(0001)。
示例3

输入

3
#.##.#.#
#..#.##.
###.#.##
####.##.
##..#...
.##.#.#.
######.#
...##.#.

输出

11 5 9 6 14 11 15 6 12 8 6 10 15 13 1 10
头像 kkkyd
发表于 2024-11-20 11:24:31
#include <bits/stdc++.h> using namespace std; //每4个一组,有pow(2,2*n)/4,遍历输出就行 int main() { int n,ans=0; cin>>n; char c; int p 展开全文
头像 Kato_Shoko
发表于 2024-11-20 13:27:16
常规进制转换题 #include <iostream> #include <queue> #include <map> #include <set> #include <cmath> #include <cstring> #in 展开全文
头像 阿里嘎多懒羊羊桑_
发表于 2024-11-20 20:53:56
题意给出一个矩阵,#表示1,.表示0,每4位看作二进制,求十进制思路直接模拟即可,这里是先把矩阵转化为只有0和1的数组,然后从头开始遍历,每次取4位按照1 2 4 8 的数位求出十进制数字的值Go代码 package main import ( "fmt" "ma 展开全文
头像 Hiiro_2233
发表于 2024-11-19 20:12:25
分析:就是一个输入字符串然后没四位输出一个答案就行了代码 #include "bits/stdc++.h" using namespace std; #define int long long #define endl "\n" #define PII pa 展开全文
头像 welken
发表于 2024-11-19 20:56:08
采用了直接的方式来处理每次输入的字符(. 是0 #是1)如0110 = 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0;用一个循环计算并直接输出 #include <bits/stdc++.h> using namespace std; int main() { i 展开全文
头像 努力变强2
发表于 2024-11-19 23:25:37
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll>PII; const int N = 2e5 + 10; const int MOD = 9982 展开全文
头像 予世柔
发表于 2024-11-21 14:34:57
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner sc = 展开全文
头像 宿伞之神
发表于 2024-11-20 00:13:25
模拟。 #include<bits/stdc++.h> #define int long long #define double long double #define x first #define y second using namespace std; typedef long 展开全文
头像 tartarns_yan
发表于 2024-11-20 09:17:34
#include <iostream> using namespace std; int main() { int n; string res; cin >> n; char temp; while(cin >> temp 展开全文