,   CyberForum.ru

-, - C++

C++ http://www.cyberforum.ru/cpp-beginners/thread200083.html
: 55 : 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 24 23 22 20 9 .
C++ ! #include<iostream.h> void main() { int x, y; x=-10; do { y = 15*x*x - 10; http://www.cyberforum.ru/cpp-beginners/thread200081.html
C++ .
, . , N. 13 : : #include <iostream.h> #include<conio.h>
C++ .
! . a, . , - .. (!) . , : ...
C++ http://www.cyberforum.ru/cpp-beginners/thread200070.html
#include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { int n,i,j,min1,max1,x1,y1,x2,y2; cin>>n; int a;
C++ , , ? , , , , . ( - ""), . #include <stdafx.h> #include <string.h> #include <conio.h> #include <malloc.h> #include...

Artishok
   Artishok
277 / 276 / 32
: 27.12.2009
: 1,767
30.11.2010, 13:10     -,
?

:

-.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#define maxint 100000
 
int min(int a,int b)//äëÿ ïîèñê* ðåáð* ñ ìè*èì*ëü*îé ïðîïóñê*îé ñïîñîá*îñòüþ
{
    if (a<b)
       return a;
    else
       return b;
}
 
/*Èç**÷*ëü*î âåëè÷è*å ïîòîê* ïðèñâ*èâ*åòñÿ ç**÷å*èå 0: f(u,v) = 0 äëÿ âñåõ . 
Ç*òåì âåëè÷è** ïîòîê* èòåð*òèâ*î óâåëè÷èâ*åòñÿ ïîñðåäñòâîì ïîèñê* óâåëè÷èâ*þùåãî ïóòè 
(ïóòü îò èñòî÷*èê* s ê ñòîêó t, âäîëü êîòîðîãî ìîæ*î ïîñë*òü áîëüøèé ïîòîê). 
Ïðîöåññ ïîâòîðÿåòñÿ, ïîê* ìîæ*î **éòè óâåëè÷èâ*þùèé ïóòü.*/
 
/*
1)Îá*óëÿåì âñå ïîòîêè. Îñò*òî÷**ÿ ñåòü èç**÷*ëü*î ñîâï*ä*åò ñ èñõîä*îé ñåòüþ.
2)Â îñò*òî÷*îé ñåòè **õîäèì ëþáîé ïóòü èç èñòî÷*èê* â ñòîê. Åñëè ò*êîãî ïóòè *åò, îñò***âëèâ*åìñÿ.
3)Ïóñê*åì ÷åðåç **éäå**ûé ïóòü (î* **çûâ*åòñÿ óâåëè÷èâ*þùèì ïóò¸ì èëè óâåëè÷èâ*þùåé öåïüþ) ì*êñèì*ëü*î âîçìîæ*ûé ïîòîê:
4)Í* **éäå**îì ïóòè â îñò*òî÷*îé ñåòè èùåì ðåáðî ñ ìè*èì*ëü*îé ïðîïóñê*îé ñïîñîá*îñòüþ cmin.
5)Äëÿ ê*æäîãî ðåáð* ** **éäå**îì ïóòè óâåëè÷èâ*åì ïîòîê ** cmin, * â ïðîòèâîïîëîæ*îì åìó - óìå*üø*åì ** cmin.
6)Ìîäèôèöèðóåì îñò*òî÷*óþ ñåòü. Äëÿ âñåõ ð¸áåð ** **éäå**îì ïóòè, * ò*êæå äëÿ ïðîòèâîïîëîæ*ûõ èì ð¸áåð, 
âû÷èñëÿåì *îâóþ ïðîïóñê*óþ ñïîñîá*îñòü. Åñëè î** ñò*ë* *å*óëåâîé, äîá*âëÿåì ðåáðî ê îñò*òî÷*îé ñåòè, 
* åñëè îá*óëèë*ñü, ñòèð*åì åãî.
7)Âîçâð*ù*åìñÿ ** ø*ã 2.*/
 
int put(int **mat,bool *v,int nach1,int kon1,int temp,int razm)//ïîèñê ïóòè îò òî÷êè ê òî÷êè
{   
  if (nach1==kon1)//ïóòü **éäå*
   return temp;
  v[nach1]=true;//ïîìå÷*åì òî÷êó îòïð*âëå*èÿ
  for(int i=0;i<razm;i++)//äîëæ*î îáîéòè âñå âåðøè*û.* êîë-âî âåðøèå razm
   if(!v[i]&&mat[nach1][i]>0)//åñëè ** äóãå åñòü åù¸ ìåñòî è âåðøè** *å ò* ÷åðåç êîòîðóþ óæå ïðîøëè
   {
    int def=put(mat,v,i,kon1,min(temp,mat[nach1][i]),razm);//èùåì ìè*èì*ëü*îå ðåáðî è ýòî áóäåò ïðîïóñùå**ûé ïîòîê
     if (def>0)//åñëè ïîòîê *å*óëåâîé.åãî **äî ïðîïóñòèòü ÷åðåç âåðøè*ó
     {
      mat[nach1][i] -=def;//6)
      mat[i][nach1] +=def;//6)
      return def;
     }
    }
    return 0;
}
 
