Chirurgia endoscopică a hipofizei
"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală. Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale. www.neurohope.ro |
[TEMA] Problema oras1 de pe .campion
Last Updated: Mar 03 2015 06:33, Started by
Redount2k9
, Mar 02 2015 18:23
·
0
#1
Posted 02 March 2015 - 18:23
Salut,
am incercat sa rezolv aceasta problema -> http://campion.edu.r...on=view&id=1360 , folosind pentru subpunctul a) o parcurgere si pentru si c) doua functii ce fac filling. Aveam de ales daca filling-ul sa se faca simultan, folosind 2 matrici sau parcurgand de 2 ori harta initiala si dupa terminarea unui filling sa resetez matricea care continea numarul de cladiri / parcuri. Am ales prima varianta. Sursa mea functioneaza, singura problema este ca nu iau nici un test. Pentru primul, datele de intrare sunt: 20 20 ..........C......... ..........S......... PPPCCCCSCPSCSSCPCPSP ...SCSCSPPSPSPSPSP.. .....CSCSCSSSCCP.... ..CPCSPPCCPCSSSPPCS. ......CPPSCPSPC..... ..........P......... .......PSPSCCS...... ........CPCSS....... .SCSPPPPPPPSPSCSPSPS SSSCPCPSPSPCSCPSPCPC .......CCCPSCP...... ........PCCPS....... ........PPPSP....... .....PSCCPCPPCPP.... ..PCPPCCPCCSSCCPCPS. ..SPSPSCSSSCSSPCCCP. ........PCSPP....... ........CPCSC.......iar cele de iesire: 135 40 14 Ei bine, algoritmul meu afiseaza: 132 40 14 Deci functia Contur() emite 3 zone si nu stiu de ce. Daca observati o greseala sau o omitere, postati va rog o idee. Multumesc! #include <fstream> using namespace std; ifstream fin("oras1.in"); ofstream fout("oras1.out"); #define DIM 201 int n, m; char a[DIM][DIM]; int c[DIM][DIM]; int d[DIM][DIM]; int S[DIM * DIM / 4], Smax = -1; int cnt, ter, ter2; const int di[] = { -1, -1, -1, 0, 1, 1, 1, 0 }; const int dj[] = { -1, 0, 1, 1, 1, 0, -1, -1}; const int dfi[] = { -1, 0, 1, 0 }; const int dfj[] = { 0, 1, 0, -1}; void Read(); int Contur(); void FillC(int i, int j); void FillP(int i, int j); bool Ok(int i, int j); void Solve2(); void Refresh(); bool IsOnContur(int i, int j); int main() { Read(); fout << Contur() << ' '; Solve2(); //fout << sizeof(a) + sizeof(c) + sizeof(d) + sizeof(S); fin.close(); fout.close(); return 0; } void Refresh() { for ( int i = 1; i <= n; ++i ) for ( int j = 1; j <= m; ++j ) c[i][j] = 0; } void Solve2() { for ( int i = 1; i <= n; ++i ) for ( int j = 1; j <= m; ++j ) { if ( a[i][j] == 'C' && !c[i][j] ) { ter++; FillC(i,j); } if ( a[i][j] == 'P' && !d[i][j] ) { ter2++; FillP(i,j); } } fout << ter << ' ' << Smax << '\n'; } void FillC(int i, int j) { if ( !Ok(i,j) || c[i][j] || a[i][j] != 'C' ) return; c[i][j] = ter; for ( int d = 0; d < 4; ++d ) FillC(i + dfi[d], j + dfj[d]); } void FillP(int i, int j) { if ( !Ok(i,j) || d[i][j] || a[i][j] != 'P' ) return; d[i][j] = ter2; S[ter2]++; if ( S[ter2] > Smax ) Smax = S[ter2]; for ( int d = 0; d < 4; ++d ) FillP(i + dfi[d], j + dfj[d]); } bool Ok(int i, int j) { if ( i < 1 or i > n or j < 1 or j > m ) return false; return true; } int Contur() { for ( int i = 1; i <= n; ++i ) for ( int j = 1; j <= m; ++j ) if ( a[i][j] == 'P' or a[i][j] == 'C' or a[i][j] == 'S' ) { if ( IsOnContur(i,j) ) cnt++; } return cnt; } int iv, jv; bool IsOnContur(int i, int j) { if ( !Ok(i,j) ) return false; for ( int d = 0; d < 8; ++d ) { iv = i + di[d]; jv = j + dj[d]; if (Ok(iv,jv) && a[iv][jv] == '.' ) return true; } return false; } void Read() { fin >> n >> m; for ( int i = 1; i <= n; ++i ) for ( int j = 1; j <= m; ++j ) fin >> a[i][j]; } Edited by Redount2k9, 02 March 2015 - 18:28. |
#2
Posted 02 March 2015 - 22:06
Quote a, c, d, n, m, S, cnt, ter, ter2, di, dj, dfi, dfj |
#4
Posted 03 March 2015 - 06:33
OriginalCopy, on 29 aprilie 2010 - 19:58, said:
Toate codurile sursa postate trebuie sa contina exclusiv identificatori (nume de variabile, functii, clase) ce reprezinta rolul entitatii identificate de catre identificator. Ex asa nu:"int n", asa da: "int dimensiune_matrice". Exceptie o constituie variabilele i, j, k atunci cand sunt folosite drept contoare. Deschide un nou topic in care demonstrezi ca poti respecta si aceasta regula (pe langa toate celelalte). Edited by OriginalCopy, 03 March 2015 - 08:34. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users