ホームページ バックエンド開発 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;
}
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPでint型をbytesに変換する方法を詳しく解説 PHPでint型をbytesに変換する方法を詳しく解説 Mar 06, 2024 pm 06:18 PM

PHPでint型をbyte型に変換する方法を詳しく解説 PHPでは、ネットワークデータ送信やファイル処理、暗号化アルゴリズムなどを扱う場合など、整数型(int)をバイト型(Byte)に変換する必要が生じることがよくあります。 。この記事では、int型をbyte型に変換する方法と具体的なコード例を詳しく紹介します。 1. int 型と byte の関係 コンピュータ分野では、基本データ型 int は整数を表しますが、byte (バイト) はコンピュータの記憶単位で、通常は 8 ビットのバイナリデータです

double型変数をint型に変換するC++プログラム double型変数をint型に変換するC++プログラム Aug 25, 2023 pm 08:25 PM

C++ では、int 型の変数は正または負の整数値のみを保持でき、10 進数値を保持できません。この目的に使用できる float 値と double 値があります。 double データ型は、小数点以下 7 桁までの小数を格納するために作成されました。整数から double データ型への変換は、コンパイラによって自動的に実行することも (「暗黙的」変換と呼ばれます)、プログラマがコンパイラに明示的に要求することもできます (「明示的」変換と呼ばれます)。次のセクションでは、さまざまな変換方法について説明します。暗黙的な変換 コンパイラは暗黙的な型変換を自動的に実行します。これを実現するには、浮動小数点型と整数型の 2 つの変数が必要です。浮動小数点値または変数を整数変数に代入するだけでは、コンパイラが他のすべてのことを処理します。

php include と include_once の違いは何ですか php include と include_once の違いは何ですか Mar 22, 2023 am 10:38 AM

PHP を使用して Web ページを作成する場合、他の PHP ファイルのコードを現在の PHP ファイルに含める必要がある場合があります。現時点では、include 関数または include_once 関数を使用してファイルのインクルードを実装できます。では、include と include_once の違いは何でしょうか?

int32の値の範囲はどれくらいですか? int32の値の範囲はどれくらいですか? Aug 11, 2023 pm 02:53 PM

int32 の値の範囲は、-2 の 31 乗から 2 の 31 乗 - 1、つまり -2147483648 ~ 2147483647 です。 int32 は符号付き整数型です。つまり、正の数、負の数、ゼロを表現できます。1 ビットを符号ビットの表現に使用し、残りの 31 ビットは数値の表現に使用されます。符号ビットを表すために 1 ビットが使用されるため、int32 の有効ビット数は 31 です。

Java int にはいくつの数値がありますか? Java int にはいくつの数値がありますか? Mar 06, 2023 pm 04:09 PM

Java では、int は 32 ビットの符号付きデータ型であり、その変数には 32 ビットのメモリが必要です。int データ型の有効範囲は -2147483648 ~ 2147483647 で、この範囲内のすべての整数は整数リテラルと呼ばれます。 「int num1 = 21;」のように、整数リテラルを int 変数に割り当てることができます。

int は何バイトを占めますか? int は何バイトを占めますか? Jan 22, 2024 pm 03:14 PM

int 型が占めるバイト数は、プログラミング言語やハードウェア プラットフォームによって異なる場合があります。詳細な紹介: 1. C 言語では、int 型は通常 2 バイトまたは 4 バイトを占有します。 32 ビット システムでは、int 型は 4 バイトを占有しますが、16 ビット システムでは、int 型は 2 バイトを占有します。 64 ビット システムでは、int 型は 8 バイトを占有する可能性があります; 2. Java では、int 型は通常 4 バイトを占有しますが、Python では int 型にはバイト制限がなく、自動的に調整できます。

Go言語でintを文字列型に変換する方法 Go言語でintを文字列型に変換する方法 Jun 04, 2021 pm 03:56 PM

変換方法: 1. Itoa() 関数を使用し、構文 "strconv.Itoa(num)" 2. FormatInt() 関数を使用して、int 型データを指定した基数に変換し、文字列の形式で返します。構文「strconv .FormatInt(num,10)」。

AMPとは何のコインですか? AMPとは何のコインですか? Feb 24, 2024 pm 09:16 PM

AMPコインとは何ですか? AMP トークンは、Synereo プラットフォームの主要取引通貨として 2015 年に Synereo チームによって作成されました。 AMP トークンは、複数の機能と用途を通じてユーザーに優れたデジタル経済体験を提供することを目的としています。 AMP トークンの目的 AMP トークンには、Synereo プラットフォームで複数の役割と機能があります。まず、プラットフォームの暗号通貨報酬システムの一部として、ユーザーはコンテンツを共有および宣伝することで AMP 報酬を獲得できます。これは、ユーザーがプラットフォームのアクティビティにより積極的に参加することを促すメカニズムです。 AMP トークンは、Synereo プラットフォームでコンテンツを宣伝および配布するために使用することもできます。ユーザーは、AMP トークンを使用して、より多くの視聴者に視聴して共有してもらうことで、プラットフォーム上でのコンテンツの可視性を高めることができます。

See all articles