【CF】Day139——雜題 (絕對值變換 | 異或 + 二分 | 隨機數據 + 圖論)

B. Meeting on the Line

題目:

思路:

數形結合

首先考慮如果沒有 t 的影響該怎么寫

顯然我們就是讓最大時間最小化,那么顯然選擇最左端點和最右端點的中間值即可,即 (mi + mx) / 2,那么現在有了 t 該怎么辦

我們不妨考慮拆開絕對值,由 |a - b| = max(a-b, b-a) 可得原式 t - |x - x0| 拆解為

max(t - (x - x0), t - (x0 - x)) = max(t - x + x0, t + x - x0) = max(x0 - (x - t), (t + x) - x0)

我們令 x-t 和 t+x 為兩個新點,那么顯然 x-t 在 x0 左邊,t+x 在 x0 右邊,所以我們找到最大的右端點和最小的左端點即可,這就是我們上面的普通情況

除此之外,我們可以還能使用二分or三分

代碼:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());void solve()
{int n;cin >> n;vector<int> a(n + 1), t(n + 1);for (int i = 1; i <= n; i++)cin >> a[i];for (int i = 1; i <= n; i++)cin >> t[i];int mx = -1e18, mi = 1e18;for (int i = 1; i <= n; i++){mx = max(mx, a[i] + t[i]);mi = min(mi, a[i] - t[i]);}double res = (mx + mi) * 1.0 / 2.0;printf("%.6lf\n", res);
}signed main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;cin >> t;while (t--){solve();}return 0;
}

C1. Sheikh (Easy version)

題目:

思路:

異或性質

這題看似無從下手,但是我們關鍵點在于發現異或的性質,不難發現一個特點,異或是不帶進位的加法,那么對于任意 x,y,我們都有 x+y >= x ^ y,這是顯然的

那么我們就豁然開朗了,既然 x+y >= x ^ y,那么對于一個區間我們肯定是多加數的,因為 x+y - x^y >= 0 恒成立,所以多加顯然是不劣的

那么最大值顯然就是選取整個區間,但是題目讓我們輸出最小的長度,所以考慮如何最小

顯然由上訴結論可知,我們區間長度越長,那么值就越大,這是單調的,所以我們考慮二分區間長度,我們枚舉每一個左端點,然后二分最大長度即可

特別注意預處理前綴和即可,還有越界問題

代碼:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());void solve()
{int n,q;cin >> n >> q;vector<int> a(n+1),sum(n+1,0),sumxor(n+1,0);for (int i = 1; i <= n; i++){cin >> a[i];sum[i] = sum[i-1] + a[i];sumxor[i] = sumxor[i-1] ^ a[i];}cin >> q >> q;int mx = sum[n] - sumxor[n];auto check = [&](int l,int len)->int{int r = min(l + len - 1,n);int nmx = (sum[r] - sum[l-1]) - (sumxor[r] ^ sumxor[l-1]);return nmx >= mx;};int le = 1e18;int mxl = 0;for (int i = 1; i <= n; i++){int l = 1,r = 1e18;while (l+1 < r){int mid = l+r >> 1;if(check(i,mid)){r = mid;}else{l = mid;}}int templen = 0;if(check(i,l)) templen = l;else templen = r;if(templen < le){le = templen;mxl = i;}}cout << mxl << " " << mxl + le - 1 << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;cin >> t;while (t--){solve();}return 0;
}

E. Guess the Cycle Size

題目:

思路:

隨機數據的特征

注意到題目數據隨機,那么可以考慮稍微暴力的做法

我們假設對于 a,b 點對進行詢問,如果 a,b 和 b,a 的詢問結果不同,那么顯然二者相加就是答案

但是由于 a,b 和 b,a 的詢問結果不同,因此我們要多次判斷,可以發現 50 次內基本上不可能會錯,如果擔心錯的話可以在代碼結尾加上 while(1) 使得其超時,因為TLE 會重測 3 次,3 次全錯肯定不可能

最后特別注意特判 -1 情況即可

代碼:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());void solve()
{int ans1, ans2;for (int i = 2; i <= 1e18; i++){cout << "? " << 1 << " " << i << endl;cin >> ans1;if (ans1 == -1){cout << "! " << i - 1 << endl;return;}cout << "? " << i << " " << 1 << endl;cin >> ans2;       if(ans1 != ans2){cout << "! " << ans1 + ans2 << endl;return;} }while (1);
}signed main()
{int t = 1;while (t--){solve();}return 0;
}

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

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

