藍橋杯 18.分考場

分考場

原題目鏈接

題目描述

n 個人參加某項特殊考試。

為了公平,要求任何兩個認識的人不能分在同一個考場

你的任務是求出最少需要分幾個考場才能滿足這個條件。


輸入描述

  • 第一行:一個整數 n,表示參加考試的人數(1 ≤ n ≤ 100)。
  • 第二行:一個整數 m,表示接下來有 m 行數據。
  • 接下來 m 行:每行兩個整數 a, b,表示第 a 個人與第 b 個人認識(1 ≤ a, b ≤ n)。

輸出描述

輸出一個整數,表示最少需要的考場數。


輸入樣例

5
8
1 2
1 3
1 4
2 3
2 4
2 5
3 4
4 5

輸出樣例

4

c++代碼

#include<bits/stdc++.h>using namespace std;vector<unordered_set<int>> st;
vector<vector<int>> arr;int n, m, a, b, ans = INT_MAX, myclass = 0;void dfs(int index) {if (myclass >= ans) return;if (index == n + 1) {ans = min(ans, myclass);return;}for (int i = 1; i <= myclass; i++) {bool key = true;for (int x : arr[index]) {if (st[i].find(x) != st[i].end()) {key = false;break;}}if (key) {st[i].insert(index);dfs(index + 1);st[i].erase(index);}}myclass++;st[myclass].insert(index);dfs(index + 1);st[myclass].erase(index);myclass--;
}int main() {cin >> n >> m;arr = vector<vector<int>>(n + 1);st = vector<unordered_set<int>>(101);while(m--) {cin >> a >> b;arr[a].push_back(b), arr[b].push_back(a);}dfs(1);cout << ans;return 0;
}//by wqs

題目解析

這個題目就是個暴力題,會用題目的認識關系剪枝就行。

對于第index個人,假設當前有myclass(初始化為0)個教室,枚舉1 - myclass個教室,讓index加入,取最終需要教室最小的就行,當然如果這間教室有index認識的人,就枚舉下一個教室,也就是剪枝。

for (int i = 1; i <= myclass; i++) {bool key = true;for (int x : arr[index]) {if (st[i].find(x) != st[i].end()) {key = false;break;}}if (key) {st[i].insert(index);dfs(index + 1);st[i].erase(index);}
}

當然還有一種情況,對于第index個人,可以去一個全新的教室

myclass++;
st[myclass].insert(index);
dfs(index + 1);
st[myclass].erase(index);
myclass--;

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

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

相關文章

分布式光纖測溫技術讓森林火災預警快人一步

2025年春季&#xff0c;多地接連發生森林火災&#xff0c;累計過火面積超 3萬公頃。春季歷來是森林草原火災易發、多發期&#xff0c;加之清明節已到來&#xff0c;生產生活用火活躍&#xff0c;民俗祭祀用火集中&#xff0c;森林火災風險進一步加大。森林防火&#xff0c;人人…

前端筆記-Vue3(上)

學習參考視頻&#xff1a;尚硅谷Vue3入門到實戰&#xff0c;最新版vue3TypeScript前端開發教程_嗶哩嗶哩_bilibili vue3學習目標&#xff1a; VUE 31、Vue3架構與設計理念2、組合式API&#xff08;Composition API&#xff09;3、常用API&#xff1a;ref、reactive、watch、c…

如何增加 Elasticsearch 中的 primary shard 數量

作者&#xff1a;來自 Elastic Kofi Bartlett 探索增加 Elasticsearch 中 primary shard 數量的方法。 更多閱讀&#xff1a; Elasticsearch&#xff1a;Split index API - 把一個大的索引分拆成更多分片 Elasticsearch&#xff1a;通過 shrink API 減少 shard 數量來縮小 El…

基于SA模擬退火算法的車間調度優化matlab仿真,輸出甘特圖和優化收斂曲線

目錄 1.程序功能描述 2.測試軟件版本以及運行結果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SA模擬退火算法的車間調度優化matlab仿真,輸出甘特圖和優化收斂曲線。輸出指標包括最小平均流動時間&#xff0c;最大完工時間&#xff0c;最小間隙時間。 2…

Spring_MVC 快速入門指南

Spring_MVC 快速入門指南 一、Spring_MVC 簡介 1. 什么是 Spring_MVC&#xff1f; Spring_MVC 是 Spring 框架的一個模塊&#xff0c;用于構建 Web 應用程序。它基于 MVC&#xff08;Model-View-Controller&#xff09;設計模式&#xff0c;將應用程序分為模型&#xff08;M…

爬蟲獲取sku信息需要哪些庫

在使用 Python 爬蟲獲取淘寶商品的 SKU 詳細信息時&#xff0c;通常需要以下幾種庫來完成任務。這些庫各有其用途&#xff0c;可以幫助你更高效地實現爬蟲功能。 1. requests 用途&#xff1a;用于發送 HTTP 請求&#xff0c;獲取網頁內容。 安裝&#xff1a; bash pip insta…

賽靈思Xilinx FPGa XCKU15P?2FFVA1156I AMD Kintex UltraScale+

XCKU15P?2FFVA1156I 是 AMD Kintex UltraScale 系列中的高性能 FPGA&#xff0c;基于 16 nm FinFET UltraScale 架構 制造&#xff0c;兼顧卓越的性能與功耗比&#xff0c;該器件集成 1,143,450 個邏輯單元和 82,329,600 位片上 RAM&#xff0c;配備 1,968 個 DSP 切片&#…

從規則到大模型:知識圖譜信息抽取實體NER與關系RE任務近10年演進發展詳解

