Maison développement back-end tutoriel php 欧拉回路的使用&&http://acm.hdu.edu.cn/showproblem.php?pid=3018

欧拉回路的使用&&http://acm.hdu.edu.cn/showproblem.php?pid=3018

Jun 13, 2016 pm 01:22 PM
amp Father include int quot

欧拉回路的应用&&http://acm.hdu.edu.cn/showproblem.php?pid=3018

题意:给你一个图,问你最少几笔能画完该图,其中孤立的点除外

#include<cstdio>
#include<string.h>
#include<vector>
#include<string>
#define N 100005
#include<algorithm>
#include<iostream>
using namespace std;
int Father[N];
vector<int>a;//记录根节点,其长度为连通分支的个数
int in[N];
int num[N];//每个连通分支奇度顶点的个数。
bool Hash[N];
int n,m;
void init()
{
	memset(num,0,sizeof(num));
	for(int i=1;i<=n;++i) Father[i]=i;
		memset(in,0,sizeof(in));
		memset(Hash,false,sizeof(Hash));
		a.clear();
}
int Find(int x)
{
	if(x==Father[x]) return x;
	return Father[x]=Find(Father[x]);
}
void Union(int x,int y)
{
	 x=Find(x);
	 y=Find(y);
	 if(x!=y) Father[x]=y;
}
int main()
{
	while(~scanf("%d%d",&n,&m))
	{
		init();
		for(int i=0;i!=m;++i)
		{
			int a,b;
			scanf("%d%d",&a,&b);
			Union(a,b);
			in[a]++;
			in[b]++;
		}
		int res=0;
		for(int i=1;i<=n;++i)
			{
			   int k=Find(i);
			   if(!Hash[k])
			   {
				   Hash[k]=true;
				   a.push_back(k);
			   }
			   if(in[i]&1) num[k]++;
		  }
		for(int i=0;i<a.size();++i)
		{
			int k=a[i];
			if(!in[k]) continue;
			if(num[k]==0) res++;
			else  res+=num[k]/2;
		}
		 printf("%d\n",res);
	}return 0;
}
Copier après la connexion


 

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Explication détaillée de la méthode de conversion du type int en octets en PHP Explication détaillée de la méthode de conversion du type int en octets en PHP Mar 06, 2024 pm 06:18 PM

Explication détaillée de la méthode de conversion du type int en octet en PHP En PHP, nous avons souvent besoin de convertir le type entier (int) en type octet (Byte), par exemple lorsqu'il s'agit de transmission de données réseau, de traitement de fichiers ou d'algorithmes de cryptage . Cet article présentera en détail comment convertir le type int en type byte et fournira des exemples de code spécifiques. 1. La relation entre le type int et l'octet Dans le domaine informatique, le type de données de base int représente un entier, tandis que l'octet (Byte) est une unité de stockage informatique, généralement des données binaires de 8 bits.

Programme C++ pour convertir une variable de type double en type int Programme C++ pour convertir une variable de type double en type int Aug 25, 2023 pm 08:25 PM

En C++, les variables de type int ne peuvent contenir que des valeurs entières positives ou négatives ; elles ne peuvent pas contenir de valeurs décimales. Des valeurs float et double sont disponibles à cet effet. Le type de données double a été créé pour stocker des décimales jusqu'à sept chiffres après la virgule. La conversion d'un entier en type de données double peut être effectuée automatiquement par le compilateur (appelée conversion "implicite"), ou elle peut être explicitement demandée par le programmeur au compilateur (appelée conversion "explicite"). Dans les sections suivantes, nous aborderons différentes méthodes de conversion. Conversions implicites Le compilateur effectue automatiquement des conversions de type implicites. Pour y parvenir, deux variables sont nécessaires : l’une de type virgule flottante et l’autre de type entier. Lorsque nous attribuons simplement une valeur ou une variable à virgule flottante à une variable entière, le compilateur s'occupe de toutes les autres choses.

