[福建集訓2011][LOJ10111]相框

這題主要還是分類討論歐拉回路

首先對于導線一端沒有東西的新建一個節點 由于原圖不一定連通所以需要用到并查集判斷有多少個連通塊 將一條導線連接的兩個焊點連接

然后先對于只有一個連通塊考慮

1.如果一個焊點是孤立點 它對于導線無影響跳過

2.如果一個焊點度數大于2 它必須被燒熔

3.對于每兩對奇點 它們必須相連 這樣才滿足歐拉回路

對于一個連通塊處理后考慮多個連通塊,必須把他們組合在一起

1.同樣忽略孤立點

2.如果原圖是一個環

需要找到一個點將其燒熔,才能繼續組合

但其中若有焊點度數大于2,那么它本身已經被燒熔了所以可以略去此步

最后每個連通塊向外和另一連通塊連接一根導線就組裝好了

3.原圖有鏈 這種情況下只要將一對奇點向外連就好了 當然對于程序來說就是無需考慮有鏈的連通塊連接的答案,以為這之前單個處理已經統計過了

#include<bits/stdc++.h>
using namespace std;
const int maxn=101005;
int tot,ans,n,m,a,b,cnt;
int d[maxn],flag1[maxn],flag2[maxn],fa[maxn];
int read()
{int ch=0,x=0;while(ch=getchar(),ch<'0'||ch>'9');while(x=x*10+ch-48,ch=getchar(),ch>='0'&&ch<='9');return x;
}
int getfa(int x){return fa[x]==x?x:fa[x]=getfa(fa[x]);}
void conn(int x,int y)
{int fxx=getfa(x),fyy=getfa(y);if(fxx!=fyy)fa[fxx]=fyy;
}
int main()
{n=read();m=read();for(int i=1;i<=n;i++)fa[i]=i;for(int i=1;i<=m;i++){a=read();b=read();if(!a) a=++n,fa[a]=a;if(!b) b=++n,fa[b]=b;conn(a,b);d[a]++;d[b]++;}for(int i=1;i<=n;i++){if(!d[i])continue;if(d[i]&1){cnt++;flag1[getfa(i)]=1;}if(d[i]>2){ans++;flag2[getfa(i)]=1;}}for(int i=1;i<=n;i++)if(getfa(i)==i&&d[i])tot++;if(tot>1){for(int i=1;i<=n;i++)if(getfa(i)==i&&d[i]&&!flag1[i]){ans++;if(!flag2[i])ans++;}}ans+=cnt/2;printf("%d",ans);return 0;
}

轉載于:https://www.cnblogs.com/DavidJing/p/10386798.html

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

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

相關文章

TJpgDec—輕量級JPEG解碼器

TJpgDec—輕量級JPEG解碼器 本文由烏合之眾lym瞎編&#xff0c;歡迎轉載blog.cnblogs.net/oloroso 下文中解碼一詞皆由decompression/decompress翻譯而來。 TJpgDec是一個為小型嵌入式系統高度優化的創建JPEG圖像的解碼模塊。它工作時占用的內存非常低&#xff0c;以便它可以集…

幫助中心 開源_對開源的貢獻幫助我獲得了Microsoft的實習機會。 這就是它可以為您提供幫助的方式。

幫助中心 開源“Accomplished X by implementing Y which led to Z.” “通過實現導致Z的Y來完成X。” When I interviewed for software engineering internships this past fall, my open source contributions helped me stand out from the crowd.去年秋天&#xff0c;當我…

java 操作窗口_java selenium (十二) 操作彈出窗口

