【DP】顺序对齐
来源:互联网 发布:java dao模式 编辑:程序博客网 时间:2024/06/03 05:43
顺序对齐
源程序名 ALIGN.??? (PAS,C,CPP)
可执行文件名 ALIGN.EXE
输入文件名 ALIGN.IN
输出文件名 ALIGN.OUT
考虑两个字符串右对齐的最佳解法。例如,有一个右对齐方案中字符串是AADDEFGGHC和ADCDEGH。
AAD_DEFGGHC
ADCDE__GH_
每一个数值匹配的位置值2分,一段连续的空格值-1分。所以总分是匹配点的2倍减去连续空格的段数,在上述给定的例子中,6个位置(A,D,D,E,G,H)匹配,三段空格,所以得分2*6+(-1)*3=9,注意,我们并不处罚左边的不匹配位置。若匹配的位置是两个不同的字符,则既不得分也不失分。
请你写个程序找出最佳右对齐方案。
输入
输入文件包含两行,每行一个字符串,最长50个字符。字符全部是大字字母。
输出
一行,为最佳对齐的得分。
样例
ALIGN.IN
AADDEFGGHC
ADCDEGH
ALIGN.OUT
9
=================================
===============================
var st1,st2:string; f:array[0..50,0..50]of longint;procedure init;begin assign(input,'align.in'); assign(output,'align.out'); reset(input); rewrite(output);end;procedure terminate;begin close(input); close(output); halt;end;procedure main;var i,j,k:longint; st1_l,st2_l:longint;begin readln(st1); readln(st2); st1_l:=length(st1); st2_l:=length(st2); for i:=0 to 50 do for j:=0 to 50 do f[i,j]:=-1000000; for i:=0 to st1_l do f[i,0]:=0; for i:=0 to st2_l do f[0,i]:=0; for i:=1 to st1_l do for j:=1 to st2_l do begin if st1[i]=st2[j] then begin if f[i-1,j-1]+2>f[i,j] then f[i,j]:=f[i-1,j-1]+2; end else if f[i-1,j-1]>f[i,j] then f[i,j]:=f[i-1,j-1]; for k:=1 to i-1 do if f[i,j]<f[k,j]-1 then f[i,j]:=f[k,j]-1; for k:=1 to j-1 do if f[i,j]<f[i,k]-1 then f[i,j]:=f[i,k]-1; end; writeln(f[st1_l,st2_l]);end;begin init; main; terminate;end.
- 【DP】顺序对齐
- 线性dp顺序对齐
- 字节顺序&字节对齐
- caioj1069 顺序对齐
- dp求顺序hdu1160
- 蓝桥杯 出栈顺序 DP
- 关于字节对齐和运算顺序优先级的讨论
- zoj 3211 砍树 有顺序的dp
- LA4015,论DP中顺序的重要性
- 对齐
- 对齐
- 对齐
- 对齐
- 对齐
- 对齐
- 关于位域的字节内存储顺序、字节对齐、字节序以及符号
- 关于位域的字节内存储顺序、字节对齐、字节序以及符号
- BMP格式补充(16bbp & 32bbp & 4字节对齐 & pixel data存放顺序)
- jsp基础与应用
- java与c/c++进行socket通信(3)
- 摩尔盛宴的终结?(翻译自ACM Communication 2011年11月刊)
- Ext2那些事儿(一)
- ARM小键盘、LED、BEEP驱动
- 【DP】顺序对齐
- JDK切换版本
- 职责链模式(python)
- Android Google地图上overlay显示位置,路线
- android 为什么需要签名
- 正则表达式
- Android Animations之LayoutAnimationController的使用方法
- JNI入门教程之HelloWorld篇
- JSP的应用