˳
'
'
while(i<N && a[i]!=x) i++;
if(i==N) '.
' (). , , .
// N , a[N+1]
a[N]=x; i=0;
while(a[i]!=x) i++;
( ).
, .
L___________m______________R
L=0; R=N-1; i=0; m=0;
while(L<=R && a[i]!=x)
{m=(L+R)/2;
if(a[m]==x) i=m, break;
else if(a[m]<x) L=m+1;
else R=m-1;
}
,
m. ½ , log. N/2 .
, ,
while(a[m]!=x && L<=R)
L<=R a[m]!=x 0.
, , a[m]!=x.
.
L=0; R=N-1; m=0;
while(L<=R)
{ m=(L+R)/2;
if(a[m]==x) i=m, break;
else if(a[m]<x) L=m+1;
else R=m-1;
}
if(a[R]!=x) ;
, L>=R ( ).
, R-L :
- L<R
- , L (m+1), R .
.
, 1 , :
= 1 + ( 1) * ( 1) / ( 1).
, .
char S[N] p[M], 0<M<=N. P S.
i, () P S. :
, ,
i=-1;
do
{ i++; j=0;//Q(i)
while(j<M&&S[i+j]=P[j])
{j++;}
} while(j!=M|| i=!(N-M));
j=M
!(N-M)-
. , N*N .
( , , )
i=0; j=0;
while(j<M && i<N)
{while(j>=0&& s[i]!=P[j])
{j=d;}
i++; j=j+d; //
}
1.3. 1
|
|
1. .
2. RND .
3. . .
4. RND . .
5. .
6. .
7. .
8. . .
9. .
10. 䒺 , , , .
11. , a b. a b .
12. , , .
13. , .
14. , .
15. , .
16. , . .
17. , .
18. ³ .
19. , .
20. , .
21. , 10 . , .
22. , 10 . , ( ) , .
23. , 10 . , .
24. , 10 . .
25. , 10 . , .
26. , 60 , Lat Tal.
27. , 60 , AD, , , , , .
28. , . , 1.
29. a1,,an,b1,,bm k. 1,,n k, , , k. b1,,bm 10.
30. ( , ..). MX[10],MY[8], MZ[6].
|
|
1.4. .
1. ?
2. ?
3. ?
4. .
2 в Ѳ
2.1 ֳ
.
2.2 ϳ
[1, .75-90; 2,.89-96; ].
, .
- , . , .
, , , ().
, , .
, .
( ) , , , . , .
Y, , Y. ( Y , ).
, - , .
( .)
:
;
n+1 ( n+1 ) n- n+2 ;
, f(x1,...,xn) n g(x1,...,xn,y) n+1 .
, , , . , .
. :
.
, , , , .( )
, .
. , , , . , , . '
|
|
, , .
: . , , (). , , . ,
, , . , , , . , . , N , N-1 , ( ). , , , , , , . , N-1 , , , , , . , , , , ... , , . , n .
, .
#include<iostream.h>
int k;
void Hanoy1 (char a,char b,char c,int n);
void main()
{
cout<< << \n;
cin>>k;
Hanoy1 ('A', 'C', 'B', k);// k A C B
cin>>k;
}
void Hanoy1 (char a,char b,char c,int n)
{int v;
v=n;
if (n==1)
cout<< << v<< << a<< <<b<<\n;
else
{Hanoy1 (a, c, b, n - 1); // n - 1 A C B
cout<< <<v<< << a<< << b<<\n;
Hanoy1 (c, b, a, n - 1); // n - 1 C B A
} }
2.3. 2.
1. . :
)
b)
2. . , :
()
3.
(, )
4.
()
5.
()
6.
(, )
7. .
8. () .
9. .
|
|
10. .
11. .
12. , ' .
13. , .
14. .
15. , .
16. q , . . b 0 . a>b. a,b,c c a b
(a,b)=(b,c)
17. , 볺 , .
18. , .
19. Գ (fn)
f0=f1=1; fn=fn-1+fn-2, f=2, 3....
Գ m (m>1).
20. S- Գ, 500. Գ .
21. a1,...,a30.
22. U0, U1, U2,... U0=0, U1=1, Ui+2=Ui+1+Ui.
S= Ui.
23. .
24. a1,...,a30, : a1=2, ai=a[i/2]+ai-1, (i=2,..., 30).
25. a1,...,a30.
26. a1,...,a30
27. , .
28. 1 + 1/2 + 1/3 + + 1/N .
29. k, l, m,
( ).
30. n. ', n, n+1,..., 2n , , . ( , ).
2.4. .
1. ?
2. .
3. ?
4. ?
3 в ̲
3.1 ֳ
. , .
3.2 ϳ
[1, .150-164;2,.110-114; ].
( ) ( ).
- , ' .
- , ' , ' (, ).
: . , , - 1<=i<=n , , f , .
, , .
, . , 4567776 7 if (a[i] <= a[i-1])
while(is)
{ is=0;
for (i=m+1; i<=n; i++)
if (a[i] <= a[i-1])
{ c=a[i];
a[i]=a[i-1];
a[i-1]=c;
is=1;
}
, , , .
, , , , , .
̳ : C- ; M- () .
|
|
, n*ln(n) ( ) , n2 ( ). n - .
, , n .
:
1) .
2)
3) .
. . .
, , .
" ". . , . , , .
, ( m n) . .
/* */
float * bubble(float * a, int m, int n)
{ char is=1;
int i;
float c;
while(is)
{ is=0;
for (i=m+1; i<=n; i++)
if (a[i] < a[i-1])
{ c=a[i];
a[i]=a[i-1];
a[i-1]=c;
is=1;
} } return(a); }
3.3. 3.
, , .
: ..
3.4.
1. ?
2. ?
3. ?
4. ' ?
5. ?
4. в Բ. .
4.1 ֳ
, .
4.2.ϳ
. , .
( ) ( ) .
= . .
.
.
, , - , , .
.
,
, , .
, - , - ' . , .
, , . .
, .
, , .
, , .
:= ,
. , .
, , .
.
,
1,
0,
( )
, ,
. .
, .5.1.
4.3. 4.
.
4.4. .
1. .
2. ?
3. .
4. ?
5. ?
5.в Բ. .
5.1.
, .
5.2.ϳ
.
, ' , . , .
, .
, ( ), | V |×| V |, :
,
= Weight(vi, vj), i <> j, (vi, vj);
, i <> j, () (vi, vj).
: G =(V, E) (). , () , .
:
1. D0 | V |× V |, :
dii0 = 0;
dij0 = Weight(vi, vj), i <> j, (vi, vj);
dij0 =+, i <> j, () (vi, vj).
2. m:=0.
:
1. Dm+1 Dm, :
dijm+1 =min{ dijm, di(m+1)m + d(m+1)jm }, i <> j; diim+1=0 (*).
dimm + dmim < 0 i, () , vi; ղ.
2. m:= m +1; m <| V |, (1),
D | V | ;
ղ.
ʲ
, P pij = i. , (1) dijm+1 (*) ( di(m+1)m + d(m+1)jm < dijm), pij:= p(m+1)j. P : pij i j ( pij = i, ).
: - , Dm , , ( ) .
{int c[p][p];//
int t[p][p];//
int h[p][p];//
for(int i=0;i<p;i++)
for(int j=0;j<p;j++)
cin>> c[i][j];
for(int i=0;i<p;i++)
for(int j=0;j<p;j++)
{ t[i][j]=c[i][j];
if(c[i][j]==555) h[i][j]=0; // i j
else h[i][j]=j;// i j
}
for(int i=0;i<p;i++)
{ for(int j=0;j<p;j++)
for(int k=0;k<p;k++)
if(i!=j&&t[j][i]!=555&& i!=k && t[i][k]!=555 &&
(t[j][k]==555 ||t[j][k]>t[j][i]+t[i][k]))
{h[j][k]=h[j][i];// '
t[j][k]=t[j][i]+t[i][k];// '
}
for(int j=0;j<p;j++)
if(t[j][j]<0)break;
}
}
5.3. 5.
5, , , .
5.4. .
1. ?
2. ?
3. ?
4. ?
6.в в Ͳ.
6.1.
.
6.2.ϳ
, , .
.
. , . . ֳ .
.
Procedure Tttt; (**)
Begin
Repeat
If then
;
If then
Tttt(i+1);
If then
End;
End;
End;
Until OR ;
End;
//
//
const int dx[8]={2,1,-1,-2,-2,-1, 1, 2};
const int dy[8]={1,2,2, 1,-1,-2,-2,-1};
const int nx=15; int h[15][15];
void move (int i,int x, int y,bool &q);
void ShowDesk(int dk[ ][nx],int nx);
int n;
void main(void)
{
bool nq; char ch;
cout<<" : "<<'\n';
cin>>n;
h[i][j]=1; //
nq=false;
move(2,i,j,nq);
}
void move (int ii,int x, int y,bool &q)
{int k,u,v;
bool q1;
k=0;
if(q==true) return;
do
{if (k<8) k++;
else k=0;
q1=false;
u=x+dx[k];
v=y+dy[k];
if(u>=0&&u<n&&v>=0&&v<n&&h[u][v]==0)
{h[u][v]=ii;
if(ii<n*n){ move(ii+1,u,v,q1);}
else{q=q1=true;return;}
if(q1==true) {q=q1;return;}
h[u][v]=0;
} }
while(k<8);
q=q1;
}//move
: 5
г:0,0 (Y/N)?y 1 20 15 8 3 14 9 2 21 16 19 22 13 4 7 10 5 24 17 12 23 18 11 6 25 | г:3,1 (Y/N)?y 25 16 11 4 23 10 5 24 17 12 15 18 9 22 3 6 1 20 13 8 19 14 7 2 21 | (Y/N)?y г:4,0 (Y/N)?y 25 22 17 10 5 16 11 6 23 18 21 24 15 4 9 12 7 2 19 14 1 20 13 8 3 |
г:4,4 (Y/N)?y 25 20 9 14 3 8 15 4 19 10 21 24 13 2 5 16 7 22 11 18 23 12 17 6 1 |
6.3. 6.
1-3. . 3 , , 9 , (.7.1. .7.3.).
4. . ' . . , . , (.7.22.)
5-8. . (.7.4. .7.8.).
9-12. . (.7.9. .7.11.).
13-16. . (.7.12. .7.15.).
17. , .
18. , .
19. . , , (). , . , .
20. . . .
21. . . .
22. . 8 , (). , , . . . 33 .
23. . 10 , (). , , . . . 49 .
24. . 21 , (). , , . . . 321 .
25. .16. , , . , , - , , 1 3, 6 8. , (.7.16.).
26. 49 (.7.17.). . , , 쳺 , , , .
27-30. , {1,...,5} {6,,10}... ³ . (.7.18. 7.21.).
6.4.
1. , .
2. .
3. ?
4. , ?
7.в ֲ̲ ʲ .
7.1.
. .
7.2.ϳ
. .
. 1962.
, .
, ( ), .
, SX, , , . S t . AD, .
: , C[u][v]
, .
: ,
BEGIN
for
for
if(F[u][v]<C[u][v]){CX[u][v]=C[u][v]-F[u][v];//
AD[u][v]=1;}
else {CX[u][v]=F[u][v];
AD[u][v]=-1;}//
End for(v)
S t .
if PRZ==0
//(PRZ - - F )
else
{DELE min{CX[u][v];u,v WAY}
for
if (AD[u][v]==1) F[u][v]= F[u][v]+DEL;
else F[u][v]= F[u][v]-DEL;
End for(u)
END
S t .
: ;
: ,
//Begin
//
//
=0 // S t
While (!=0)
{
- -
, ,
if (!=0) // ,
{{ =1
}
ʲ
}
}
ʲ
7.3. 7.
. , :
void maxfl (int N, int M[N][N], int F[N][N], int C[N][N], int FM[N][N]);
N
M
C
F
FM .
,