【洛谷 P1636】Einstein學畫畫 題解(圖論+歐拉通路)

Einstein學畫畫

題目描述

Einstein 學起了畫畫。

此人比較懶~~,他希望用最少的筆畫畫出一張畫……

給定一個無向圖,包含 n n n 個頂點(編號 1 ~ n 1 \sim n 1n), m m m 條邊,求最少用多少筆可以畫出圖中所有的邊。

輸入格式

第一行兩個整數 n , m n, m n,m

接下來 m m m 行,每行兩個數 a , b a, b a,b a ≠ b a \ne b a=b),表示 a , b a, b a,b 兩點之間有一條邊相連。

一條邊不會被描述多次。

輸出格式

一個數,即問題的答案。

樣例 #1

樣例輸入 #1

5 5
2 3
2 4
2 5
3 4
4 5

樣例輸出 #1

1

提示

對于 50 % 50 \% 50% 的數據, n ≤ 50 n \le 50 n50 m ≤ 100 m \le 100 m100

對于 100 % 100\% 100% 的數據, 1 ≤ n ≤ 1000 1 \le n \le 1000 1n1000 1 ≤ m ≤ 10 5 1 \le m \le {10}^5 1m105


思路

歐拉通路:經過所有頂點且每條邊恰好經過一次的通路
歐拉回路:經過所有頂點且每條邊恰好經過一次的回路
歐拉圖:有歐拉回路的圖

根據歐拉圖判別定理,無向圖G具有歐拉回路當且僅當G是連通的且無奇度頂點。當沒有奇度定點時,該圖為歐拉圖,存在經過所有頂點且每條邊恰好經過一次的回路,可以一筆畫,直接輸出1。

無向圖G具有歐拉通路、但沒有歐拉回路,當且僅當G是連通的且有2個奇度頂點,其余頂點均為偶度數的,這2個奇度頂點是每條歐拉通路的端點。當奇度定點只有兩個時,也可以一筆畫。

無向圖奇度點的個數一定是偶數個,因為每加一條邊,總度數加2。每多兩個奇度點,筆畫數多1,所以輸出 odd / 2


AC代碼