相關文章

在 Ubuntu 上安裝和配置 PostgreSQL 實錄

一、查看ubuntu版本 lsb_release -a postgresq盡量安裝在新的穩定版本的ubuntu上 二、安裝postgresql 2.1 直接安裝 sudo apt install postgresql 結果如下 2.2 使用PPA源安裝 Ubuntu官方源提供了PostgreSQL的PPA(Personal Package Archive),通過PPA源安裝可以確保獲取…

WebGIS三維可視化 + 數據驅動:智慧煤倉監控系統如何破解煤炭倉儲行業痛點

目錄 一、項目背景&#xff1a;煤炭倉儲管理的痛點與轉型需求 二、建設意義&#xff1a;從 “被動管理” 到 “主動掌控” 的價值躍遷 三、項目核心&#xff1a;技術架構與核心目標的深度融合 四、數據與技術&#xff1a;系統穩定運行的 “雙支柱” &#xff08;一&#x…

使用 Spring Security 實現 OAuth2:一步一步的操作指南

前言 OAuth 是一種授權框架&#xff0c;用于創建權限策略&#xff0c;并允許應用程序對用戶在 HTTP 服務&#xff08;如 GitHub 和 Google&#xff09;上的賬戶進行有限訪問。它的工作原理是允許用戶授權第三方應用訪問他們的數據&#xff0c;而無需分享他們的憑證。本文將指導…

VMware共享文件夾設置

啟用共享文件夾 編輯虛擬機設置-選項-共享文件夾&#xff0c;上面的選項選擇啟用下面點擊添加一個路徑&#xff0c;跟著向導走 設置共享文件夾在主機的路徑&#xff0c;和文件夾名稱添加完成后可以點擊這個共享文件夾條目&#xff0c;查看屬性虛擬機里安裝vm-tools sudo apt up…

華為云昇騰云服務

華為云&#xff0c;一切皆服務共建智能世界云底座面向未來的智能世界&#xff0c;數字化是企業發展的必由之路。數字化成功的關鍵是以云原生的思維踐行云原生&#xff0c;全數字化、全云化、AI驅動&#xff0c;一切皆服務。華為云將持續創新&#xff0c;攜手客戶、合作伙伴和開…

Axum 最佳實踐:如何構建優雅的 Rust 錯誤處理系統?(三)

引言 作為開發者&#xff0c;我們都經歷過這樣的場景&#xff1a;項目上線后&#xff0c;你打開日志監控&#xff0c;鋪天蓋地的 500 Internal Server Error 撲面而來。這些錯誤像個黑洞&#xff0c;吞噬著你的調試時間&#xff0c;你甚至不知道它們是從數據庫查詢失敗&#x…

MySQL高可用方案解析:從復制到云原生

MySQL 的高可用 (High Availability, HA) 方案旨在確保數據庫服務在硬件故障、軟件崩潰、網絡中斷或計劃維護時仍能持續可用&#xff0c;最小化停機時間&#xff08;通常目標為 99.9% 至 99.999% 可用性&#xff09;。以下是 MySQL 領域成熟且廣泛應用的幾種主流高可用方案&…

騰訊云語音接口實現會議系統

1.前言 在現代企業協作環境中&#xff0c;高效的會議管理是提升團隊生產力的關鍵。本文將深入解析一個完整的會議管理系統&#xff0c;涵蓋從會議創建到總結生成的完整生命周期。該系統構建一個基于AI技術的智能會議系統&#xff0c;實現會議全流程的智能化管理&#xff0c;包括…

【LeetCode 每日一題】1277. 統計全為 1 的正方形子矩陣

Problem: 1277. 統計全為 1 的正方形子矩陣 文章目錄整體思路完整代碼時空復雜度時間復雜度&#xff1a;O(m * n)空間復雜度&#xff1a;O(m * n)整體思路 這段代碼旨在解決一個經典的二維矩陣問題&#xff1a;統計全為 1 的正方形子矩陣個數 (Count Square Submatrices with …

【論文閱讀】MedResearcher-R1: 基于知識引導軌跡合成框架的專家級醫學深度研究員

