当前位置:网站首页>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;
}
边栏推荐
- 文件的下载与图片的预览
- numpy数组计算
- Jerry's watch time synchronization [chapter]
- [youcans' image processing learning course] general contents
- 运维必备——ELK日志分析系统
- [200 opencv routines] 100 Adaptive local noise reduction filter
- Why is the default of switch followed by break?
- [true topic of the Blue Bridge Cup trials 43] scratch space flight children's programming explanation of the true topic of the Blue Bridge Cup trials
- How much do you know about free SSL certificates? The difference between free SSL certificate and charged SSL certificate
- 解答:EasyDSS视频点播时音频是否可以设置为默认开启?
猜你喜欢
SAP MM 因物料有负库存导致MMPV开账期失败问题之对策
[opencv] [image gradient]
Unity skframework framework (XIV), extension extension function
Ali on three sides, it's really difficult to successfully get the offer rated P7
What are eNB, EPC and PGW?
Error function ERF
Crowncad (crown CAD), the first fully independent 3D CAD platform based on Cloud Architecture in China
【笔耕不辍勋章活动】生命不止,写作不息
Node. JS accessing PostgreSQL database through ODBC
Web基础
随机推荐
MySQL: Invalid GIS data provided to function st_ geometryfromtext
Mysql常用命令详细大全
完全自主可控三维云CAD:CrownCAD便捷的命令搜索,快速定位所需命令具体位置。
Fundamentals of machine learning (II) -- division of training set and test set
Crowncad (crown CAD), the first fully independent 3D CAD platform based on Cloud Architecture in China
【蓝桥杯选拔赛真题43】Scratch航天飞行 少儿编程scratch蓝桥杯选拔赛真题讲解
Bridge of undirected graph
Finally, someone explained the supervised learning clearly
[opencv learning] [Canny edge detection]
Unity skframework framework (XVI), package manager development kit Manager
能自动更新的万能周报模板,有手就会用!
Redis数据库持久化
三翼鸟两周年:羽翼渐丰,腾飞指日可待
Answer: can the audio be set to on by default during easydss video on demand?
Fully autonomous and controllable 3D cloud CAD: crowncad's convenient command search can quickly locate the specific location of the required command.
屠榜多目标跟踪!BoT-SORT:稳健的关联多行人跟踪
Unity SKFramework框架(十六)、Package Manager 開發工具包管理器
Daily question: 1175 Prime permutation
[技术发展-22]:网络与通信技术的应用与发展快速概览-2- 通信技术
免费SSL证书知多少?免费SSL证书和收费SSL证书的区别