public static void testMultipleWindowsTitle(WebDriver driver) throws Exception{String url"E:\\StashFolder\\huoli_28hotmail.com\\Stash\\Tank-MoneyProject\\Selenium Webdriver\\AllUIElement.html";driver.get(url);// 獲取當前窗口的句柄String parentWin…

1970“變種”bug連WiFi熱點iOS設備會變磚?

據悉&#xff0c;該漏洞和此前“1970”的bug有關系&#xff0c;但不完全一樣。 威鋒網訊&#xff0c;你還記得將 iOS 設備系統時間調至 1970.1.1 會讓設備變磚的 bug 么&#xff1f;盡管蘋果在 iOS 9.3 中已經將這個 bug 修復&#xff0c;但據安全研究員指出&#xff0c;他們發…

Centos7 安裝python3.7.2

下載python3.7.2源碼 wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz 下載完后對壓縮包解壓縮 tar -xf Python-3.6.3.tgz 進入解壓縮完后的文件夾: cd Python-3.7.2 配置&#xff08;需要加上--with-ssl&#xff0c;不然pip不能安裝相關函數庫&#xff0c;pyt…

華為 9

package NiukeBrush; import java.util.Iterator; //排序與查重 import java.util.LinkedHashSet; import java.util.Scanner; import java.util.Set;//改進做法 public class Huawei9next {public static void main(String[] args) {// TODO Auto-generated method stub//鍵盤…

印刷點陣字體_印刷術如何確定可讀性:襯線與無襯線,以及如何組合字體。

印刷點陣字體by Harshita Arora通過Harshita Arora For digital design, it’s important to know and understand how to use and how to combine different fonts. There’s a font for every mood!對于數字設計&#xff0c;重要的是了解和理解如何使用以及如何組合不同的字…

java中setattribute_淺談Java web 中request的setAttribute()用法

在兩個JSP代碼片中有這樣兩端程序&#xff1a;JSP1代碼String [] testnew String[2];test[0]"1";test[1]"2";request.setAttribute("test",test) ;response.sendRedirect("jsp2.jsp");JSP2代碼String test[](String[])request.getAttr…

基礎拾遺------webservice詳解

基礎拾遺 基礎拾遺------特性詳解 基礎拾遺------webservice詳解 基礎拾遺------redis詳解 基礎拾遺------反射詳解 基礎拾遺------委托詳解 基礎拾遺------接口詳解 基礎拾遺------泛型詳解 基礎拾遺-----依賴注入 基礎拾遺-----數據注解與驗證 基礎拾遺-----mongoDB操作 基礎…

南京打造大數據創新孵化平臺

9月9日上午&#xff0c;南京微軟云暨移動應用孵化平臺在南京開發區新港高新園揭牌運營&#xff0c;項目創業大賽同步啟動。 據悉&#xff0c;南京微軟云暨移動應用孵化平臺將打造以“云物大智”產業為核心的創新創業孵化平臺。平臺代理總經理童雪松介紹&#xff0c;平臺匯集了強…

react控制組件中元素_React Interview問題:瀏覽器,組件或元素中呈現了什么?

react控制組件中元素by Samer Buna通過Samer Buna React Interview問題&#xff1a;瀏覽器&#xff0c;組件或元素中呈現了什么&#xff1f; (React Interview Question: What gets rendered in the browser, a component or an element?) **技巧問題** (** Trick Question *…

java gc時自動收dump_Full?GC分析:設置Java?VM參數實現在Full?GC前后自動生成Dump

本文講解了如何設置JavaVM參數實現在FullGC前后自動生成Dump。共有三個VM參數需要設置&#xff1a;HeapDumpBeforeFullGC 實現在Full GC前dump。HeapDumpBeforeFullGC 實現在Full GC后dump。HeapDumpPath 設置Dump保存的路徑設置這些參數的方法&#xff0c;這里總結了四種&…

jquery插件dataTables自增序號。

dataTables官網提供了一種方式&#xff0c;使用后沒有達到預期效果&#xff08;js報錯&#xff09;&#xff0c;沒有深究原因。如果需要&#xff0c;可以按照下面的方式來。 1 $(#dataList).dataTable({2 "language": {3 "sProcessing&…

Maven使用詳解

1、maven介紹&#xff1a; 2、pom.xml文件理解&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schema…

諾基亞報告稱:到2020年北美電子郵件流量占比將跌至7%

日前&#xff0c;諾基亞貝爾實驗室下屬貝爾實驗室咨詢部門&#xff08;Bell Labs Consulting&#xff09;發布研究報告稱&#xff0c;在北美&#xff0c;千禧一代青少年和青壯年消費群體正逐漸壯大&#xff0c;受其驅動的視頻通信流量占比將由47%增至86%。隨著視頻通話和視頻會…

開源貢獻 計算_我的第一個Hacktoberfest-第一次為開源做貢獻的經驗

開源貢獻 計算by Sibylle Sehl通過Sibylle Sehl 我的第一個Hacktoberfest-第一次為開源做貢獻的經驗 (My First Hacktoberfest — Experiences of Contributing to Open Source as a First Timer) Contributing to Open Source and projects can seem like a daunting process…

java web junit_如何使用junit測試javaweb工程

一:創建一個測試類,建議將測試類單獨放在一個包中(在 maven 項目里有測試類專門的存放位置),新建一個Junit Test Case類,下一步 測試類的命名建議是你將要測試的類名Test,然后點 Browse, 你可以選擇要進行測試的類(一般選擇 Service, 因為 Service 關心的是業務需求),用這種方式…

文件系統及程序的限制關系: ulimit

想像一個狀況&#xff1a;我的 Linux 主機里面同時登陸了十個人&#xff0c;這十個人不知怎么搞的&#xff0c; 同時打開了 100 個文件&#xff0c;每個文件的大小約 10MBytes &#xff0c;請問一下&#xff0c; 我的 Linux 主機的內存要有多大才夠&#xff1f; 1010010 10000…

java代碼_Java 代碼實現排序算法

閱讀本文約需要8分鐘 大家好&#xff0c;我是你們的導師&#xff0c;我每天都會在這里給大家分享一些干貨內容(當然了&#xff0c;周末也要允許老師休息一下哈)。上次老師跟大家分享了下SpringBootGradle MyBatisPlus3.x搭建企業級的后臺分離框架的相關知識&#xff0c;今天跟大…

移動游戲市場Testin云測占有率超過90%

《王者榮耀》、全民K歌、美團大眾、共享單車……越來越多的爆款應用占據著我們的手機桌面&#xff0c;也驅動著創業者不斷發掘新的移動應用和商業模式&#xff0c;卻鮮有人留意到&#xff0c;由移動應用催生出來的APP測試市場。 “現在用戶獲取成本是幾年前的幾十倍&#xff0c…