1017 防盗门系统
来源:互联网 发布:淘宝加盟靠谱吗 编辑:程序博客网 时间:2024/04/27 23:14
防盗门系统
时间限制:1000 ms | 内存限制:65536 KB
- 描述
为了加强管理,北航ACM训练队准备在实验室安装“条形码防盗门系统”,防盗门识别到队员们证件上的条形码就能打开。但是防盗门上的识别器模糊,Oyster曾经拿着一本《算法导论》的条形码溜进去了。纸是包不住火的,这天刚好让队长LEO发现了,立刻下令:我们要对所有的条形码进行测试!
条形码由许多粗细不同的黑白平行直线段夹并而成,现在我们要把它看成是许多粗细相同的直线段夹并成的(即,一根粗线看成几根单位粗的细线夹成)。
影响防盗门的识别器工作的主要原因是条形码之间的相似度太高。从两个条形码各取若干部分(起始位置不必相同),分别夹并成两个新的“子条形码”,如果这两子条形码完全一致,那么它们是相似的,相似度就是两个条形码的最长的相似子条形码的长度。
- 输入
输入包括多组数据,第一行为一个整数T,表示数据的组数。
以下对应每个数据都有两行,分别为两个条形码的描述,其中0表示单位长度的白线,1表示单位长度的黑线,以换行符为行结束标志(长度不超过3200)。(如上图为101110)
- 输出
对应每一组数据,只需要输出一行,它们的相似度L。
- 样例输入
210100001110001010
- 样例输出
23
- 提示
1、条形码按输入给出的方向计算,不需要倒置或翻转。
2、样例的最长子条形码分别为00和110。
动态规划题目
#include <stdio.h>#include <string.h>main(){int t,i,al,bl,j;char aa[3201],bb[3201];char a[3201],b[3201];int f[2][3201];scanf("%d",&t);getchar();while(t--){scanf("%s",&aa);scanf("%s",&bb);al=strlen(aa);bl=strlen(bb);for(i=al-1;i>=0;i--)a[i+1]=aa[i];for(i=bl-1;i>=0;i--)b[i+1]=bb[i];for(i=0;i<3201;i++)f[0][i]=0;f[1][0]=0;for(i=1;i<=bl;i++)for(j=1;j<=al;j++){if(a[j]==b[i]) f[i%2][j]=f[(i-1)%2][j-1]+1;else if(f[(i-1)%2][j]>f[i%2][j-1])f[i%2][j]=f[(i-1)%2][j];elsef[i%2][j]=f[i%2][j-1];}if(f[0][al]>f[1][al])f[1][al]=f[0][al];printf("%d\n",f[1][al]);}}
- 1017 防盗门系统
- 给系统加上一个防盗门 - 从r3到r0监控进程启动
- 防盗门如何换锁芯
- 装修日志(吊顶、防盗门)
- 第一次打开家门(防盗门)跳绳很大进步
- 系统
- 《系统》
- 系统
- 系统
- 系统
- 系统
- 系统
- 系统
- 系统
- 系统
- 系统系统!!!
- 二级域名系统?虚拟主机系统?
- 系统寄存器 系统指令
- Android日志系统驱动程序Logger源代码分析
- 1015 约瑟夫
- 1016 超级病毒
- Oracle中如何进行进制转换
- BNUOJ 1777
- 1017 防盗门系统
- 怎样编写一个简单的C语言程序的全过程
- 1018 隐藏的北航
- flex: VerifyError: Error #1053 Illegal override of removeChildBridge...
- 1020 Fibonacci
- 发发牢骚
- 在Silverlight中嵌入HTML或aspx页面
- BitBlt函数
- 码元传输速率计算及运用