当前位置:网站首页>Solution: Compression Technology (original version and sequel version)
Solution: Compression Technology (original version and sequel version)
2022-07-02 13:29:00 【Pandaoxi】
List of articles
compression technique
Title Description
Let a Chinese character be composed of N × N Of 0 and 1 The dot matrix pattern of .
We generate compression codes according to the following rules . A continuous set of values : Start from the first symbol in the first line of the Chinese character dot matrix pattern , In writing order from left to right , From top to bottom . The first number represents several consecutive 0, The second number means that there are several consecutive 1, The third number is followed by several consecutive 0, The fourth number is followed by several consecutive 1, And so on ……
for example : The following Chinese character dot matrix pattern :
0001000
0001000
0001111
0001000
0001000
0001000
1111111
The corresponding compression code is : 7 3 1 6 1 6 4 3 1 6 1 6 1 3 7 ( The first number is N , The rest of you say alternately 0 and 1 The number of , The compression code guarantees N × N= The sum of alternating numbers )
Input format
a line , Compression code .
Output format
Chinese character dot matrix ( There is no space between dot matrix symbols ).(3<=N<=200)
Examples #1
The sample input #1
7 3 1 6 1 6 4 3 1 6 1 6 1 3 7
Sample output #1
0001000
0001000
0001111
0001000
0001000
0001000
1111111
Answer key
At that time, I saw this problem , Think : Ah, it's simple , Direct output is not the end .
Do it , People are stupid . So never think of a simple problem !
sometimes , It's really “ Aware that , Lost thousands of miles ”. I haven't been right three times before , Just change one sentence of the program AC.
// Author:PanDaoxi
#include <iostream>
using namespace std;
// You don't need a two-dimensional array , Array directly once
int a[40201];
int main(){
int n,m,k=0,text,tmp=1,t;
// m*m Of the lattice
cin>>m;
while(cin>>n){
// Characters used
text=k%2;
// Next , Connect n individual text
t=tmp,tmp+=n;
for(int i=t;i<tmp;i++){
// Write array
a[i]=text;
}
// The next number
k++;
}
// Output
for(int i=1;i<=m*m;i++){
cout<<a[i];
// If the current number of characters meets the requirement of m to be divisible by , It's time for a new line
if(i%m==0) cout<<endl;
}
return 0;
}
You can use Boolean arrays , Further optimization :
// Author:PanDaoxi
#include <iostream>
using namespace std;
bool a[40201],text=true;
int main(){
int n,m,tmp=1,t;
cin>>m;
while(cin>>n){
text=!text,t=tmp,tmp+=n;
for(int i=t;i<tmp;i++){
a[i]=text;
}
}
for(int i=1;i<=m*m;i++){
cout<<a[i];
if(i%m==0) cout<<endl;
}
return 0;
}
compression technique ( Sequel Edition )
Title Description
Let a Chinese character be composed of N × N Of 0 and 1 The dot matrix pattern of .
We generate compression codes according to the following rules . A continuous set of values : Start from the first symbol in the first line of the Chinese character dot matrix pattern , In writing order from left to right , From top to bottom . The first number represents several consecutive 0, The second number means that there are several consecutive 1, The third number is followed by several consecutive 0, The fourth number is followed by several consecutive 1, And so on ……
for example : The following Chinese character dot matrix pattern :
0001000
0001000
0001111
0001000
0001000
0001000
1111111
The corresponding compression code is : 7 3 1 6 1 6 4 3 1 6 1 6 1 3 7 ( The first number is N , The rest of you say alternately 0 and 1 The number of , The compression code guarantees N×N = The sum of alternating numbers )
Input format
Chinese character dot matrix ( There is no space between dot matrix symbols ).(3<=N<=200)
Output format
a line , Compression code .
Examples #1
The sample input #1
0001000
0001000
0001111
0001000
0001000
0001000
1111111
Sample output #1
7 3 1 6 1 6 4 3 1 6 1 6 1 3 7
Answer key
It took a lot of effort , Finally got it ( I can't )
Think of a lot of ways , Thought of a strange way
// Author:PanDaoxi
#include <iostream>
#include <cmath>
using namespace std;
int a[40200],n=0,point=0; // point Save subscript
int main(){
char x,y='0';
while(cin>>x){
// The input character
// Number of characters +1
n++;
// Judge : If the present one is the same as the previous one
if(x==y) a[point]++;
// If it's not the same , Update character
else a[point++]++,y=x;
}
// because n*n Matrix , that n= n The arithmetic square root of
cout<<sqrt(n)<<" ";
// Special value processing
a[0]--,a[point]++;
// The output is over
for(int i=0;i<=point;i++){
cout<<a[i]<<" ";
}
return 0;
}
边栏推荐
- 为什么switch 的default后面要跟break?
- Nohup command
- Unity SKFramework框架(二十一)、Texture Filter 贴图资源筛选工具
- 【笔耕不辍勋章活动】生命不止,写作不息
- [opencv learning] [image histogram and equalization]
- 二、帧模式 MPLS 操作
- Fundamentals of face recognition (facenet)
- Unity SKFramework框架(十二)、Score 计分模块
- We sincerely invite young creators to share with investors and entrepreneurs how to make choices in life in the metauniverse
- Unity SKFramework框架(十五)、Singleton 单例
猜你喜欢
Unity SKFramework框架(十九)、POI 兴趣点/信息点
题解:《你的飞碟在这儿》、《哥德巴赫猜想》
Embedded software development
Redis database persistence
[opencv learning] [image histogram and equalization]
What are eNB, EPC and PGW?
Jerry's watch gets the default ringtone selection list [article]
Unity SKFramework框架(十六)、Package Manager 开发工具包管理器
Unity skframework framework (XIX), POI points of interest / information points
Unity skframework Framework (XVI), package manager Development Kit Manager
随机推荐
题解:《你的飞碟在这儿》、《哥德巴赫猜想》
nohup命令
West digital decided to raise the price of flash memory products immediately after the factory was polluted by materials
Essential for operation and maintenance - Elk log analysis system
Unity skframework framework (XIV), extension extension function
2022 zero code / low code development white paper [produced by partner cloud] with download
自主可控三维云CAD:CrownCAD赋能企业创新设计
文件的下载与图片的预览
Finally, someone explained the supervised learning clearly
Chinese name extraction (toy code - accurate head is too small, right to play)
题解:《压缩技术》(原版、续集版)
net share
JS逆向之行行查data解密
Three methods of finding LCA of the nearest common ancestor
[技术发展-22]:网络与通信技术的应用与发展快速概览-2- 通信技术
Lucky numbers in the [leetcode daily question] matrix
三翼鸟两周年:羽翼渐丰,腾飞指日可待
免费SSL证书知多少?免费SSL证书和收费SSL证书的区别
Fundamentals of machine learning (II) -- division of training set and test set
【蓝桥杯选拔赛真题43】Scratch航天飞行 少儿编程scratch蓝桥杯选拔赛真题讲解