begin process at 2012 05 27 19:58:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > IMPLÉMENTATION DE MINIMUM SPANNING TREE POUR UNE SOCIÉTÉ D'AUTOROUTES

IMPLÉMENTATION DE MINIMUM SPANNING TREE POUR UNE SOCIÉTÉ D'AUTOROUTES




 Description

Cliquez pour voir la capture en taille normale
mon code sert pour trouver le minimum de goudron pour que certaines villes seront connectés entre eux
en faite c'est la resolution d'un probleme dans un concours de programmation (enoncé du probleme dans le ZIP)

Source

  • #include<iostream>
  • #include<queue>
  • using namespace std;
  • struct edge{
  • char a,b;
  • int d;
  • edge(char a,char b,int d){
  • this->a=a;
  • this->b=b;
  • this->d=d;
  • }
  • };
  • struct compare{
  • bool operator()(edge e1,edge e2){
  • return e1.d>e2.d;
  • }
  • };
  • int main(){
  • freopen("grand.out","w",stdout);
  • freopen("grand.in","r",stdin);
  • int n,distance,n_voisins;
  • char v,v_voisine;
  • cin>>n;
  • while(n!=0){
  • priority_queue<edge,vector<edge>,compare> pQ;
  • for(int i=0;i<n-1;i++){
  • cin>>v>>n_voisins;
  • for(int j=0;j<n_voisins;j++){
  • cin>>v_voisine>>distance;
  • edge e(v,v_voisine,distance);
  • pQ.push(e);
  • }
  • }
  • bool ville[26][26];
  • for(int i=0;i<n;i++)
  • for(int j=0;j<n;j++)
  • ville[i][j]=(i==j);
  • int min_distance=0;
  • while(!pQ.empty()){
  • int v1=pQ.top().a-'A';
  • int v2=pQ.top().b-'A';
  • int d=pQ.top().d;
  • pQ.pop();
  • if(!ville[v1][v2])
  • { min_distance+=d;
  • for(int i=0;i<n;i++)
  • for(int j=0;j<n;j++)
  • if(ville[i][v1] && ville[v2][j])
  • ville[i][j]=ville[j][i]=true;
  • }
  • }
  • cout<<min_distance<<endl;
  • cin>>n;
  • }
  • return 0;
  • }
#include<iostream>
#include<queue>
   using namespace std;
           
   struct edge{
           
   
   
      char a,b;
      int d;       
   
   
              
      edge(char a,char b,int d){
              
      
      
         this->a=a;
         this->b=b;
         this->d=d;        
      }
   };


           
   struct compare{
           
              
      bool operator()(edge e1,edge e2){
              
      
         return e1.d>e2.d;   
      }
   };  


           
   int main(){
           
   
      freopen("grand.out","w",stdout);
      freopen("grand.in","r",stdin);      
      int n,distance,n_voisins;     
      char v,v_voisine;
      cin>>n;
      while(n!=0){
         priority_queue<edge,vector<edge>,compare> pQ;
         for(int i=0;i<n-1;i++){           
            cin>>v>>n_voisins;
         
            for(int j=0;j<n_voisins;j++){                        
               cin>>v_voisine>>distance;
               edge e(v,v_voisine,distance);
               pQ.push(e);
            }    
         }       
      
         bool ville[26][26];
         for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
               ville[i][j]=(i==j); 
         int min_distance=0;
      
         while(!pQ.empty()){         
            int v1=pQ.top().a-'A';
            int v2=pQ.top().b-'A';
            int d=pQ.top().d;
            pQ.pop();
            if(!ville[v1][v2])
            { min_distance+=d;              
               for(int i=0;i<n;i++)              
                  for(int j=0;j<n;j++)                  
                     if(ville[i][v1] && ville[v2][j])
                        ville[i][j]=ville[j][i]=true;     
            }                  
         
         
         }
         cout<<min_distance<<endl;
         cin>>n;
         
      }
      return 0;
   
   }


 Conclusion

mon code peut aussi servir pour trouver les villes qui seront connectées entre eux !
il faut simplement afficher la structure des edges .

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   GRAND
    • grand.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 941 octets
    • PbG.pdfTélécharger ce fichier [Réservé aux membres club]188 046 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture CLASS MATRICE C++
MEILLEURE MÉTHODE POUR CALCULER UN PUISSANCE
Source avec Zip Source avec une capture OBTENIR TOUTES LES NOMBRES PREMIERS DANS UNE GRANDE RANGÉE A...
Source avec une capture EVALUATION D'UNE EXPRESSION PARENTHÉSÉE
Source avec une capture CALCUL DU FACTORIEL DES GRANDS NOMBRES EN TOUTE RAPIDITÉ

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CRIBLE D'ERATOSTHÈNE OPTIMISÉ par pgl10
Source avec Zip Source avec une capture OPTIMISATION DE CALCULS (WIN64) par BruNews
Source avec Zip Source avec une capture ALGORITHMES D'OPTIMISATION NON LINÉAIRE: DESCENTE DE GRADIEN... par Pistol_Pete
Source avec Zip ALGORITHME GÉNÉTIQUE RCPSP par pclover
Source avec Zip Source avec une capture TEST VITESSE SELON TYPE (WIN32, WIN64) par BruNews

Commentaires et avis

Commentaire de Cyberboy2054 le 11/04/2007 17:09:12

C'est rare qu'on fasse le coup de mettre une capture d'ecran du code source, mais ca fait bien rire :)
En général cela sert plutôt à montrer le programme durant son execution :)

Commentaire de Kirua le 14/04/2007 20:09:21

!! Très fort le coup du screenshot :D

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Optimisation... :) [ par CodeNeo ] Hello tout le monde !!Question ! Est ce que quelqu'un saurait comment raccourcir le code suivant ?bool __fastcall TForm1::InitBouton ( void ) { Spe [C++] Optimisation de pile [ par guiguikun ] optimisation [ par ifren ] Comment est ce que je peux optimiser le temps d'execution de mon application, quel sont les differents type de pistesmerci soyant heureux faisant fort optimisation affichage opengl [ par xian240482 ] J'ai reussis a affiché un fichier .ASE , mais c'est lent! En cherchant un peu partout, j'ai trouvé plusieur voie :Les gll optimisation de code [ par yakalelo ] Salut J' aimerais optimiser un programme en langage C pour le faire tourner plus vite. Il est constitue principalement de conditions if-else. est ce optimisation d un code asm [ par sajid_morad ] salut tout le monde j aimerai bien savoir comment optimiser un code en assembleur ( le temps d execution des instruction le plus optimal ), et esqu il systeme non lineaire+optimisation d'une fonction non lineaire [ par correcte ] Bonjour,Je cherche un programme ecrit en c++ qui permet de resoudre un systeme d'equations non lineaire.Je cherche egalement un programme qui fait le optimisation [ par arf63 ] Salut j aimerai savoir s il y a moyen d optimiser ca avec un switch case je le maitrise moyenement si quelqu un pourait m aider if (iMat[iPosy][iPosx] pb d'optimisation [ par pipow1 ] Bonjour &#224; tous Je recherche la m&#233;thode la plus rapide pour copier un tableau 3D dans un tableau 1D, en &#233;vitant bien sur de passer par u optimisation de la memoire en c++ [ par ebooserge ] salut a tous,voila j'ai une question un peu bete mais je me lance quand meme.lorsqu'on declare une variable a l'interieur d'une fonction qui appartien


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 10,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales