【官方題解】StarryCoding 入門教育賽 2 | acm | 藍橋杯 | 新手入門

比賽傳送門:

本場比賽開始時題面存在一些問題,私密馬賽!

A.池化【入門教育賽】

根據題目所給公式計算即可。

#include "bits/stdc++.h"signed main() {int t; std::cin >> t;while (t --) {int l, k, s, p; std::cin >> l >> k >> s >> p;int ans = floor((l + 2 * p - k) / s) + 1;std::cout << ans << "\n";}
}

B. 牢e買黃金【入門教育賽】

枚舉賣點 i i i,那么僅需找到數組 a a a的區間 [ 1 , i ? 1 ] [1, i - 1] [1,i?1]的最小值,維護一個前綴最值即可。

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 9;
using ll = long long;
ll a[N];int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);ll n, x;cin >> n >> x;for(int i = 1;i <= n;++ i)cin >> a[i];ll mi = a[1], ans = 0;for(int i = 1;i <= n; ++ i){ans = max(ans, a[i] - mi);mi = min(mi, a[i]);}cout << ans * x << '\n';return 0;
}

C.前綴序列【入門教育賽】

思維題,我們從右往左考慮,對于 i i i,若 a i a_i ai?為負數,就直接將其取相反數就好了,至多 n n n次一定可以使得所有元素為非負整數,所以答案就是所有元素的絕對值之和。

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 9;
using ll = long long;
ll a[N];int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);ll n;cin >> n;for(int i = 1;i <= n;++ i)cin >> a[i];ll ans = 0;for(int i = 1;i <= n; ++ i)ans += (a[i] < 0 ? -a[i] : a[i]);cout << ans << '\n';return 0;
}

D.相鄰最大公約數【入門教育賽】

動態規劃,定義狀態 d p [ i ] [ j ] dp[i][j] dp[i][j]表示 a i a_i ai?是否增加 x x x(若 j = 0 j=0 j=0則沒加 x x x,反之則加了)的情況下區間 [ 1 , i ] [1, i] [1,i]相鄰 g c d gcd gcd之和。

d p [ i ] [ 0 ] dp[i][0] dp[i][0]可以從 d p [ i ? 1 ] [ 0 ] dp[i - 1][0] dp[i?1][0] d p [ i ? 1 ] [ 1 ] dp[i - 1][1] dp[i?1][1]轉移過來, d p [ i ] [ 1 ] dp[i][1] dp[i][1]亦同。

狀態轉移方程請見代碼,注意從 2 2 2開始轉移。

#include <bits/stdc++.h>
using namespace std;using ll = long long;
const int N = 1e5 + 9;
ll dp[N][2], a[N];ll gcd(ll a, ll b){return b == 0 ? a : gcd(b, a % b);
}int main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);ll n, x;cin >> n >> x;for(int i = 1;i <= n; ++ i)cin >> a[i];for(int i = 2;i <= n; ++ i){dp[i][0] = max(dp[i - 1][0] + gcd(a[i - 1], a[i]), dp[i - 1][1] + gcd(a[i - 1] + x, a[i]));dp[i][1] = max(dp[i - 1][0] + gcd(a[i - 1], a[i] + x), dp[i - 1][1] + gcd(a[i - 1] + x, a[i] + x));}cout << max(dp[n][0], dp[n][1]) << '\n';
}

E.基環樹【入門教育賽】

基環樹找環模板題,可用dfs或拓撲排序完成。

dfs解法:

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5 + 9;
ll a[N], n;
vector<int> g[N];
bitset<N> vis;
stack<int> stk;
ll ans;bool dfs(int x, int fa){vis[x] = true;stk.push(x);for(const auto &y : g[x]){if(y == fa)continue;if(vis[y]){while(stk.size()){int t = stk.top();stk.pop();ans += a[t];if(t == y)break;}return true;}if(dfs(y, x))return true;}stk.pop();return false;
}int main()
{cin >> n;for(int i = 1;i <= n; ++ i)cin >> a[i];for(int i = 1;i <= n; ++ i){int x, y;cin >> x >> y;if(x == y){cout << a[x] << '\n';return 0;}g[x].push_back(y), g[y].push_back(x);}if(n <= 2){ll ans = 0;for(int i = 1;i <= n; ++ i)ans += a[i];cout << ans << '\n';return 0;}dfs(1, 0);cout << ans << '\n';return 0;
}

