Educational Codeforces Round 180 (Rated for Div. 2) A-D

A.Race

**在這里插入圖片描述**

題目大意

給你兩個x,y,終點會在二點之間隨機出現,alice在點a,假設alice和bob有相同的速度(距離更短者用時更少),問對于bob是否存在一點,無論終點是x還是y,他都能比alice更快到達

思路

如果alice在x,y點之間,bob無法比他更快否則只要在外側,bob選擇比她更接近終點的一點即可

// Author: zengyz
// 2025-06-23 14:59#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{int n, k;cin >> n >> k;for (int i = 1; i <= k; i++)cout << 1;for (int i = 1; i <= n - k; i++)cout << 0;cout << endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

B.Shrinking Array

在這里插入圖片描述
在這里插入圖片描述

題目大意

定義一個數組“美麗”如果存在一點i, ∣ b i ? b i + 1 ∣ < = 1 |b_i-b_{i+1}|<=1 bi??bi+1?<=1

你可以進行如下操作:
每次選擇i和i+1,在 m i n ( a i , a i + 1 ) 到 m a x ( a i , a i + 1 ) min(a_i,a_{i+1})到max(a_i,a_{i+1}) min(ai?,ai+1?)max(ai?,ai+1?)之間選擇一個值,將 a i 和 a i + 1 a_i和a_{i+1} ai?ai+1?從數組中移除(數組元素個數減一)
,并將x放到他們的位置上

思路

實際上只有三種情況:
1.一開始就滿足要求,存在“美麗”的情況,輸出0
2.不滿足要求,查看數組是否單調遞增或遞減,如果是這樣那么無論多少次都無法構成,輸出-1
3.數組并非單調遞增或遞減,那么一定存在一個數i,在它左側或者右側兩個數的最大最小值之間,輸出1

//Author: zengyz
//2025-06-23 22:41#include <bits/stdc++.h>using namespace std;
using i64 = long long;void solve()
{int n;cin>>n;vector<int>a(n);for(auto &x:a)cin>>x;for(int i=1;i<n;i++){if(abs(a[i-1]-a[i])<=1){cout<<0<<endl;return;}}bool flag=false;if(a[1]>a[0]){for(int i=1;i<n;i++){if(a[i]<a[i-1])flag=true;}}else {for(int i=1;i<n;i++){if(a[i]>a[i-1])flag=true;}}if(flag){cout<<1<<endl;return;}cout<<-1<<endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while(_T --) {solve();}return 0;
}

C.Coloring Game

在這里插入圖片描述
在這里插入圖片描述

題目大意

給你一個n個元素的數組,Alice先手可以涂任意3個元素,Bob后手涂任意一個(包括Alice涂過的)
問Alice有多少種涂法使得無論Bob怎么涂,Alice涂過的元素和加起來大于Bob涂過的

思路

Alice獲勝一共有兩種情況
假設Alice涂的元素為a<=b<=c,數組最后一個元素為y
Bob有兩種選擇,要么涂c要么涂y
要么a+b+c>=y
要么a+b>c
選定a,b,然后二分c可能的取值即可