論文鏈接&#xff1a;https://arxiv.org/pdf/2508.14880 【導讀】當通用大模型還在“背題庫”時&#xff0c;螞蟻集團聯合哈工大推出的 MedResearcher-R1 已把“臨床查房”搬進訓練場&#xff01;這篇 2025 年 9 月發布的論文&#xff0c;首次讓開源 32B 模型在醫學深度研究基準…

基于大語言模型的事件響應優化方案探索

程序員的技術管理推薦閱讀 當愿望遇上能力鴻溝&#xff1a;一位技術管理者眼中的團隊激勵思考 從“激勵”到“保健”&#xff1a;80后與90后程序員&#xff0c;到底想要什么&#xff1f; 從“激勵”到“保健”&#xff1a;80后與90后程序員&#xff0c;到底想要什么&#xff1f…

數字化浪潮下,傳統加工廠如何智能化轉型?

在制造業向高端化、服務化升級的今天&#xff0c;傳統加工廠正面臨前所未有的挑戰。訂單碎片化、人力成本攀升、設備OEE&#xff08;綜合效率&#xff09;長期低于50%、質量波動難以追溯……這些痛點不僅壓縮著企業利潤空間&#xff0c;更讓其在應對市場需求變化時顯得遲緩。當…

謂語動詞選擇指南

文章目錄謂語動詞的重要性謂語動詞類別一. 助動詞1. be&#xff08;am, is, are, was, were, been, being&#xff09;表示 存在、狀態、身份、特征。2. have&#xff08;have, has, had&#xff09;表示 擁有、經歷 或 完成時態的助動詞。3. do&#xff08;do, does, did&…

代碼隨想錄學習摘抄day7(二叉樹11-21)

一個樸實無華的目錄題型226.翻轉二叉樹思路&#xff1a;把每一個節點的左右孩子交換一下101. 對稱二叉樹思路&#xff1a;使用隊列來比較兩個樹&#xff08;根節點的左右子樹&#xff09;是否相互翻轉222.完全二叉樹的節點個數思路&#xff1a;本題直接就是求有多少個節點&…

Python+DRVT 從外部調用 Revit:批量創建樓板

今天繼續批量創建常用的基礎元素&#xff1a;樓板。這次以簡單的輪廓為矩形的樓板為例。讓我們來看一看如何讓Revit自動干活&#xff1a; from typing import List import math # drvt_pybind 支持多會話、多文檔&#xff0c;先從簡單的單會話、單文檔開始 # MyContext是在Pyt…

猿輔導數據分析面試題及參考答案

給定用戶成績表,編寫SQL查詢排名靠前的用戶(例如前10名),并說明rank()和dense_rank()的區別。 要查詢成績表中排名靠前的用戶(如前10名),需先明確排名依據(通常為成績降序),再通過排序和限制結果行數實現。假設用戶成績表名為user_scores,包含user_id(用戶ID)和s…

在樹莓派集群上部署 Distributed Llama (Qwen 3 14B) 詳細指南

項目地址&#xff1a;https://github.com/b4rtaz/distributed-llama 本文檔將指導您如何使用一個樹莓派5作為Root節點和三個樹莓派4作為Worker節點&#xff0c;共同搭建一個4節點的分布式LLM推理集群&#xff0c;并運行10.9GB的Qwen 3 14B模型。 中間要用到github和huggingface…

C++ 容器——unordered_xxx

自 C11 開始&#xff0c;STL 引入了基于 hash table 的 unordered_set、unordered_map 等容器&#xff0c;正如其名它們是無序容器。一定數量&#xff08;據說有測試數據是10000000&#xff09;元素時無序容器的性能要比對應的有序容器優。一、容器數據結構unordered_set、unor…

分布式常見面試題整理

一、分布式理論&#xff1a; CAP理論 分布式系統最多同時滿足一致性&#xff08;C&#xff09;、可用性&#xff08;A&#xff09;、分區容錯性&#xff08;P&#xff09;中的兩個&#xff0c;無法三者兼得。 BASE理論 對CAP中一致性和可用性的權衡&#xff0c;強調基本可用&a…

Python基礎入門常用198英語單詞詳解

最近&#xff0c;我總結了一份Python學習者入門常用單詞表&#xff0c;列出了Python學習中常見的198個高頻單詞&#xff0c;供初學者學習使用。 這些單詞都比較簡單&#xff0c;非常易于理解&#xff0c;在掌握好單詞的基礎上&#xff0c;再去學Python可以達到事半功倍的效果。…