不像人做的題————十四屆藍橋杯省賽真題解析(上)A,B,C,D題解析

題目A:日期統計

在這里插入圖片描述
思路分析:
本題的題目比較繁瑣,我們采用暴力加DFS剪枝的方式去做,我們在DFS中按照8位日期的每一個位的要求進行初步剪枝找出所有的八位子串,但是還是會存在19月的情況,為此還需要在CHECK函數中進一步剪枝,使得月份天數都符合條件
作者題解:

#include<iostream>
using namespace std;
int a[105], ans;
bool vis[20240000];
bool check(int date)//進一步剪枝,判斷日期是否合法
{if (vis[date])return false;vis[date] = 1;//標記是否訪問過int mm = date / 100 % 100;//取出月份判斷是否合法int dd = date % 100;//取出天數判斷是否合法if (mm < 1 || mm > 12)return false;//月份小于1大于12都不合法if (mm == 1 || mm == 3 || mm == 5 || mm == 7 || mm == 8 || mm == 10 || mm == 12){if (1 <= dd && dd <= 31)return true;//大月如果是31天表示合法}else if (mm == 2){if (1 <= dd && dd <= 28)return true;//如果是2月不超過28天表示合法}else if (1 <= dd && dd <= 30)return true;//不是2月也不是大月不超過30天表示合法else return false;
}void dfs(int x, int pos, int date)
{if (x == 100)return;if (pos == 8){if (check(date))++ans;return;}if (pos == 0 && a[x] == 2 ||pos == 1 && a[x] == 0 ||pos == 2 && a[x] == 2 ||pos == 3 && a[x] == 3 ||//剪枝,前四位必須是2023pos == 4 && (0 <= a[x] && a[x] <= 1) || //剪枝,月份第一位不可能超過1pos == 5 && (0 <= a[x] && a[x] <= 9) ||pos == 6 && (0 <= a[x] && a[x] <= 3) ||//日期的第一位不可能超過3pos == 7 && (0 <= a[x] && a[x] <= 9))dfs(x + 1, pos + 1, date * 10 + a[x]);dfs(x + 1, pos, date);//合法才繼續往后搜索
}
int main()
{ios::sync_with_stdio,cin.tie(0), cout.tie(0);for (int i = 0; i < 100; i++)cin >> a[i];dfs(0, 0, 0);cout << ans;return 0;
}

運行結果:
在這里插入圖片描述
有235個這樣的合法子序列

題目B:01串的熵

在這里插入圖片描述
思路分析:
這道題我們不要被它的定義嚇唬住,仔細分析我們設串中的1的個數為u,串長為N,則v的個數為N-u,我們可以得到如下圖的遞推公式:

在這里插入圖片描述
然后就是由于題中給出的是浮點數,我們要考率精度的問題,誤差在給定的范圍內即可認為是同一個浮點數,給定的數有幾位小數,我們的精度就設為10的幾次方

作者題解:

#include<iostream>
using namespace std;
using db = long double;
const int N = 23333333;//定義字符串長度
const db ans = 11625907.5798, eps = 1e-4;//由于題目中的數據是四位小數,所以我們要定義一個誤差精度eps,在誤差內表示是同一個數
int main()
{for (int v = 0; v <= N / 2; ++v){int u = N - v;db res = -1.0 * u * u / N * log2(1.0 * u / N) - 1.0 * v * v / N * log2(1.0 * v / N);if (fabs(res - ans) < eps){cout << v;return 0;}}return 0;
}

運行結果:
在這里插入圖片描述

題目C:冶煉金屬

在這里插入圖片描述
在這里插入圖片描述
思路分析:
在這里插入圖片描述
如圖所示,我們通過數軸的方式分析,Ai/Vmin=Bi,那么我們如果要找Vmin那么Vmin逐漸增大,對應的Bi會逐漸變小,也就是說,Vmin左側的Bi應該都比Vmin的Bi大,同理,Vmax右側的Bi應該都比Vmax的Bi小,所以我們使用兩次二分法,二分答案,以Bi的值作為檢驗函數,就可以求出最大和最小的V
作者題解:

#include<iostream>
using namespace std;
const int MAX_N = 1e4 + 1;
int N, A[MAX_N], B[MAX_N];
int V_min,V_max;
bool check_min(int V)
{for (int i = 1; i <= N; ++i)if (A[i] / V > B[i])return false;//查找最小值時都應該比bi小return true;
}bool check_max(int V)
{for (int i = 1; i <= N; ++i)if (A[i] / V < B[i])return false;//查找最大值時都應該比bi小return true;
}
int main()
{ios::sync_with_stdio, cin.tie(0), cout.tie(0);cin >> N;for (int i = 1; i <= N; i++)cin >> A[i] >> B[i];int L = 1, R = 1e9;while (L <= R){int mid = L + R >> 1;if (check_min(mid)){V_min = mid;R = mid - 1;//查找最小值縮右邊界}else L = mid + 1;}L = 1, R = 1e9;while (L <= R){int mid = L + R >> 1;if (check_max(mid)){V_max = mid;L = mid + 1;//查找最大值縮左邊界}else R = mid - 1;}cout << V_min << " " << V_max << endl;return 0;
}

運行結果:
在這里插入圖片描述
在這里插入圖片描述

題目D:飛機降落

在這里插入圖片描述
在這里插入圖片描述
思路分析:
這道題如果我們直接采用全排列可能會超時,所以我們還是采用DFS剪枝的策略,核心思想在于該架飛機的到達時間加上盤旋時間大于此前所有飛機的降落時間時才可以安全降落,我們采用一個used數組來維護飛機是否可以安全降落,最后遞歸的出口如果X==N即所有飛機完成降落我們就輸出YES
作者題解:

#include<iostream>
using namespace std;
const int MAX_N = 11;
int N, T[MAX_N], D[MAX_N], L[MAX_N];
bool used[MAX_N], have_answer;//use標志飛機是否安全降落
void dfs(int x, int tim) //tim表示此前所有飛機降落所需的單位時間
{if (have_answer)return;if (x == N){have_answer = 1;return;//存在解則退出搜索}for (int i = 1; i <= N; i++){if (!used[i] && tim <= T[i] + D[i]){used[i] = 1;dfs(x + 1, max(T[i], tim) + L[i]);//如果此前所有的飛機的降落時間小于下一架飛機的最早降落時間可以等一等if (have_answer)return;else used[i] = 0;//回溯}}
}void solve()
{have_answer = 0;cin >> N;for (int i = 1; i <= N; ++i){cin >> T[i] >> D[i] >> L[i];used[i] = 0;}dfs(0, 0);if (have_answer)cout << "YES\n";else cout << "NO\n";
}
int main()
{ios::sync_with_stdio, cin.tie(0), cout.tie(0);int t;cin >> t;while (t--)solve();return 0;
}

運行結果:

在這里插入圖片描述
在這里插入圖片描述
下期預告:E,F,G題解析

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

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

相關文章

【redis】set 類型:基本命令

文章目錄 基本概念SADD 和 SMEMBERSSCARDSPOPSRANDMEMBERSMOVESREM集合間操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 命令小結內部編碼 基本概念 談到一個屬于&#xff0c;這個術語可能有多種含義&#xff0c;set 集合設置&#xff08;和 get 相對應&#xff09…

C 語言進【進階篇】之動態內存管理:從底層機制到實戰優化

目錄 &#x1f680;前言&#x1f31f;動態內存分配的必要性&#x1f914;動態內存分配函數深度剖析&#x1f4af;malloc函數&#xff1a;內存申請的主力軍&#x1f4af;free函數&#xff1a;釋放內存的“清道夫”&#x1f4af;calloc函數&#xff1a;初始化內存的利器&#x1f…

2023華東師范大學計算機復試上機真題

2023華東師范大學計算機復試上機真題 2022華東師范大學計算機復試上機真題 2021華東師范大學計算機復試上機真題 2023華東師范大學計算機復試機試真題 2022華東師范大學計算機復試機試真題 2021華東師范大學計算機復試機試真題 在線評測&#xff1a;傳送門&#xff1a;pgcode.…

Mac下安裝Zed以及Zed對MCP(模型上下文協議)的支持

Zed是當前新流行的一種編輯器&#xff0c;支持MCP&#xff08;模型上下文協議&#xff09; Mac下安裝Zed比較簡單&#xff0c;直接有安裝包&#xff0c;在這里&#xff1a; brew install --cask zedMac Monterey下是可以安裝上的&#xff0c;親測有效。 配置 使用CtrlShiftP…

Spring Boot 約定大于配置:實現自定義配置

文章目錄 Spring Boot 約定大于配置&#xff1a;實現自定義配置引言1. Spring Boot 的約定大于配置2. 自定義配置的需求3. 實現自定義配置的步驟4. 示例&#xff1a;自定義 Spring MVC 配置4.1 創建自定義配置類4.2 創建自定義攔截器4.3 測試自定義配置 5. 其他自定義配置場景5…

交易系統優化方案

證券交易系統優化方案 一、選股策略體系 (一)擇時策略矩陣 尾盤集中篩選法(14:30后)聚焦量價異動個股,捕捉次日溢價機會早盤轉債套利法(9:25-10:00)通過可轉債與正股聯動性捕捉日內機會龍頭戰法(全時段)行業板塊強度排序,鎖定前三大市值龍頭容量資金戰法(中盤股適用…

在線Doc/Docx轉換為PDF格式 超快速轉換的一款辦公軟件 文檔快速轉換 在線轉換免費轉換辦公軟件

小白工具https://www.xiaobaitool.net/files/word-pdf/提供了一項非常實用的在線服務——將Doc或Docx格式的文檔快速轉換為PDF格式。這項服務不僅操作簡單&#xff0c;而且轉換效率高&#xff0c;非常適合需要頻繁處理文檔轉換的用戶。 服務特點&#xff1a; 批量轉換&#x…

java學習總結(四)MyBatis多表

一、多表結構 學生表、班級表、課程表、班級課程表 二、一對一 一個學生只屬于一個班級。 查詢&#xff1a;id name age gender banjiName SELECT s.id,s.name,s.age,s.gender,b.id AS banjiId,b.name AS banjiName FROM student AS s INNER JOIN banji AS b ON s.banji_id…

大語言模型學習及復習筆記(1)語言模型的發展歷程

1.大模型進入人們視野 ChatGPT 于2022年11月底上線 模型名稱 發布時間 核心突破 GPT-3 2020年6月 首款千億參數模型&#xff0c;少樣本學習 GPT-3.5-Turbo 2022年11月 對話能力優化&#xff0c;用戶級應用落地 GPT-4 2023年3月 多模態、強邏輯推理 GPT-4o / GPT-4…

【NLP】 3. Distributional Similarity in NLP(分布式相似性)

Distributional Similarity in NLP&#xff08;分布式相似性&#xff09; 分布式相似性&#xff08;Distributional Similarity&#xff09; 是自然語言處理&#xff08;NLP&#xff09;中的核心概念&#xff0c;基于“相似的單詞出現在相似的上下文中”這一假設。它用于衡量單…

【C#學習】協程等待

來源GPT&#xff0c;僅記錄學習 yield return WaitForEndOfFrame() 適用于 渲染結束后再執行代碼&#xff0c;但 WebGL 可能不適合這個操作&#xff0c;會拖慢幀率。(渲染得太慢&#xff09; yield return null; 讓代碼在下一幀的 Update() 里繼續運行&#xff0c;更加流暢。 …

【項目】負載均衡式在線OJ

負載均衡式在線OJ 目錄 負載均衡式在線OJ 1.項目介紹&#xff1a; 2.comm 2.1 log.hpp 日志等級 開放式日志 時間戳工具 2.2 util.hpp TimeUtil類 PathUtil類 FileUtil類 StringUtil類 3.Compile_server 3.1compile_run.hpp RemoveTempFile CodeToDesc Start 3.…

實現“XXX一張圖“進行環境設施設備可視化管理

實現“電網一張圖”、“鐵路一張圖”、“水庫一張圖”、“森林一張圖”等概念,本質上是將某一領域的空間數據、設施設備、運行狀態等信息整合到一個統一的數字化平臺上,實現全域可視化、智能化管理和協同運營。這種“一張圖”模式依賴于地理信息系統(GIS)、物聯網(IoT)、…

《基於Python的網絡爬蟲抓包技術研究與應用》

## 摘要 本文探討了基于Python的網絡爬蟲抓包技術及其應用。隨著互聯網數據的快速增長&#xff0c;網絡爬蟲技術在數據采集和分析中扮演著越來越重要的角色。本研究首先介紹了網絡爬蟲的基本概念和Python在爬蟲開發中的優勢&#xff0c;然后深入分析了抓包技術的原理和常用工具…

【藍橋杯速成】| 1.暴力解題

1高頻考點與暴力解題_嗶哩嗶哩_bilibili 感謝up主分享&#xff0c;以下內容是學習筆記&#xff0c;以c為主&#xff0c;部分python 題目一&#xff1a;維納的年齡 題目內容 美國數學家維納(N.Wiener)智力早熟&#xff0c; 11歲就上了大學。他曾在1935~1936年應邀來中國清華大…

[C++Qt] 槽函數收不到信號問題(信號的注冊)

&#x1f4e2;博客主頁&#xff1a;https://loewen.blog.csdn.net&#x1f4e2;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff01;&#x1f4e2;本文由 丶布布原創&#xff0c;首發于 CSDN&#xff0c;轉載注明出處&#x1f649;&#x1f4e2;現…

從零開始用AI開發游戲(一)

1. 核心玩法設計 核心目標&#xff1a;玩家需在隨機生成的3D迷宮中尋找出口&#xff0c;躲避陷阱、收集道具、解開謎題。核心機制&#xff1a; 隨機生成迷宮&#xff1a;每次游戲生成不同結構的迷宮&#xff08;遞歸分割算法或深度優先搜索&#xff09;。第一人稱視角&#xf…

基于ssm的寵物醫院信息管理系統(全套)

一、系統架構 前端&#xff1a;html | layui | vue | element-ui 后端&#xff1a;spring | springmvc | mybatis 環境&#xff1a;jdk1.8 | mysql | maven | tomcat | idea | nodejs 二、代碼及數據庫 三、功能介紹 01. web端-首頁1 02. web端-首頁…

【CXX】6.7 SharedPtr<T> — std::shared_ptr<T>

std::shared_ptr 的 Rust 綁定稱為 SharedPtr。 限制&#xff1a; SharedPtr 不支持 T 為不透明的 Rust 類型。對于在語言邊界上傳遞不透明 Rust 類型的所有權&#xff0c;應改用 Box&#xff08;C 中的 rust::Box&#xff09;。 示例 // src/main.rsuse std::ops::Deref; …

利用python生成excel中模板范圍對應的shape文件

利用python生成excel中模板范圍對應的shape文件 # -*- coding: utf-8 -*- import os.pathimport pandas as pd from shapely.geometry import Polygon from shapely.wkt import dumps import argparse# 創建解析器 parser argparse.ArgumentParser(description"這是一個…