// Author: zengyz
// 2025-06-23 22:53#include <bits/stdc++.h>using namespace std;
typedef long long ll;
void solve()
{int n;cin >> n;vector<int> a(n);for (auto &x : a)cin >> x;long long res = 0;long long ans = 0;for (int i = 0; i < n-1; i++){for (int j = i + 1; j < n - 1; j++){long long tmp = a[i] + a[j];long long l = j + 1, r = n - 1;l = max(l, (ll)upper_bound(a.begin(), a.end(), a[n-1] - tmp) - a.begin());r = min(r,(ll) lower_bound(a.begin(), a.end(), tmp) - a.begin()-1);res = max(0ll, r - l + 1);ans += res;}}cout << ans << endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

D. Reachability and Tree

在這里插入圖片描述
在這里插入圖片描述

題目大意

給你一顆n個節點n-1條邊的樹,設u,v是一對有序對如果從u到v存在一條路徑,將每條邊都分配方向,確定樹上是否存在n對有序對

思路

如果每條邊都是相反的方向,那么存在n-1條有序對,這是最少的情況,那么怎么再增加一對有序對呢?考慮樹上存在兩條邊為相同方向,那么兩條邊存在三對有序對(a->b->c,有ab,ac,bc)
所以我們要找這樣的一組兩條邊,在樹上尋找度為2的點,將它和它相鄰的兩個點的兩條邊設為相同方向,讓其他邊彼此都為不同方向即可

// Author: zengyz
// 2025-06-24 10:24#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{int n;cin >> n;vector<int> du(n + 1);vector<vector<int>> edge(n + 1);for (int i = 0; i < n - 1; i++){int x, y;cin >> x >> y;du[x]++;du[y]++;edge[x].push_back(y);edge[y].push_back(x);}int idx = 0;while (du[idx] != 2){idx++;if (idx == n+1){cout << "NO" << endl;return;}}vector<pair<int, int>> ans;auto dfs1 = [&](auto &&dfs1, int now, int fa, int status) -> void{if (idx == now){int u = edge[now][0], v = edge[now][1];ans.push_back({u, idx});ans.push_back({idx, v});dfs1(dfs1, u, idx, 1);dfs1(dfs1, v, idx, -1);return;}for (auto i : edge[now]){if (i == fa)continue;if (status == 1){ans.push_back({now, i});dfs1(dfs1, i, now, -1);}else{ans.push_back({i, now});dfs1(dfs1, i, now, 1);}}};dfs1(dfs1, idx, -1, 1);cout << "YES" << endl;for (int i = 0; i < ans.size(); i++){cout << ans[i].first << " " << ans[i].second << endl;}return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

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

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

相關文章

python requests post請求

在Python中&#xff0c;使用requests庫進行POST請求是一種常見的操作&#xff0c;用于向服務器發送數據。下面是如何使用requests庫進行POST請求的步驟&#xff1a; 安裝requests庫 如果你還沒有安裝requests庫&#xff0c;可以通過pip安裝&#xff1a; pip install requests…

Postman中設置定時自動運行接口測試

?創建測試集合? 將需每日運行的接口組織到Collection中&#xff0c;并配置好測試腳本和斷言。 ?配置定時運行? 打開目標Collection → 點擊 ?Run? 按鈕在Collection Runner頁面底部選擇 ?Schedule runs?關鍵配置&#xff1a; Frequency: Daily // 選擇每日執行 Time…

multiprocessing.pool和multiprocessing.Process

在CPU密集型任務中&#xff0c;Python的multiprocessing模塊是突破GIL限制的關鍵工具。multiprocessing.Pool&#xff08;進程池&#xff09;和multiprocessing.Process&#xff08;獨立進程&#xff09;是最常用的兩種并行化方案&#xff0c;但其設計思想和適用場景截然不同。…

容器技術技術入門與 Docker 環境部署

目錄 一&#xff1a;Docker概述 1、 Docker的優勢&#xff1a; &#xff08;1&#xff09;環境一致性 &#xff08;2&#xff09;隔離性 &#xff08;3&#xff09;資源高效 &#xff08;4&#xff09;便捷性和可擴展性 2、Docker容器與傳統虛擬機的區別 3、Docker的應用…

Oracle獲取執行計劃之DBMS_XPLAN 技術詳解1

在 Oracle 數據庫的管理與優化工作中&#xff0c;深入了解 SQL 語句的執行計劃是至關重要的一環。DBMS_XPLAN 包作為 Oracle 提供的強大工具&#xff0c;能夠幫助數據庫管理員&#xff08;DBAs&#xff09;和開發人員清晰地查看和分析 SQL 語句的執行計劃&#xff0c;從而實現對…

【Python】VScode配置Python教程

文章目錄 【Python】VScode配置Python教程下載Python安裝插件解決亂碼徹底運行vscode安裝python庫 【Python】VScode配置Python教程 前言&#xff1a; 當「Python 編程潛力」遇上「VSCode 開發神器」&#xff0c;會點燃怎樣的效率革命&#xff1f;試想這樣的場景&#xff1a;你…

PowerBI HtmlContent生成表格

假設有銷量表: 1.PowerBI 導入 Html Content對象&#xff0c;并拖入報表 2.新建度量值: 度量值 VAR colCount DISTINCTCOUNT(銷量[產品]) VAR ColumnHeaders "<tr><th styleborder:1px solid black; padding:5px; text-align:center; colspan"&col…

【人工智能與機器人研究】基于運動數據時空特征提取的人類運動片段分割方法

導讀 動作示教方法是非專家用戶對人形機器人進行控制的可靠形式&#xff0c;而對人類動作數據的運動分割與理解是其前提。利用現有方法對所捕獲人類運動原始數據進行關鍵幀提取與運動分割時&#xff0c;由于數據特征不明確&#xff0c;導致難以準確定位運動起始幀、結束幀及分…

ARM內核之CMSIS

1.什么是CMSIS&#xff1f; CMSIS&#xff08;Cortex Microcontroller Software Interface Standard&#xff0c;Cortex微控制器軟件接口標準&#xff09;提供Cortex-M內核與軟件之間的接口&#xff0c;即用戶可以通過這些統一的接口&#xff08;函數API&#xff09;去訪問底…

嵌入式軟件面經(二)Q: Modbus協議CRC校驗的方式是什么?它有哪些優勢?

Modbus協議使用的CRC&#xff08;循環冗余校驗&#xff09;是一種用于確保數據通信完整性和準確性的差錯檢測方法。在Modbus RTU通信中&#xff0c;CRC校驗過程清晰明確&#xff0c;且被廣泛應用于工業通信場景。 一、Modbus協議的CRC校驗流程 &#xff08;一&#xff09;CRC計…

glib-object 中G_DEFINE_TYPE 宏都作了什么?

author: hjjdebug date: 2025年 06月 25日 星期三 15:35:26 CST descrip: glib-object 中G_DEFINE_TYPE 宏都作了什么? 文章目錄 1. 測試代碼2 給出它的展開式.3.說說它都生成了什么?3.1. my_foo_get_type() 函數3.2. static GType my_foo_get_type_once(void)3.3. my_foo_cl…

Alembic遷移系統初始化實戰教程

下面是一份結構清晰、步驟明確的 基于 Alembic Pydantic SQLAlchemy 的數據庫遷移系統初始化教程&#xff0c;非常適合初次搭建項目或團隊規范流程參考。 &#x1f680; Alembic SQLAlchemy Pydantic 項目數據庫遷移初始化教程 本教程將指導你如何從零初始化 Alembic 遷移…

灰度發布怎么保證數據庫一致的

注&#xff1a; 以下內容來源于deepseek答案&#xff0c;生產環境以實際情況為主&#xff01; 在灰度發布中保證數據庫一致的最優解需要同時滿足安全性、低復雜度和高可操作性。結合多年實戰經驗&#xff0c;以下是最推薦的黃金方案&#xff08;適用于90%以上場景&#xff09;&…

不用vue,只用html,即可簡單實現electron項目

為你提供一個 最簡單的 Electron 項目模板&#xff0c;包含完整的代碼、配置和打包說明。即使你是小白&#xff0c;也能快速上手。 1. 項目結構 /your-project├── main.js # Electron 主進程文件├── preload.js # 安全通信腳本&#xff08;可選&#xf…

C++11原子操作:從入門到精通

文章目錄 一、什么是原子操作&#xff1f;二、為什么需要原子操作&#xff1f;三、C11中的<atomic>頭文件四、基本使用1. 聲明原子變量2. 基本原子操作 五、內存順序&#xff08;Memory Order&#xff09;示例&#xff1a;使用內存順序實現自旋鎖 六、原子類型模板七、實…

深入解析Flink Local模式啟動流程源碼:揭開作業初始化的神秘面紗

在Flink的數據處理體系中&#xff0c;Local模式憑借無需依賴分布式集群資源的特性&#xff0c;成為開發測試階段快速驗證作業邏輯的利器。其啟動流程的源碼里&#xff0c;藏著從作業提交到任務執行的完整脈絡。接下來&#xff0c;我們將深入關鍵代碼段&#xff0c;逐行剖析Flin…

二刷 蒼穹外賣 day06

HttpClient 用來提供高效的、最新的、功能豐富的支持HTTP協議的客戶端編程工具包 作用&#xff1a; 發送HTTP請求 接受響應數據 應用場景&#xff1a; 當我們在使用掃描支付、查看地圖、獲取驗證碼、查看天氣等功能時 其實&#xff0c;應用程序本身并未實現這些功能&#xff…

React第六十三節Router中BrowserRouter的用途及注意事項

前言 BrowserRouter 是 React Router 庫的核心組件&#xff0c;用于實現單頁面應用&#xff08;SPA&#xff09;的客戶端路由。它利用 HTML5 History API 管理 URL&#xff0c;實現頁面無刷新跳轉。下面詳細解釋其用途、使用方法和代碼示例&#xff1a; 一、BrowserRouter 核…

《Self-Adapting Language Models》(SEAL)代碼閱讀筆記

代碼&#xff1a;https://github.com/Continual-Intelligence 腳本命令用法&#xff1a;knowledge-incorporation/README.md 生成self-edit數據 腳本&#xff1a;sbatch knowledge-incorporation/scripts/make_squad_data.sh vllm serve啟動Qwen2.5-7B模型的服務。 執行self-e…

GelSight Mini視觸覺傳感器開發資源升級:觸覺3D點云+ROS2助力機器人科研與醫療等應用

近日&#xff0c;GelSight宣布對其GelSight Mini視觸覺傳感器的GitHub支持頁面進行重大更新&#xff0c;圍繞3D點云重建、ROS2 集成及開發者支持體系推出三大核心升級&#xff0c;助力機器人觸覺感知、工業檢測及科研場景落地。 GelSight Mini視觸覺傳感器重磅發布&#xff01;…