拓撲排序做法:

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5 + 9;
ll a[N], ind[N], n;
vector<int> g[N];void topo(){queue<int> q;for(int i = 1;i <= n; ++ i){if(ind[i] == 1)q.push(i);}while(q.size()){int x = q.front();q.pop();for(const auto &y : g[x]){if(-- ind[y] == 1)q.push(y);}}
}int main()
{cin >> n;for(int i = 1;i <= n; ++ i)cin >> a[i];set<pair<int, int> > st;for(int i = 1;i <= n; ++ i){int x, y;cin >> x >> y;if(x == y){cout << a[x] << '\n';return 0;}g[x].push_back(y), g[y].push_back(x);ind[x] ++, ind[y] ++;}if(n <= 2){ll ans = 0;for(int i = 1;i <= n; ++ i)ans += a[i];cout << ans << '\n';return 0;}topo();ll ans = 0;for(int i = 1;i <= n; ++ i)if(ind[i] == 2)ans += a[i];cout << ans << '\n';return 0;
}

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

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

相關文章

課題推薦——低成本地磁導航入門,附公式推導和MATLAB例程運行演示

地磁導航利用地球磁場的自然特性&#xff0c;通過感知磁場變化&#xff0c;幫助機器人或無人設備實現定位和導航。相比于 GPS、激光雷達等導航方法&#xff0c;地磁導航具有以下優勢&#xff1a; 低成本&#xff1a;使用地磁傳感器&#xff08;如電子羅盤&#xff09;&#xff…

【人工智能】自然語言編程革命:騰訊云CodeBuddy實戰5步搭建客戶管理系統,效率飆升90%

CodeBuddy 導讀一、產品介紹1.1 **什么是騰訊云代碼助手&#xff1f;**1.2 插件安裝1.2.1 IDE版本要求1.2.2 注意事項1.2.4 插件安裝1.2.4.1 環境安裝1.2.4.2 安裝騰訊云AI代碼助手** 1.2.5 功能介紹1.2.5.1 Craft&#xff08;智能代碼生成&#xff09;1.2.5.2 Chat&#xff08…

游戲引擎學習第270天:生成可行走的點

回顧并為今天的內容定下基調 今天的計劃雖然還不完全確定&#xff0c;可能會做一些內存分析&#xff0c;也有可能暫時不做&#xff0c;因為目前并沒有特別迫切的需求。最終我們會根據當下的狀態隨性決定&#xff0c;重點是持續推動項目的進展&#xff0c;無論是 memory 方面還…

Java反射詳細介紹

的反射&#xff08;Reflection&#xff09;是一種強大的機制&#xff0c;允許程序在運行時動態獲取類的信息、操作類的成員&#xff08;屬性、方法、構造器&#xff09;&#xff0c;甚至修改類的行為。它是框架開發&#xff08;如 Spring、MyBatis&#xff09;、單元測試工具&a…

c語言第一個小游戲:貪吃蛇小游戲05

貪吃蛇脫韁自動向右走&#xff1a;脫韁的野蛇 #include <curses.h> #include <stdlib.h> struct snake{ int hang; int lie; struct snake *next; }; struct snake *head; struct snake *tail; void initNcurse() { initscr(); keypad(stdscr,1); } int …

react-diff-viewer 如何實現語法高亮

前言 react-diff-viewer 是一個很好的 diff 展示庫&#xff0c;但是也有一些坑點和不完善的地方&#xff0c;本文旨在描述如何在這個庫中實現自定義語法高亮。 Syntax highlighting is a bit tricky when combined with diff. Here, React Diff Viewer provides a simple rend…

coco數據集mAP評估

0 coco數據集劃分說明 1 用yolo自帶的評估 from ultralytics import YOLOmodel YOLO("../spatial-perception/checkpoints/yolo11n.pt")metrics model.val(data"./coco.yaml", save_jsonTrue) ## save_json為True,可以把預測結果存成json文件&#xff…

sensitive-word-admin v2.0.0 全新 ui 版本發布!vue+前后端分離

前言 sensitive-word-admin 最初的定位是讓大家知道如何使用 sensitive-word&#xff0c;所以開始想做個簡單的例子。 不過秉持著把一個工具做好的原則&#xff0c;也收到很多小伙伴的建議。 v2.0.0 在 ruoyi-vue&#xff08;也非常感謝若依作者多年來的無私奉獻&#xff09…

好消息!PyCharm 社區版現已支持直接選擇 WSL 終端為默認終端

在過去&#xff0c;PyCharm 社區版雖然提供了鏈接 Windows 子系統 Linux&#xff08;WSL&#xff09;終端的能力&#xff0c;但用戶無法在設置中直接指定 WSL 為默認終端&#xff0c;這一功能僅限于專業版使用者。 而現在&#xff0c;在 PyCharm 2025.1.1 版本中&#xff0c;Je…

【Redis】string 字符串