Quelle est la différence entre php include et include_once Quelle est la différence entre php include et include_once Mar 22, 2023 am 10:38 AM

Lorsque nous écrivons des pages Web en utilisant PHP, nous devons parfois inclure du code provenant d'autres fichiers PHP dans le fichier PHP actuel. À ce stade, vous pouvez utiliser la fonction include ou include_once pour implémenter l'inclusion de fichiers. Alors, quelle est la différence entre include et include_once ?

Quelle est la plage de valeurs de int32 ? Quelle est la plage de valeurs de int32 ? Aug 11, 2023 pm 02:53 PM

La plage de valeurs de int32 va de -2 à la puissance 31 à 2 à la puissance 31 moins 1, soit -2147483648 à 2147483647. int32 est un type entier signé, ce qui signifie qu'il peut représenter des nombres positifs, des nombres négatifs et zéro. Il utilise 1 bit pour représenter le bit de signe et les 31 bits restants sont utilisés pour représenter la valeur numérique. Puisqu’un bit est utilisé pour représenter le bit de signe, le nombre effectif de bits int32 est 31.

Combien de nombres Java int a-t-il ? Combien de nombres Java int a-t-il ? Mar 06, 2023 pm 04:09 PM

En Java, int est un type de données signé 32 bits et ses variables nécessitent une mémoire 32 bits ; la plage valide du type de données int est comprise entre -2147483648 et 2147483647, et tous les entiers de cette plage sont appelés littéraux entiers. Un littéral entier peut être affecté à une variable int, telle que "int num1 = 21;".

Combien d'octets int occupe-t-il ? Combien d'octets int occupe-t-il ? Jan 22, 2024 pm 03:14 PM

Le nombre d'octets occupés par le type int peut varier selon les langages de programmation et les différentes plates-formes matérielles. Introduction détaillée : 1. En langage C, le type int occupe généralement 2 octets ou 4 octets. Dans les systèmes 32 bits, le type int occupe 4 octets, tandis que dans les systèmes 16 bits, le type int occupe 2 octets. Dans un système 64 bits, le type int peut occuper 8 octets ; 2. En Java, le type int occupe généralement 4 octets, tandis qu'en Python, le type int n'a pas de limite d'octets et peut être automatiquement ajusté, etc.

Comment convertir un int en type chaîne en langage Go Comment convertir un int en type chaîne en langage Go Jun 04, 2021 pm 03:56 PM

Méthode de conversion : 1. Utilisez la fonction Itoa(), la syntaxe « strconv.Itoa(num) » ; 2. Utilisez la fonction FormatInt() pour convertir les données de type int dans la base spécifiée et les renvoyer sous la forme d'une chaîne, la syntaxe "strconv .FormatInt(num,10)".

Quelle pièce est l'AMP ? Quelle pièce est l'AMP ? Feb 24, 2024 pm 09:16 PM

Qu’est-ce que la pièce AMP ? Le token AMP a été créé par l'équipe Synereo en 2015 comme principale devise de trading de la plateforme Synereo. Le jeton AMP vise à offrir aux utilisateurs une meilleure expérience économique numérique grâce à de multiples fonctions et utilisations. Objectif du jeton AMP Le jeton AMP a plusieurs rôles et fonctions dans la plateforme Synereo. Premièrement, dans le cadre du système de récompense en crypto-monnaie de la plateforme, les utilisateurs peuvent gagner des récompenses AMP en partageant et en promouvant du contenu, un mécanisme qui encourage les utilisateurs à participer plus activement aux activités de la plateforme. Les jetons AMP peuvent également être utilisés pour promouvoir et distribuer du contenu sur la plateforme Synereo. Les utilisateurs peuvent augmenter la visibilité de leur contenu sur la plateforme en utilisant des jetons AMP pour attirer davantage de téléspectateurs à consulter et à partager.

See all articles