- 浏览: 72963 次
- 性别:
- 来自: 杭州
最新评论
游程编码 (Run Length Encoding ) 是一种简单的编码方法,通常用于控制论中对二值图像编码。ACM有一道题目就是关于该编码。见tzu 1149 或poj 1782 。虽然是简单题,我却花了好大功夫才搞定,功力还是不足阿。
程序代码如下:
#include <stdio.h> #define MAX 1024 int printStr(char *str, int len); int main(void) { char target[MAX]; int diffCount,sameCount; char *pFirstChar, *pLastChar; while(1) { if(fgets(target,sizeof(target),stdin) == NULL) break; pFirstChar = pLastChar = target; while(*pLastChar != '\n') { diffCount = 0; sameCount = 1; /*if(*(pLastChar+1) == '\n') { printStr(pLastChar,1); pLastChar++; } else*/ if(*pLastChar == *(pLastChar + 1)) { while(*pLastChar == *(pLastChar + 1) &&sameCount <= 8) { sameCount++; pLastChar++; } printf("%d%c",sameCount,*pLastChar); pLastChar++; pFirstChar = pLastChar; } else { while(*pLastChar != '\n' && *pLastChar != *(pLastChar + 1)) { diffCount++; pLastChar++; } printStr(pFirstChar,diffCount); /* printf("\n");*/ pFirstChar = pLastChar; } } if(*pLastChar == '\n') putchar('\n'); } return 0; } int printStr(char *str, int len) { int i; putchar('1'); for(i = 0; i < len; i++) if(*(str+i) == '1') printf("11"); else putchar(*(str+i)); putchar('1'); return 0; }
发表评论
-
最小c编译器
2011-11-08 14:09 1488最小c编译器(来源 (最好在linux下操作))代码有好几个 ... -
the development of c language(转)
2011-11-08 09:25 1317c语言之父Dennis Ritchie 写的关于c语言开发历 ... -
C语言,你真的弄懂了么?
2011-11-07 12:42 1773程序(来源 ): #include <stdi ... -
pe文件格式实例解析
2011-11-07 10:05 0环境:windows xp 速龙3000+(即x86兼容32位 ... -
小型elf "Hello,World"程序
2011-11-06 23:59 1378参考链接:http://timelessname.com/el ... -
elf文件格式实例解析
2011-11-05 23:00 6363试验环境:archlinux 速龙3000+(即x86兼 ... -
高质量的c源代码
2011-11-03 10:18 1166现在自由软件及开源软件越来越流行,有大量的附带源程序 ... -
fltk 库
2011-09-26 19:47 1847fltk是一个小型、开源、支持OpenGL 、跨平台(win ... -
《Introduction to Computing Systems: From bits and gates to C and beyond》
2011-09-25 23:33 2189很好的一本计算机的入门书,被很多学校采纳作为教材,作者Yale ... -
csapp bufbomb实验
2011-09-16 14:21 4626csapp (《深入理解计算机系统》)一书中有一个关于缓冲区 ... -
the blocks problem(uva 101 or poj 1208)
2011-09-11 20:57 1841题目描述见:uva 101 or poj 1208 ... -
the blocks problem(uva 101 or poj 1208)
2011-09-11 20:56 0题目描述见:uva 101 or poj 1208 ... -
部分排序算法c语言实现
2011-09-02 14:51 1024代码比较粗糙,主要是用于对排序算法的理解,因而忽略了边界和容错 ... -
编译器开发相关资源
2011-08-31 08:40 1215开发编译器相关的一些网络资源: how difficu ... -
zoj 1025 Wooden Sticks
2011-07-23 20:25 971题目见:zoj 1025 先对木棒按照长度进行排序,然后再计 ... -
zoj 1088 System Overload
2011-07-23 17:30 1175约瑟夫环 (josephus problem )问题, ... -
zoj 1091 Knight Moves
2011-07-23 09:05 852题目见zoj 1091 使用宽度搜索优先来求解, ... -
zoj 1078 palindrom numbers
2011-07-22 19:31 1151题目见zoj 1078 主要是判断一个整数在基数为2 ... -
zoj 1006 do the untwist
2011-07-22 13:24 944题目见zoj 1006 或poj 1317 简单 ... -
zoj 3488 conic section
2011-07-22 12:23 1013题目见zoj 3488 很简单的题目,却没能一次搞定,因 ...
相关推荐
标题中的“poj 1782 run length encoding”是一个编程竞赛题目,源自著名的在线算法竞赛平台POJ(Programming Online Judge)。POJ是北京大学维护的一个在线编程评测系统,供程序员练习和测试自己的算法能力。1782是...
零长编解码(Zero Run Length Encoding,ZRL)是一种简单的数据压缩技术,主要用于减少连续重复数字0的数量,尤其在图像或文本数据中0频繁出现时效果显著。它的工作原理是将连续的零序列替换为一个标记,表示零的...
标题“RunLengthEnCodingandDecoding_decoding_run_runlengthencoding_”指的是使用RLE进行图像的压缩和解压缩过程。** RLE的基本原理是将连续出现的相同值(例如,图像中的同一颜色像素)替换为该值和它连续出现的...
Run Length Encoding(RLE)是一种简单的无损数据压缩算法,常用于处理连续重复的数据,尤其在图像处理和文本压缩中非常常见。RLE的核心思想是将连续出现的相同数据值用一个计数值和该值来表示,从而减少数据量,...
Run Length Encoding(RLE)是一种简单的无损数据压缩算法,主要应用于处理连续重复的数据。它通过统计连续出现的相同字符或数值,然后用一个字符(数值)和对应的计数来代替这一串重复的字符(数值),从而达到压缩...
游程编码 c++ runlength encoding
**运行长度编码(Run Length Encoding, RLE)是一种简单的无损数据压缩算法,它通过将连续重复的字符或字节序列替换为该字符或字节的出现次数来减少数据量。这种压缩方法在处理含有大量重复元素的数据时特别有效。在...
RLE(Run Length Encoding)是一种简单的无损数据压缩算法,主要应用于处理连续重复的数据。它通过将连续出现的相同字符计数并存储为一对字符和计数值来减少数据量,从而实现压缩。在这个例子中,我们关注的是如何...
运行长度编码(Run Length Encoding, RLE)是一种简单的无损数据压缩算法,广泛应用于图像处理、文本压缩等领域。在 MATLAB 环境中,RLE 可以通过编写简单的 M 文件来实现。以下是对 RLE 编码和解码原理以及如何在 ...
运行长度编码(Run Length Encoding, RLE)是一种简单的无损数据压缩算法,广泛应用于图像处理、文本压缩等领域。它的基本思想是将连续重复的字符或数值用一对表示重复次数和该字符或数值的数据来替代,从而减少数据...
在众多的压缩算法中,Run Length Encoding(RLE)是一种简单且高效的无损压缩方法。本文将深入探讨RLE编码的概念、原理、C++实现以及其在实际应用中的价值。 **一、RLE编码概述** Run Length Encoding(RLE)是...
Run Length Encoding(RLE)是一种简单的数据压缩算法,它通过统计连续出现的相同数据值的个数来表示数据。在MATLAB中实现RLE,我们可以理解为如何利用这个编程环境来处理这种编码方式。MATLAB是一种强大的数值计算...
Run Length Encoding(RLE)是一种简单的无损数据压缩算法,常用于处理连续重复的数据。它通过统计连续相同字符的数量来压缩数据,将连续的重复字符转换为一个字符和对应计数的组合,从而达到减少数据量的目的。在...
4. **游程编码(Run Length Encoding, RLE)**:游程编码是一种简单的无损数据压缩方法,它通过记录连续相同值的个数来减少数据量。在SPIHT中,游程编码用于编码小波系数的重要性级别,而不是直接的系数值,以进一步...
霍夫曼编码(Huffman Coding)与Run Length Encoding(RLE)是两种常见的无损数据压缩算法,它们各自有其独特的工作原理和应用场景。 霍夫曼编码是一种基于频率的变长编码方法,由美国计算机科学家戴维·霍夫曼在...
% rleenc - 运行长度编码算法% rleenc - 函数对二进制输入序列执行运行长度编码。 % ins - 输入序列% enc - 编码输出% % 例如,x=randint(1,10,[0 1]); % 会给你一个随机序列% 只有零和一。 % enc=rleenc(x);...
在图像处理领域,"Run Length Encoding"(游程编码)是一种简单有效的无损压缩方法,尤其适用于处理二值图像或灰度图像中的连续相同像素。游程编码利用图像中连续同值像素的特点,将一段连续的像素值用该像素值和它...
Run Length Encoding(RLE)是一种简单的无损数据压缩算法,常用于处理连续重复的数据,比如图像数据中的背景颜色。在图像处理中,如果一个颜色连续出现多次,通过记录该颜色出现的次数,而不是连续写入相同的像素值...
这里我们关注的是“16位RLE(Run-Length Encoding)压缩算法”,这是一种简单且高效的无损压缩方法,尤其适用于处理具有大量重复数据的位图(BMP)文件。在给定的压缩包中,包含了实现该算法的源代码文件以及文档和...
游程编码(Run Length Encoding,RLE)是一种简单的无损数据压缩技术,尤其适用于处理具有大量重复元素的数据,如二值图像。二值图像由黑白两种颜色组成,游程编码通过寻找并替换连续的相同颜色像素来减少数据量。...