摘要: 本文回顧了關系抽取與實體抽取領域的經典與新興模型,清晰地梳理了它們的出現時間與核心創新,并給出在 2025 年不同資源與場景下的最佳實踐推薦。文章引用了 BiLSTM?CRF、BiLSTM?CNN?CRF、SpanBERT、LUKE、KnowBERT、CasRel、REBEL、UIE,大模型抽取 等模型的原始論…

基于Django實現農業生產可視化系統

基于Django實現農業生產可視化系統 項目截圖 登錄 注冊 首頁 農業數據-某一指標表格展示 農業數據-某一指標柱狀圖展示 農業數據-某一指標餅狀圖展示 氣候數據-平均氣溫地圖展示 氣候數據-降水量合并圖展示 后臺管理 一、系統簡介 農業生產可視化系統是一款基于DjangoMVTMyS…

【無人機】無人機的電調校準,ESC Calibration,PX4使用手冊電調校準詳細步驟

目錄 1、前提 條件? 2、詳細步驟? 3、故障 排除? 無人機的電調校準&#xff0c;ESC Calibration&#xff0c;PX4使用手冊電調校準詳細步驟 參考&#xff1a;ESC 校準 |PX4 指南 &#xff08;v1.15&#xff09; ?信息 這些說明僅與 PWM ESC 和 OneShot ESC 相關。DShot…

區塊鏈預言機(Oracle)詳解:如何打通鏈上與現實世界的關鍵橋梁?

文章目錄 一、什么是區塊鏈預言機&#xff1f;1.1 區塊鏈的封閉性問題1.2 預言機的定義與作用舉個例子&#xff1a; 1.3 為什么預言機是 Web3 的關鍵基礎設施&#xff1f; 二、預言機的基本分類與工作模式2.1 輸入型與輸出型預言機&#xff08;1&#xff09;輸入型預言機&#…

工具:下載vscode .vsix擴展文件及安裝的方法

1 背景 vscode的使用環境無法連接互聯網訪問Extensions for Visual Studio family of products | Visual Studio Marketplace&#xff0c;導致無法直接在vscode里面下載并安裝所需擴展 所以需要先在有網的環境下載插件文件&#xff0c;然后在沒網的環境安裝插件 2 下載方式 …

Oracle 23ai Vector Search 系列之6 向量相似性搜索(Similarity Search)

文章目錄 Oracle 23ai Vector Search 系列之6 向量相似性搜索&#xff08;Similarity Search&#xff09;向量相似性搜索&#xff08;Similarity Search&#xff09;概述向量距離度量歐式距離&#xff08;Euclidean Distances&#xff09;歐式平方距離&#xff08;Euclidean Sq…

NLP與社區檢測算法的結合:文本中的社區發現

NLP與社區檢測算法的結合&#xff1a;文本中的社區發現 在自然語言處理&#xff08;NLP&#xff09;領域&#xff0c;社區檢測算法被廣泛應用于從大規模文本數據中識別出具有相似主題或興趣的不同群體。這種結合不僅能夠幫助我們理解文本內容的結構&#xff0c;還能揭示隱藏在…

解鎖古籍中的氣候密碼,探索GPT/BERT在歷史災害研究中的前沿應用;氣候史 文本挖掘 防災減災;臺風案例、干旱案例、暴雨案例

歷史災害文獻分析方法論的研究&#xff0c;是連接過去與未來的關鍵橋梁。通過對古籍、方志、檔案等非結構化文本的系統性挖掘與量化分析&#xff0c;不僅能夠重建千年尺度的災害事件序列&#xff08;如臺風、洪旱等&#xff09;&#xff0c;彌補儀器觀測數據的時空局限性&#…

超級桌面 TV 版下載:安卓電視版官方正版與刷機固件深度剖析

在智能電視領域&#xff0c;一款出色的桌面應用能極大提升用戶的使用體驗。超級桌面 TV 版作為備受矚目的選擇&#xff0c;以其獨特的功能和優勢脫穎而出。今天&#xff0c;我們就來深入探討安卓電視版官方正版超級桌面 TV 版的下載方法&#xff0c;以及刷機固件的奧秘&#xf…

金融圖QCPFinancial

QCPFinancial 是 QCustomPlot 中用于繪制金融圖表&#xff08;如蠟燭圖/K線圖&#xff09;的核心類。以下是其關鍵特性的詳細說明&#xff1a; 一、主要屬性 屬性類型說明dataQSharedPointer<QCPFinancialDataContainer>存儲金融數據的數據容器chartStyleQCPFinancial:…

Linux學習筆記|入門指令

man 指令 用法&#xff1a;man [指令名稱] &#xff0c;用于查看指定指令的幫助手冊&#xff0c;獲取指令的詳細語法、選項及使用示例等信息 。示例&#xff1a;想了解 ls 指令的用法&#xff0c;執行 man ls &#xff0c;會進入 man 手冊頁面展示 ls 相關信息。按 q 鍵可退出。…

PD分離:優化大語言模型推理效率

PD分離&#xff1a;優化大語言模型推理效率 在大語言模型的推理過程中&#xff0c;Prefill 和 Decode 是兩個關鍵階段。隨著模型規模的不斷擴大&#xff0c;如何高效地處理這兩個階段的計算任務&#xff0c;成為了一個亟待解決的問題。 一、什么是 Prefill 和 Decode&#xf…

【MATLAB例程】AOA定位、AOA與TOA混合定位,二維環境下的對比,基站(錨點數量)自適應調整,附代碼下載鏈接

該代碼實現了一個 A O A AOA AOA&#xff08;到達角&#xff09;與 T O A TOA TOA&#xff08;到達時間&#xff09;混合定位的例程&#xff0c;適用于二維平面&#xff0c;并支持自適應基站數量。訂閱專欄后可直接獲取完整的源代碼&#xff0c;粘貼到MATLAB空腳本中即可運行 文…