题解 | #压缩二维码#

压缩二维码

https://www.nowcoder.com/practice/1150d36c2cd64df9bf373988486c6723

#include <bits/stdc++.h>
#include <vector>
const int N = 2e5 + 10;
const int inf = 0x3f3f3f3f;
using namespace std;
using ull = unsigned long long int;
using ll = long long int;

int f(string x){
    int res=0;
    for(int i=0;i<4;i++){
        res+=(x[i]=='#')*(1<<(3-i));
    }
    return res;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    n=(1<<n);
    string ans;
    for(int i=0;i<n;i++){
        string a;
        cin>>a;
        ans+=a;
    }
    n=n*n;
    for(int i=0;i<ans.size();i+=4){
        string x;
        x+=ans[i];
        x+=ans[i+1];
        x+=ans[i+2];
        x+=ans[i+3];
        cout<<f(x)<<" ";
    }
    return 0;
}

二维字符压缩成一维然后每四个字符算一下转二进制的数输出

全部评论
点赞 回复 分享
发布于 昨天 17:00 湖北

相关推荐

勇敢的联想人前程似锦:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
09-27 14:42
已编辑
浙江大学 Java
未来未临:把浙大放大加粗就行
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务