识别条形码

news/2024/11/22 17:57:07/

问题描述


       计算机学院2013级的院草语文难同学是软院院花牟黑黑爱慕的对象,因此牟黑黑经常约楠神去逛街,楠神不喜欢陪牟黑黑逛街,但是不得不从啊。所以在牟黑黑逛街的时候他就无聊的用眼睛识别条形码 。

       在生活中,条形码经常用来标志物品的信息。条形码是由黑白相间的条组成的。条的宽度有两种,我们可以认为窄的代表0,宽的代表1。本题中设定宽条的宽度是窄条的两倍。

      楠神拥有很强的DIY精神,他决定做一个条形码识别工具。首先他完成了图像识别部分,得到了一系列条的宽度。他希望将这些宽度识别为一个01串。本来这是一个非常简单的任务,可是由于楠神在识别的时候会有误差,使得问题变得没那么简单了。不过楠神认为测量得到的结果最多比真实值大或小5%。请你帮忙完成这个识别程序。已知条形码中至少有一个是宽条,可能没有窄条。

输入第一行为一个数字n(n<20),表示楠神识别出了n个条。

第二行为n个正整数,均不大于10^8。

输出为一个长度为n的01串,宽条对应1,窄条对应0。如果有些条偏差的超过了限制,输出“Bad Barcodes”


测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助
测试用例 1 以文本方式显示
  1. 4↵
  2. 99 105 200 199↵
以文本方式显示
  1. 0011↵
1秒 64M 0
题解思路

整体思路:

整体思路就是对给出的数据进行排序,根据最值得情况来判断改组数据是不是合法,是不是只有宽条,处理好多%5少%5就好了。

具体实现:

讨论区里面大神们已经用各种不同的方法得到了结果,我这里就不说了就给出几个判定的等式

宽Max/窄min<=1.05/0.95

窄Max/窄min<=1.05/0.95

宽Max/窄min<=2.1/0.95

宽min/窄Max>=1.9/1.05

因为一共只有20个数所以可以有比较多的方法。


实现代码


<span style="font-family:Microsoft YaHei;font-size:14px;">#include<stdio.h>
#include<stdlib.h>
int cmp(const void *x,const void *y)
{return *(int*)x-*(int*)y;
}
int main()
{int n,i;long ch[23],lin[23],l[23];double sky1,sky2;double zhong;scanf("%d",&n);for(i=0;i<n;i++){scanf("%ld",&ch[i]);lin[i]=ch[i];}qsort(ch,n,sizeof(ch[0]),cmp);zhong=(ch[0]+ch[n-1])/2;if(ch[0]/0.95>=zhong){for(i=0;i<n;i++){                           //判断全部为宽的情况 printf("1");}printf("\n");}else{for(i=0;i<n;i++){if(ch[i]<=zhong){l[i]=ch[i]*2;}else{l[i]=ch[i];}}qsort(l,n,sizeof(l[0]),cmp);if(l[0]/0.95>=l[n-1]/1.05){for(i=0;i<n;i++){if(lin[i]<zhong){printf("0");}else{printf("1");}}printf("\n");}else{printf("Bad Barcodes\n");}}return 0;
}</span>



http://www.ppmy.cn/news/664978.html

相关文章

根据条形码获取商品信息

根据条形码获取商品信息 function getGoodsInfoByCode(code){commonAjax.commAJAX({//根据条形码的查询url: "/goodsmanager/getGoddsListBygoodsBarcode?page1&limit10",//订单号 条形码method:get,data:{goodsBarcode:code},ajaxFunc:function(res){if(res.m…

Barcode for Mac(条形码生成器)

用户可以自定义所有的条码内容&#xff0c;无论是字体还是条码宽度都能自定义生成&#xff0c;通过可以轻松完成条形码的创建&#xff0c;并且减少错误&#xff0c;非常方便。 barcode mac教程 安装包下载完成后&#xff0c;双击安装&#xff0c;根据安装器提示进行安装即可。 …

条形码编码规则及标准

任何一种条形码&#xff0c;都是按照预先规定的编码规则和条形码有关标准&#xff0c;由条和空组合而成的。编码规则主要研究包括条形码基本术语在内的一些基本概念和条形码符号结构以及编码基本原理。编码规则既是有关条形码的入门知识&#xff0c;又是条形码技术的基本内容&a…

iOS 扫描二维码/条形码

Linux编程 点击右侧关注&#xff0c;免费入门到精通&#xff01; 作者丨QiShare https://www.jianshu.com/p/6529f5729b36 最近做IoT项目&#xff0c;在智能设备配网过程中有一个扫描设备或说明书上的二维码/条形码来读取设备信息的需求&#xff0c;要达到的效果大体如下&#…

iOS条码的生成

这个算不算什么个人分享,只是对两个库的分享. NKDBarcode, 这是一个小日本人写的生成条形码的库, 写得还不错, 各种常用码都可以生成, 而且调用起来也很方便, 唯一不足的就是这个库是MRC的, 所以使用的时候要都几十个.m文件进行"-fno-objc-arc". ps:手机客户端生成条…

【PC】CPU与GPU

文章目录 CPU与主板CPU是什么主板是什么功能 GPU与显卡GPU是什么显卡是什么功能 CPU与GPU的关系 ALU&#xff1a; 算术单元&#xff08;Arithmetic Unit&#xff09;&#xff1a;算术单元执行基本的算术运算&#xff0c;如加法、减法、乘法和除法。它能够对整数、浮点数和定点数…

【AUTOSAR】BMS开发实际项目讲解(二十九)----电池管理系统电池充放电功率控制与SOC

电池充放电功率控制 关联的系统需求 Sys_Req_3901、Sys_Req_3902、Sys_Req_3903、Sys_Req_3904; 功能实现描述 电池充放电功率控制主要包括以下内容&#xff1a; 60S可用功率 参见[CELL] 30S可用功率 参见[CELL] 10S可用功率 参见[CELL] SOP算法 ID Description ASI…

显卡工作原理入门

文章目录 显卡的发展历史显卡的基本工作方式显卡的工作模式 80 25 16 80\times25~16 8025 16 色文本模式 640 480 16 640\times480~16 640480 16 色图形模式 320 240 256 320\times240~256 320240 256 色图形模式 640 480 16.8 M 640\times480~16.8M 640480 16.8M 色图形模…