ÔÆÌ⺣ - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µ±Ç°Î»ÖãºÊ×Ò³ > µÚ6½² - - ¶¯Ì¬¹æ»®×¨Ìâ½²×ù

µÚ6½² - - ¶¯Ì¬¹æ»®×¨Ìâ½²×ù

  • 62 ´ÎÔĶÁ
  • 3 ´ÎÏÂÔØ
  • 2026/4/22 23:03:22

Òò¶øÓÐµÝ¹é¹ØÏµ£º

q(i)=max(q(j))+1 (a[j]¡Ýa[i],1¡Üi

{ max=0;

for(j=i+1;j<=n;j++)

if(a[i]<=a[j] && q(j)>max) max=q(j); f=max+1; }

return f; }

(3) ÔÚÖ÷º¯ÊýÖÐÒÀ´Îµ÷ÓÃq(n?1),?,q(1)£¬±È½ÏÕân?1¸öÖµµÃÆäÖеÄ×î´óÖµlmax£¬¼´ÎªËùÇóµÄ×·Ç½µ×ÓÐòÁеij¤¶È¼´×îÓÅÖµ¡£ £¨4£©¹¹Ôì×îÓŽâ

´ÓÐòÁеĵÚ1Ïʼ£¬ÒÀ´ÎÊä³öq(i)·Ö±ðµÈÓÚlmax,lmax?1,?,1ËùÄǾ͵ÄÏîa[i]£¬Õâ¾ÍÊÇËùÇóµÄÒ»¸ö×·Ç½µ×ÓÐòÁС£ £¨5£©µÝ¹éʵÏÖ¶¯Ì¬¹æ»®³ÌÐòÉè¼Æ // µÝ¹éʵÏÖ¶¯Ì¬¹æ»® #include #include #include int i,n,a[2000]; void main()