#include <iostream>
#define AUTHOR "HEX9CF"
using namespace std;const int N = 1e6 + 7;int n, m;
int d[N];
int odd;int main() {cin >> n >> m;for (int i = 1; i <= m; i++) {int a, b;cin >> a >> b;d[a]++;d[b]++;}odd = 0;for (int i = 1; i <= n; i++) {if (d[i] % 2) {// 奇度頂點odd++;}}if (odd) {cout << odd / 2 << endl;} else {cout << 1 << endl;}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168262.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168262.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168262.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nodejs微信小程序+python+PHP-書吧租閱管理系統的設計與實現-安卓-計算機畢業設計

目 錄 摘 要 I ABSTRACT II 目 錄 II 第1章 緒論 1 1.1背景及意義 1 1.2 國內外研究概況 1 1.3 研究的內容 1 第2章 相關技術 3 2.1 nodejs簡介 4 2.2 express框架介紹 6 2.4 MySQL數據庫 4 第3章 系統分析 5 3.1 需求分析 5 3.2 系統可行性分析 5 3.2.1技術可行性&#xff1a;…

深度學習+不良身體姿勢檢測+警報系統+代碼+部署(姿態識別矯正系統)

正確的身體姿勢是一個人整體健康的關鍵。然而&#xff0c;保持正確的身體姿勢可能很困難&#xff0c;因為我們經常忘記這一點。這篇博文將引導您完成為此構建解決方案所需的步驟。最近&#xff0c;我們在使用 POSE 進行身體姿勢檢測方面玩得很開心。它就像一個魅力&#xff01;…

Ubuntu20安裝ssh服務

Ubuntu20上執行如下命令查看是否存在ssh服務 #ps -e | grep ssh 只有ssh-agent&#xff0c;沒有sshd; 因此要安裝openssh-server. 搜索openssh-server,得到下載鏈接&#xff1a; openssh-server 復制這個Binary Package鏈接即可下載&#xff0c;然后使用如下命令安裝 sudo…

Ruoyi項目傳List到后臺并使用Excel模板下載數據的方法以及遇到的各種前后端數據交互問題

import { download } from @/utils/requestconst app = createApp(App)// 全局方法掛載 app.config.globalProperties.download = download 首先因為ruoyi-ui中的main.js有配置如上全局注冊: 因此只需要在vue中定義一個方法直接使用this.download調用下載即可: (download的3…

Hausdorff是什么距離,怎樣計算的

Hausdorff距離是一種用于度量兩個集合之間的相似性或差異性的距離度量指標。它基于數學家Felix Hausdorff的工作而得名。 對于給定的兩個集合A和B&#xff0c;Hausdorff距離定義為集合A中的每個點到集合B的最近點的最大距離&#xff0c;與集合B中的每個點到集合A的最近點的最大…

C++列表初始化

1.列表初始化 注意和初始化列表區分開來&#xff0c;在 C 98 中允許使用花括號對數組或者結構體元素進行統一的初始值設定。 struct Point {int _x;int _y; };int main() {int array1[] { 1, 2, 3, 4, 5 };int array2[5] { 0 };Point p { 1, 2 };return 0; }而 C 11 擴大了…

PyQt6庫和工具庫QTDesigner安裝與配置

鋒哥原創的PyQt6視頻教程&#xff1a; 2024版 PyQt6 Python桌面開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili2024版 PyQt6 Python桌面開發 視頻教程(無廢話版) 玩命更新中~共計12條視頻&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面開發 視頻教程(無廢話版…

c語言第七彈--掃雷小游戲!

今天做一個有趣的掃雷小游戲 現在正式開始設計。 思路&#xff1a;想要根本上實現必須擁有 實現函數的主體.c文件 頭文件.h 及頭文件實現.c。 頭文件.h #pragma once #include <stdio.h> #include <stdlib.h> #include <time.h> #define EASY_COUNT 10 #d…

【knife4j-spring-boot】Springboot + knife4j-spring-boot 整合swagger腳手架

swagger-boostrap-ui從1.x版本到如今2.x&#xff0c;同時也更改名字Knife4j 在此記錄下 knife4j-spring-boot-starter 的整合。 只需要引入knife4j-spring-boot-starter&#xff0c;無需引入其他的swagger包&#xff0c;knife4j-spring-boot-starter已經包含。 官方版本說明…

mysql1124實驗七索引管理

實驗任務七 索引管理實驗任務書 1. 實驗目的 掌握在MySQL中使用MySQL Workbench或者SQL語句創建和使用索引的方法&#xff08;以SQL命令為重點&#xff09;。 掌握在MySQL中使用MySQL Workbench或者SQL語句查看和刪除索引的方法&#xff08;以SQL命令為重點&#xff09;。 …

詳細解答T-SNE程序中from sklearn.manifold import TSNE的數據設置,包括輸入數據,繪制顏色的參數設置,代碼復制可用!!

文章目錄 前言——TSNE是t-Distributed Stochastic Neighbor Embedding的縮寫1、可運行的T-SNE程序2. 實驗結果3、針對上述程序我們詳細分析T-SNE的使用方法3.1 加載數據3.2 TSNE降維3.3 繪制點3.4 關于顏色設置&#xff0c;顏色使用的標簽數據的說明cy 總結 前言——TSNE是t-D…

Centos Download

前言 CentOS Linux 是一個社區支持的發行版&#xff0c;源自 CentOS git for Red Hat Enterprise Linux &#xff08;RHEL&#xff09; 上免費提供給公眾的源代碼。因此&#xff0c;CentOS Linux 的目標是在功能上與 RHEL 兼容。CentOS 計劃主要更改組件以刪除上游供應商的品牌…

Redis的四種模式:單機、主從、哨兵、集群

一、簡單理解 單機模式&#xff1a;安裝你的redis&#xff0c;啟動服務即為單機模式。 主從模式&#xff1a;一個主節點搭配一個或多個從節點&#xff0c;無自動故障轉移功能&#xff0c;主節點發生故障后&#xff0c;需要人工將其中一個從節點設置為主節點。 哨兵模式&…

【微服務專題】SpringBoot自動配置源碼解析

目錄 前言閱讀對象閱讀導航前置知識筆記正文0、什么是自動配置0.1 基本概念0.2 SpringBoot中的【約定大于配置】0.3 從SpringMVC看【約定大于配置】0.4 從Redis看【約定大于配置】 一、EnableAutoConfiguration源碼解析二、SpringBoot常用條件注解源碼解析2.1 自定義條件注解2.…

java 反射和注解1-反射詳解

反射和注解本就是一家人&#xff0c;注解離不開反射&#xff0c;這里先將反射的寫法&#xff0c;本文涉到的注解暫時可以不不用理解 1&#xff0c;創建一個類 public class ReflexUser {public String name;private String namePrivate;protected String nameProtected;Strin…

Arduino庫之 LedControl 庫說明文檔

LedControl 庫最初是為基于 8 位 AVR 處理器的 Arduino 板編寫的。用于通過MAX7219芯片控制LED矩陣和7段數碼管。但由于該代碼不使用處理器的任何復雜的內部功能&#xff0c;因此具有高度可移植性&#xff0c;并且應該在任何支持 和 功能的 Arduino&#xff08;類似&#xff09…

模擬火車訂票系統---python序列

if __name__ __main__:#創建車輛信息列表list["車次","出發站-到達站","出發時間","到達時間","歷時","余票"]trainNumber[T40,T298,Z158,Z62]address[長春-北京,長春-北京,長春-北京,長春-北京]getTime[00:12,0…

簡單介紹一下js中的構造函數、原型對象prototype、對象原型__proto__、原型鏈

構造函數 function Star (uname, age){this.uname unamethis.age agethis.sing function(){ log(唱歌~) }}let xzq new Star(薛之謙, 30)let ldh new Star(劉德華, 20)log(ldh) // { uname: 劉德華, age: 20, sing: f }ldh.sing() // 唱歌~log(ldh.sing xzq.sing) // fal…

DevEco Studio安裝

HUAWEI DevEco Studio For OpenHarmony&#xff08;以下簡稱DevEco Studio&#xff09;是基于IntelliJ IDEA Community開源版本打造&#xff0c;面向OpenHarmony全場景多設備的一站式集成開發環境&#xff08;IDE&#xff09;&#xff0c;為開發者提供工程模板創建、開發、編譯…

uniapp時間選擇器

Uniapp 是一套基于Vue.js 開發的跨平臺開發框架&#xff0c;它能夠以一套代碼編譯成多個平臺的應用&#xff0c;包括 iOS、Android、H5 等。要實現時間選擇器可以使用uni-app提供的組件picker&#xff0c;它可以用于選擇器、時間選擇器、日期選擇器等場景。 以下是一個簡單的時…