結題報告--hih0CoderP1041

来源:https://www.cnblogs.com/eason66-blog/archive/2020/03/17/P1041--hiho.html
-Advertisement-
Play Games

題目:點此 描述 小Hi和小Ho準備國慶期間去A國旅游。A國的城際交通比較有特色:它共有n座城市(編號1-n);城市之間恰好有n-1條公路相連,形成一個樹形公路網。小Hi計劃從A國首都(1號城市)出發,自駕遍歷所有城市,並且經過每一條公路恰好兩次——來回各一次——這樣公路兩旁的景色都不會錯過。 令小 ...


題目:點此

                                      描述

小Hi和小Ho準備國慶期間去A國旅游。A國的城際交通比較有特色:它共有n座城市(編號1-n);城市之間恰好有n-1條公路相連,形成一個樹形公路網。小Hi計劃從A國首都(1號城市)出發,自駕遍歷所有城市,並且經過每一條公路恰好兩次——來回各一次——這樣公路兩旁的景色都不會錯過。   令小Hi苦惱的是他的小伙伴小Ho希望能以某種特定的順序游歷其中m個城市。例如按3-2-5的順序游歷這3座城市。(具體來講是要求:第一次到達3號城市比第一次到達2號城市早,並且第一次到達2號城市比第一次到達5號城市早)。   小Hi想知道是否有一種自駕順序滿足小Ho的要求。

                                     思路

這裡使用dfs序列。以一下樹為例:

(圖片來源於百度,所以後面又‘#’,懶得刪了)

dfs序列:ABDCE。

為方便理解演算法,我們把結點寫兩遍,變成:ABDDBCEECA。

假如小Ho的要求序列是ADC,那麼是可行的,那在dfs序列里怎麼判斷呢?

答:小Ho要求的頂點序列每一個點前面的所有頂點都不在兩個此節點中間

根據這個答案,寫出的代碼WA0分,樣例也過不去,輸出全是YES,而應該是YES和NO。

分析一下錯誤答案。

樹:

(原諒我醜陋無比的圖)

dfs序:1244552366771

分析一下:3不在兩個二之間,3和2都不在兩個7之間,所以程式認為它是可以的,可是因為3和7之間夾著一個2,所以不可以。因此,得出結論:不僅要前面的演算法,還需要保證一個節點後要麼沒有子孫節點,有則必須是連續的

最後,結合粗體字,就是AC代碼了

對付多數據的mains發點此

                       犯的錯誤

1.數組沒初始化(每次都要重新初始化,因為每次都是一棵新的樹)

2.重命名了(那個dfsx數組,猜我為啥加個x?)

3.cnt不用每次訪問完就++,++一次就行了

4.思路中的第二點我開始沒考慮到

5.判斷第二個條件時,i和j的初值錯了

6.為了調試方便,可以用set(將所有子節點放入set再查找,複雜度O(N),好於兩重迴圈。)

                        收穫

1.再重覆那幾個字:初始化,初始化,初始化(重要的事情說三遍!!)

2.以後所有名稱儘量不要叫“dfs”,因為dfs有:函數、棧、數組(dfs序……),叫“dfs”很容易重命名,同理,bfs也不行。

3.做題時,所有的方面可能開始沒考慮到,可是之後一定到考慮到。

4.STL不要省著用!(若想判斷你是否省著用STL,看看這題你是否想到了用STL的解法)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有一個這樣的問題:現要用 setuptools 把一個項目打包成 whl 文件,然後 pip install 在 Windows/Linux 兩種操作系統上,但是該項目中有一些依賴庫只有 Windows 上才有(例如 pywinauto、pywingui、pywinrm),那麼問題是,如何實現打包文 ...
  • 基於S2SH開發線上學堂系統(課程學習網站 前臺+後臺) 開發環境: Windows操作系統開發工具:Eclipse+Jdk+Tomcat+MYSQL資料庫運行效果圖 源碼及原文鏈接:https://javadao.xyz/forum.php?mod=viewthread&tid=97 ...
  • Maven項目打包時,如果遇到需要添加本地jar包依賴的時候,可以選擇兩種方法: 1. 安裝到本地倉庫 第一種方法比較常規,適用於需要添加的jar包也是由maven項目導出,含有pom文件的時候。只需要將jar包安裝到本地maven倉庫下,然後添加依賴即可。 (1)安裝到本地倉庫,執行以下命令(其中 ...
  • Spring Boot為廣大開發人員提供了便利。 本文將介紹如何編寫Starter,以便開發人員復用自己或項目組的代碼。 代碼下載地址:https://gitee.com/jxd134/Spring Boot Greeter Starter.git 1 新建項目 項目基於Maven構建,包含以下三個 ...
  • 題目: 代碼及思路: #include <stdio.h> #include <string.h> int main() { //以字元串的形式接受用戶輸入的數字 char str[1000]; //定義一個統計數組 int nums1[10] = {0}; scanf("%s", str); // ...
  • 什麼是微服務?什麼是SpringCloud? 微服務是一種架構的模式,它提倡將一個應用程式劃分成很多個微小的服務,服務與服務之間相互協調、相互配合。每個服務運行都是一個獨立的進程,服務與服務之間採用輕量級的通訊機制相互溝通。簡單的來說就是將一個龐大的複雜的單體應用進行劃分成n多個微小的服務(一個服務 ...
  • 一、Servlet簡介 1.1、Servlet是sun公司提供的一門用於開發動態web資源的技術,Servlet屬於動態資源。 1.2、Servlet(Server Applet)是Java Servlet的簡稱,Servlet就是一個運行在伺服器端的Java類。 1.3、Servlet就是Java ...
  • 經過前期大量的學習與準備,我們重要要開始寫第一個真正意義上的爬蟲了。本次我們要爬取的網站是:百度貼吧,一個非常適合新人練手的地方,那麼讓我們開始吧。 本次要爬的貼吧是<< 西部世界 >>,西部世界是我一直很喜歡的一部美劇,平時有空也會去看看吧友們都在聊些什麼。所以這次選取這個吧來作為實驗材料。註意: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...