首页 > 试题广场 >

压缩二维码

[编程题]压缩二维码
  • 热度指数:1199 时间限制: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 展开全文
头像 好喜歡妳怎麼辦
发表于 2024-11-22 17:00:21
#include <bits/stdc++.h> #include <vector> const int N = 2e5 + 10; const int inf = 0x3f3f3f3f; using namespace std; using ull = unsigned l 展开全文
头像 Kato_Shoko
发表于 2024-11-20 13:27:16
常规进制转换题 #include <iostream> #include <queue> #include <map> #include <set> #include <cmath> #include <cstring> #in 展开全文
头像 宿伞之神
发表于 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 展开全文
头像 叫啥名
发表于 2025-05-14 20:04:23
// #牛客春招刷题训练营# https://www.nowcoder.com/discuss/726480854079250432 #include <iostream> using namespace std; using ll = long long; void hf_vr_uu 展开全文
头像 来泡池子了的西红柿很奔放
发表于 2024-11-26 13:17:27
#include <stdio.h> #include <math.h> int main() { int n; scanf("%d", &n); if (n == 0) return 0; int row = po 展开全文
头像 zls233
发表于 2024-11-24 23:09:33
#include <bits/stdc++.h> using namespace std; int main() { long long n, bit = 0; string s, ss, sub; cin >> n; for (int i 展开全文
头像 扎男_
发表于 2025-05-12 20:54:16
//活动地址: 牛客春招刷题训练营 - 编程打卡活动 #pragma clang diagnostic push #pragma ide diagnostic ignored "cppcoreguidelines-narrowing-conversions" #pragma 展开全文
头像 高冷荷包蛋666
发表于 2024-11-21 23:00:01
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n 展开全文
头像 阿里嘎多懒羊羊桑_
发表于 2024-11-20 20:53:56
题意给出一个矩阵,#表示1,.表示0,每4位看作二进制,求十进制思路直接模拟即可,这里是先把矩阵转化为只有0和1的数组,然后从头开始遍历,每次取4位按照1 2 4 8 的数位求出十进制数字的值Go代码 package main import ( "fmt" "ma 展开全文