首页 > 其他分享 > Period UVA - 1371

Period UVA - 1371

时间:2023-04-25 20:00:50浏览次数:41  
标签:tes const int Period 1371 UVA include strlen

 

题意:

给两个串A,B。现在把B串分为若干个部分,对每一个部分进行操作将其变为一个A串,代价为每部分操作次数的最大值

求最小代价

 

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N =5003,M=N;
#define int long long
const int inf =1e9 ;

 char a[N],b[N] ;
 int n,m,f[N][100];
 
 bool chk(int md){
 	int i,j;
 	
 	memset(f,127,sizeof f) ;
 	f[1][1]=(a[1]!=b[1]) ;
 	    for(int j=2;j<=m;j++) 
 	    	f[1][j] = min( f[1][j-1]+1,j-1+(a[1]!=b[j]));
 	    	
 	for(i=2;i<=n;i++){
 		if(f[i-1][m]<=md){
 			f[i][1]=(a[i]!=b[1]) ;
 		}  
 		for(j=1;j<=m;j++){
 			f[i][j]=min(f[i][j-1]+1,f[i][j]);
 			f[i][j]=min(f[i-1][j]+1,f[i][j]);
 			f[i][j]=min(f[i-1][j-1]+(a[i]!=b[j]),f[i][j]);
 		}
 	}
 	return f[n][m]<=md;
 }
 signed main(){
 	int tes;
	cin>>tes;    getchar();
 	while(tes--){
 		cin>>(b+1)>>(a+1); n=strlen(a+1); m=strlen(b+1);
 		int l=0,r=50 ;
 		int ans=0;
 		while(l<=r){
 			int md=(l+r)/2;
 			if(chk(md)) r=md-1,ans=md; else l=md+1; 
 		}
 		cout <<ans<<endl;
 	}
 }

 

标签:tes,const,int,Period,1371,UVA,include,strlen
From: https://www.cnblogs.com/towboa/p/17353672.html

相关文章

  • Moving to Nuremberg UVA12223
    题目大意:给出n,一个无根的树,每条边上都有权值。现在每个位置都有一个景点,一个人想在一年之内去cnt[i]次景点,所以接下来给出m,表示说在m个位置上有这个人想去的地方,给出位置以及想去的次数(注意,每去一个景点都要返回自己的住处),namo这个人该住在哪里走的路程才最短。换根dp#incl......
  • Fast Food UVA - 662
    政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往。已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0<i<m。为了提高山区的文化素质,政府又决定从m个村中选择n个村建小学(设0<n≤m<500)。请根据给定的m、n以及所有......
  • Movie collection UVA - 1513
    有n个影碟,标号为1~n,位置为0~n-1,每次取出一个影碟看完后,将其放在最前面(标号为0处),问每个影碟取出前,其位置之前有多少个影碟 开2倍数组,"i放置前面"这个操作add(i,-1),add(newi,1)  #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingn......
  • Prime k-tuple UVA - 1404
        一个步骤: 在[a,b]中标记S的倍数 #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingnamespacestd;constintN=1e5+20;constintQ=2e9+2;#defineintlonglongboolvis[Q];intb[N],pm[N],tot=0;......
  • The Bells are Ringing UVA-12119
    已知M为T1,T2,T3的LCM输出满足Ti-Tj<=25的所有可能情况#include<iostream>#include<cmath>#include<algorithm>#include<cstring>usingnamespacestd;constintN=1E6+3;#defineintlonglongintpm[N],tot;intb[N],fac[N],F[N],len,cnt[N]......
  • codeforces 172B B. Pseudorandom Sequence Period(暴力)
    题目链接:codeforces172B题目大意:给出生成元,和递推式,求一个有限群元素的个数题目分析:暴力求取循环节即可,因为元素个数不会超过mod的大小,所以暴力法复杂度仅仅是O(105)AC代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cstdio>#de......
  • UVA11014
     给定一个NxNxN的正方体,求出最多能选几个整数点。使得随意两点PQ不会使PQO共线。  F(k)#include<iostream>#include<cmath>#include<algorithm>usingnamespacestd;constintN=5e5;#defineintlonglongintb[N+2],pm[N+2],tot=0;intn;intpow3(intx){......
  • Gauss Prime UVA - 1415
     #include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=5e4;intb[N+2],pm[N+2],tot=0;voidinit(){b[1]=1;for(inti=2;i<=N;i++){if(b[i])continue;pm[++tot]=i;......
  • Counting Rectangles UVA - 10574
    给出n个点。问选出4个点作为定点,能够组成多少个平行与坐标轴的矩形。 点按照x排序 n^2挑选出垂直x轴的线段,按照y1排序  #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingnamespacestd;constintN=1e5;structT{ intx......
  • Eigensequence UVA - 11133
    给你一个递增序列的第一位a1,最后一位an,求有多少个序列满足:以a1为首,an为尾 1、B(1)=A(1)2、后面每项满足A[j]=B[j], A(j-1)<B(j)≤A(j),且bj能整除A(j)-A(j-1)。   F[i][j]最后一位为j的方案数#include<iostream>#include<cstring>#include<a......