int potok(int **mat,int nach,int kon,int razm)//ñîîáñâå**î ïîèñê ïîòîê*
{
  for(int flow=0;;)//îá*óëå*èå ïîòîêîâ.êîãä* ç*êî*÷èòñÿ öèêë *åèçâåñò*î.ñ ê*êèì ø*ãîì èçìå*ÿòüñÿ òîæå *å èçâåñò*î
  {
   int ch=razm;
   bool ar[ch];//ì*ññèâ ïîìåòîê âåðøè*
   int deff=put(mat,ar,nach,kon,maxint,razm);//èùåì ïóòü.âåð*åò ç**÷å*èå ïðîïóùå**îãî ïîòîê*
   if (deff==0)//åñëè åñëè óæå áîëüøå ïðîïóñòèòü *åëüçÿ
     return flow;//ì*êñèì*ëü*ûé ïîòîê âåð*åì
   flow+=deff;//óâåëè÷èâ*åì ì*êèì*ëü*ûé ïîòîê
  }
}
    
int main()
{
    int razm=0;//ð*çìåð ì*òðèöû.ïåðâî**÷*ëü*î ð*âå* 0
    cout<<"Size of matrix"<<endl;
    cin>>razm;
    
    int **matrix=new int*[razm];
    for(int i=0;i<razm;i++)
     matrix[i]=new int[razm];
     
    cout<<"Insert elements"<<endl;  
    for(int i=0;i<razm;i++)
     for(int j=0;j<razm;j++)
      cin>>matrix[i][j];
      
    //òð**ñôîðìèðîâ**èå ì*òðèöû ê *åîáõîäèìîìó âèäó
    /*1)ïåòåëü *åò ïîýòîìó ýëåìå*òû ãë*â*îé äè*ãî**ëè 0
      2)èç ëþáîé âåðùè*û *å ìîæåò èäòè â èñòîê
      3)èç ñòîê* *å èäåò *è÷åãî*/
      for(int i=0;i<razm;i++)
       for(int j=0;j<razm;j++)
        {
          //1)îá*óëå*èå äè*ãî**ëè
          if (i==j)
            matrix[i][j]=0;
          //2)â èñòîê *å èäåò *è÷åãî
          matrix[i][0]=0;
        }
        //3)ñòðîê* matrix[razm][razm] ñîäåðæèò 0
        for(int j=0;j<razm;j++)
         matrix[razm-1][j]=0;
         
     cout<<"Matrix"<<endl;
     for(int i=0;i<razm;i++)
     {
      for(int j=0;j<razm;j++)
        cout<<matrix[i][j]<<" ";
       cout<<endl;
     }
     //ïðè ïîèñêå ì*êñèì*ëü*îãî ïîòîê* **äî ñëîæèòü âñå ïîòîêè êîòîðûå ìîæ*î ê ñòîêó ïðîâåñòè.
     cout<<potok(matrix,0,(razm-1),razm)<<endl;
     
     for(int i=0;i<razm;i++)
     delete [] matrix[i];
     
     delete [] matrix;
     return 0;    
}
3 20
help

3 31


12 50
java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class MaxFlowFordFulkerson {
 
  static int findPath(int[][] cap, boolean[] vis, int u, int t, int f) {
    if (u == t)
      return f;
    vis[u] = true;
    for (int v = 0; v < vis.length; v++)
      if (!vis[v] && cap[u][v] > 0) {
        int df = findPath(cap, vis, v, t, Math.min(f, cap[u][v]));
        if (df > 0) {
          cap[u][v] -= df;
          cap[v][u] += df;
          return df;
        }
      }
    return 0;
  }
 
  public static int maxFlow(int[][] cap, int s, int t) {
    for (int flow = 0;;) {
      int df = findPath(cap, new boolean[cap.length], s, t, Integer.MAX_VALUE);
      if (df == 0)
        return flow;
      flow += df;
    }
  }
 
  // Usage example
  public static void main(String[] args) {
    int[][] capacity = { { 0, 3, 2 }, { 0, 0, 2 }, { 0, 0, 0 } };
    System.out.println(4 == maxFlow(capacity, 0, 2));
  }
}
.
 
: 06:04. GMT +3.
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
@Mail.ru