文章目錄 string 字符串常用命令設置和獲取setgetmget & mset 計數操作incr & incrbydecr & decrbyincrbyfloat 字符串操作appendstrlengetrangesetrange 應用場景 string 字符串 關于 Redis 的字符串&#xff0c;有幾點需要注意 Redis 所有的 key 的類型都是字符…

本地部署firecrawl的兩種方式,自托管和源碼部署

網上資料很多 AI爬蟲黑科技 firecrawl本地部署-CSDN博客 源碼部署 前提條件本地安裝py&#xff0c;node.js環境,嫌棄麻煩直接使用第二種 使用git或下載壓縮包 git clone https://github.com/mendableai/firecrawl.git 設置環境參數 cd /firecrawl/apps/api 復制環境參數 …

(三)毛子整潔架構(Infrastructure層/DapperHelper/樂觀鎖)

文章目錄 項目地址一、Infrastructure Layer1.1 創建Application層需要的服務1. Clock服務2. Email 服務3. 注冊服務 1.2 數據庫服務1. 表配置Configurations2. Respository實現3. 數據庫鏈接Factory實現4. Dapper的DataOnly服務實現5. 所有數據庫服務注冊 1.3 基于RowVersion的…

uni-app微信小程序登錄流程詳解

文章目錄 uni-app微信小程序登錄流程實戰詳解微信小程序登錄流程概述1. 獲取登錄憑證&#xff08;code&#xff09;2. 發送登錄請求3. 保存登錄態4. 登錄狀態管理5. 應用登錄狀態請求攔截器中添加 token自動登錄頁面路由守衛 使用 Vuex 集中管理登錄狀態登錄組件示例登錄流程最…

GUC并發編程和SpringCloud,二者之間的關系

一.提問 我認為&#xff0c;Java開發中&#xff0c;如果項目的每一個小模塊需要不同人員并行開發時&#xff0c;就需要使用SpringCloud&#xff1b;如果要解決系統用戶激增&#xff0c;就是用GUC并發編程。 這個說法對么&#xff1f; 二.解答 你的理解部分正確&#xff0c;但不…

在 Vue 3 中使用 canvas-confetti 插件

&#x1f389; 在 Vue 3 中使用 canvas-confetti 插件 canvas-confetti 是一個輕量、無依賴的 JavaScript 動畫庫&#xff0c;用于在網頁上展示彩帶、慶祝動畫。非常適合用于抽獎、支付成功、活動慶祝等場景。 本教程將指導你如何在 Vue 3 項目中集成并使用該插件。 &#x1…

深入解析Spring Boot項目目錄結構:從新手到規范實踐

一、標準項目結構全景圖 典型的Spring Boot項目&#xff08;Maven構建&#xff09;目錄結構如下&#xff1a; my-spring-project/ ├── src/ │ ├── main/ │ │ ├── java/ # 核心代碼 │ │ │ └── com/ │ │ │ └── exa…

【C語言】宏經典練習題,交換奇偶位

交換奇偶位 寫一個宏&#xff0c;可以將一個整數的二進制位的奇數位和偶數位交換。 #define Swap(x) x(((x&0x55555555)<<1)((x&0xaaaaaaaa)>>1)) int main() {int a 10;Swap(a);printf("%d\n", a);return 0; } 寫宏的思路&#xff1a; 假設…

VSCode-插件:codegeex:ai coding assistant / 清華智普 AI 插件

一、官網 https://codegeex.cn/ 二、vscode 安裝插件 點擊安裝即可&#xff0c;無需復雜操作&#xff0c;國內軟件&#xff0c;無需科學上網&#xff0c;非常友好 三、智能注釋 輸入 // 或者 空格---后邊自動出現注釋信息&#xff0c;&#xff0c;按下 Tab 鍵&#xff0c;進…

FFmpeg 與 C++ 構建音視頻處理全鏈路實戰(三)—— FFmpeg 內存模型

經過前面文章的 FFmpeg 編程實踐&#xff0c;相信你已經對AVPacket和AVFrame這兩個核心結構體不再陌生。當我們編寫代碼時&#xff0c;頻繁調用unref系列 API 釋放內存的操作&#xff0c;或許讓你心生疑惑&#xff1a;這些函數究竟是如何實現內存釋放的&#xff1f;又該在何時準…

c 中的哈希表

哈希是一種可以接受各種類型、大小的輸入&#xff0c;輸出一個固定長度整數的過程。你可以將哈希理解成一種特殊的映射&#xff0c;哈希映射&#xff0c;將一個理論無限的集合A映射到有限整數集合B上。 哈希函數&#xff1a;哈希函數是哈希過程的核心&#xff0c;它決定了哈希映…