{ int t,x,lmax; int q(int i);

t=time(0)00;srand(t); // Ëæ»úÊý·¢ÉúÆ÷³õʼ»¯ printf(\ scanf(\ for(i=1;i<=n;i++)

{a[i]=rand()%(5*n)+10; // ²úÉú²¢Êä³ön¸öÊý×é³ÉµÄÐòÁÐ printf(\ } lmax=0;

for(i=n-1;i>=1;i--)

if(q(i)>lmax) lmax=q(i); // ±È½ÏµÃ×î´ó·Ç½µÐòÁг¤

printf(\Êä³ö×î´ó·Ç½µÐòÁг¤ x=lmax;

for(i=1;i<=n;i++) if(q(i)==x)

{printf(\Êä³öÒ»¸ö×î´ó·Ç½µÐòÁÐ }

4£®³ÌÐòÔËÐÐʾÀýÓëÌÖÂÛ

ÔËÐгÌÐò£¬input n(n<2000):12

48 16 45 47 52 46 36 28 46 69 14 42 L=5.

16 45 47 52 69

×¢Ò⣬Ëù¸øÐòÁ㤶ÈΪ5µÄ·Ç½µ×ÓÐòÁпÉÄÜÓжà¸ö£¬ÕâÀïÖ»Êä³öÆäÖÐÒ»¸ö¡£

ÓÉÉÏ¿ÉÖª£¬ÔÚ¶¯Ì¬¹æ»®Éè¼ÆÖУ¬×îÓÅÖµ¿É¾­µÝÍÆµÃµ½£¬Ò²¿É¾­µÝ¹éµÃµ½¡£Ò»°ãµØ£¬Ó¦ÓõÝÍÆÐ§Âʸü¸ßЩ£¬ÒÔϸ÷°¸ÀýµÄ¶¯Ì¬¹æ»®Éè¼ÆÖоùÓ¦ÓõÝÍÆµÃ×îÓÅÖµ¡£

6.2.2 ×¹«¹²×ÓÐòÁÐ

Ò»¸ö¸ø¶¨ÐòÁеÄ×ÓÐòÁÐÊÇÔÚ¸ÃÐòÁÐÖÐɾȥÈô¸É¸öÔªËØºóËùµÃµ½µÄÐòÁС£ÓÃÊýѧÓïÑÔ±íÊö£¬ ¸ø¶¨ÐòÁÐX??x1,x2,?,xm?£¬ÁíÒ»ÐòÁÐZ??z1,z2,?,zk?£¬XµÄ×ÓÐòÁÐÊÇÖ¸´æÔÚÒ»¸öÑϸñµÝÔö ϱêÐòÁÐ?i1,i2,?,ik?ʹµÃ¶ÔÓÚËùÓÐj=1,2,?,kÓÐzj?xij¡£ÀýÈ磬ÐòÁÐZ??b,d,c,a?ÊÇÐòÁÐ X??a,b,c,d,c,b,a?µÄÒ»¸ö×ÓÐòÁУ¬»ò°´½ô´Õ¸ñʽÊéд£¬ÐòÁС°bdca¡±ÊÇ¡°abcdcba¡±µÄÒ»¸ö

×ÓÐòÁС£

ÈôÐòÁÐZÊÇÐòÁÐXµÄ×ÓÐòÁУ¬ÓÖÊÇÐòÁÐYµÄ×ÓÐòÁУ¬Ôò³ÆZÊÇÐòÁÐXÓëYµÄ¹«¹²×ÓÐòÁС£ÀýÈ磬ÐòÁС°bcba¡±ÊÇ¡°abcbdab¡±Óë¡°bdcaba¡±µÄ¹«¹²×ÓÐòÁС£

1. °¸ÀýÌá³ö

¸ø¶¨Á½¸öÐòÁÐX??x1,x2,?,xm?ºÍY??y1,y2,?,yn?£¬ÕÒ³öÐòÁÐXºÍYµÄ× ¹«¹²×ÓÐòÁС£

ÀýÈ磬¸ø³öÐòÁÐX£ºhsbafdreghsbacdbaÓëÐòÁÐY£ºacdbegshbdrabsa£¬ÕâÁ½¸öÐòÁеÄ×¹«¹²×ÓÐòÁÐÈçºÎÇóµÃ£¿

2£®¶¯Ì¬¹æ»®Ëã·¨Éè¼Æ

ÇóÐòÁÐXÓëYµÄ×¹«¹²×ÓÐòÁпÉÒÔʹÓÃÇî¾Ù·¨£ºÁгöXµÄËùÓÐ×ÓÐòÁУ¬¼ì²éXµÄÿһ¸ö×ÓÐòÁÐÊÇ·ñÒ²ÊÇYµÄ×ÓÐòÁУ¬²¢¼Ç¼ÆäÖй«¹²×ÓÐòÁеij¤¶È£¬Í¨¹ý±È½Ï×îÖÕÇóµÃXÓëYµÄ×¹«¹²×ÓÐòÁС£¶ÔÓÚÒ»¸ö³¤¶ÈΪmµÄÐòÁÐX£¬Æäÿһ¸ö×ÓÐòÁжÔÓ¦ÓÚϱ꼯{1,2,?,m}µÄ

m

Ò»¸ö×Ó¼¯£¬¼´XµÄ×ÓÐòÁÐÊýÄ¿¶à´ï2¸ö¡£Óɴ˿ɼûÓ¦ÓÃÇî¾Ù·¨Çó½âÊÇÖ¸Êýʱ¼äµÄ¡£

×¹«¹²×ÓÐòÁÐÎÊÌâ¾ßÓÐ×îÓÅ×ӽṹÐÔÖÊ£¬Ó¦Óö¯Ì¬¹æ»®Éè¼ÆÇó½â¡£ £¨1£©½¨Á¢µÝÍÆ¹ØÏµ

ÉèÐòÁÐX??x1,x2,?,xm?ºÍY??y1,y2,?,yn?µÄ×¹«¹²×ÓÐòÁÐΪZ??z1,z2,?,zk?£¬

?xi,xi?1,?,xm?Óë?yj,yj?1,?,yn?(i=0,1,?,m;j=0,1,?,n)µÄ×¹«¹²×ÓÐòÁеij¤¶ÈΪ

c(i,j)¡£

Èôi=m+1»òj=n+1£¬´ËʱΪ¿ÕÐòÁУ¬c(i,j)=0£¨±ß½çÌõ¼þ£©¡£

Èôx(1)=y(1)£¬ÔòÓÐz(1)=x(1),c(1,1)=c(2,2)+1£¨ÆäÖÐ1Ϊz(1)ÕâÒ»Ï£» Èôx(1)¡Ùy(1)£¬Ôòc(1,1)È¡c(2,1)Óëc(1,2)ÖеÄ×î´óÕß¡£ Ò»°ãµØ£¬Èôx(i)=y(j)£¬Ôòc(i,j)=c(i+1,j+1)+1£» Èôx(i)¡Ùy(j)£¬Ôòc(i,j)=max(c(i+1,j),c(i,j+1))¡£ Òò¶ø¹éÄÉΪµÝÍÆ¹ØÏµ£º

1¡Üi¡Üm,1¡Üj¡Ün,xi?yj??c(i?1,j?1)?1c(i,j)??

max(c(i,j?1),c(i?1,j))1¡Üi¡Üm,1¡Üj¡Ün,x?y?ij?

±ß½çÌõ¼þ£ºc(i,j)=0 £¨i=m+1»òj=n+1£©

£¨2£©ÄæÍƼÆËã×îÓÅÖµ

¸ù¾ÝÒÔÉϵÝÍÆ¹ØÏµ£¬ÄæÍƼÆËã×îÓÅÖµc(0,0)Á÷³ÌΪ£º

for(i=0;i<=m;i++) c[i][n]=0; // ¸³³õʼֵ for(j=0;j<=n;j++) c[m][j]=0;

for(i=m?1;i>=0;i??) // ¼ÆËã×îÓÅÖµ for(j=n?1;j>=0;j??) if(x[i]==y[j])

c[i][j]=c[i+1][j+1]+1;

else if(c[i][j+1]>c[i+1][j]) c[i][j]=c[i][j+1]; else c[i][j]=c[i+1][j];

printf(\×¹«¹²×Ó´®µÄ³¤¶ÈΪ£º%d\ // Êä³ö×îÓÅÖµ ÒÔÉÏË㷨ʱ¼ä¸´ÔÓ¶ÈΪO(mn)¡£ £¨3£©¹¹Ôì×îÓŽâ Ϊ¹¹Ôì×îÓŽ⣬¼´¾ßÌåÇó³ö×¹«¹²×ÓÐòÁУ¬ÉèÖÃÊý×és(i,j)£¬µ±x(i)=y(j)ʱs(i,j)=1£»µ±x(i)¡Ùy(j)ʱs(i,j)=0¡£

XÐòÁеÄÿһÏîÓëYÐòÁеÄÿһÏîÖðÒ»±È½Ï£¬¸ù¾Ýs(i,j)Óëc(i,j)ȡֵ¾ßÌå¹¹Ôì×¹«¹²×ÓÐòÁС£ÊµÊ©x(i)Óëy(j)±È½Ï£¬ÆäÖÐi=0,1,?,m?1;j=t,1,?,n?1£»±äÁ¿t´Ó0¿ªÊ¼È¡Öµ£¬µ±È·¶¨×¹«¹²×ÓÐòÁÐÒ»Ïîʱ£¬t=j+1¡£ÕâÑù´¦Àí¿É±ÜÃâÖØ¸´È¡Ïî¡£

Èôs(i,j)=1ÇÒc(i,j)=c(0,0)ʱ£¬È¡x(i)Ϊ×¹«¹²×ÓÐòÁеĵÚ1Ïî;

Ëæºó£¬Èôs(i,j)=1ÇÒc(i,j)=c(0,0) ?1ʱ£¬È¡x(i)×¹«¹²×ÓÐòÁеĵÚ2Ïî; Ò»°ãµØ£¬Èôs(i,j)=1ÇÒc(i,j)=c(0,0) ?wʱ(w´Ó0¿ªÊ¼£¬Ã¿È·¶¨×¹«¹²×ÓÐòÁеÄÒ»ÏwÔö1)£¬È¡x(i)×¹«¹²×ÓÐòÁеĵÚwÏî¡£

¹¹Ôì×¹«¹²×ÓÐòÁÐÃèÊö£º for(t=0,w=0,i=0;i<=m?1;i++) for(j=t;j<=n?1;j++)

if(s[i][j]==1 && c[i][j]==c[0][0]?w) {printf(\

w++;t=j+1;break; }

£¨4£©Ëã·¨µÄ¸´ÔÓ¶È·ÖÎö

2

ÒÔÉ϶¯Ì¬¹æ»®Ëã·¨µÄʱ¼ä¸´ÔÓ¶ÈΪO(n)¡£ 3£®×¹«¹²×ÓÐòÁÐC³ÌÐòʵÏÖ // ×¹«¹²×ÓÐòÁÐ #include #define N 100 void main()

{char x[N],y[N];

int i,j,m,n,t,w,c[N][N],s[N][N];

printf(\ÇëÊäÈëÐòÁÐx£º\// ÏȺóÊäÈëÐòÁÐ scanf(\

printf(\ÇëÊäÈëÐòÁÐy£º\ for(m=0,i=0;x[i]!='\\0';i++) m++; for(n=0,i=0;y[i]!='\\0';i++) n++;

for(i=0;i<=m;i++) c[i][n]=0; // ¸³±ß½çÖµ for(j=0;j<=n;j++) c[m][j]=0;

for(i=m?1;i>=0;i??) // µÝÍÆ¼ÆËã×îÓÅÖµ for(j=n?1;j>=0;j??) if(x[i]==y[j])

{c[i][j]=c[i+1][j+1]+1; s[i][j]=1; } else

{s[i][j]=0;

if(c[i][j+1]>c[i+1][j]) c[i][j]=c[i][j+1]; else c[i][j]=c[i+1][j]; }

printf(\×¹«¹²×ÓÐòÁеij¤¶ÈΪ£º%d\// Êä³ö×îÓÅÖµ printf(\×¹«¹²×ÓÐòÁÐΪ£º\¹¹Ôì×îÓŽâ t=0;w=0;

for(i=0;i<=m?1;i++) for(j=t;j<=n?1;j++)

if(s[i][j]==1 && c[i][j]==c[0][0]?w) {printf(\ w++;t=j+1;break; }

ËÑË÷¸ü¶à¹ØÓÚ£º µÚ6½² - - ¶¯Ì¬¹æ»®×¨Ìâ½²×ù µÄÎĵµ
  • ÊÕ²Ø
  • Î¥¹æ¾Ù±¨
  • °æÈ¨ÈÏÁì
ÏÂÔØÎĵµ10.00 Ôª ¼ÓÈëVIPÃâ·ÑÏÂÔØ
ÍÆ¼öÏÂÔØ
±¾ÎÄ×÷Õߣº...

¹²·ÖÏí92ƪÏà¹ØÎĵµ

Îĵµ¼ò½é£º

Òò¶øÓÐµÝ¹é¹ØÏµ£º q(i)=max(q(j))+1 (a[j]¡Ýa[i],1¡Üi

¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩
µ¥Æª¸¶·ÑÏÂÔØ
ÏÞÊ±ÌØ¼Û£º10 Ôª/·Ý Ô­¼Û:20Ôª
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºfanwen365 QQ£º370150219
Copyright © ÔÆÌ⺣ All Rights Reserved. ËÕICP±¸16052595ºÅ-3 ÍøÕ¾µØÍ¼ ¿Í·þQQ£º370150219 ÓÊÏ䣺370150219@qq.com