【CF】Day136——Codeforces Round 1046 (Div. 2) CD (動態規劃 | 數學)

C. Against the Difference

題目:

思路:

簡單DP

不難發現我們貪心是沒法貪的,因此考慮DP

我們令 dp[i] 為 前 i 個元素能構造出的最長整齊子序列的長度,不難發現一個很簡單的轉移,即直接繼承 dp[i] = dp[i-1],那么現在考慮增加奉獻的情況

對于 a[i],如果我們此時要選擇增加奉獻,那么就要從前 a[i] 個位置轉移,且這 a[i] 個位置 j 的 a[j] 都是 a[i]

所以考慮儲存 a[i] 的位置,如果 pos[a[i]].size() >= a[i],那么說明此時可以轉移,貪心的想,我們肯定是越后轉移越好,所以我們直接從前 a[i] 個位置轉移即可,此時增加的奉獻就是 a[i]

具體實現看代碼?

代碼:

#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, x;cin >> n;vector<int> dp(n + 1, 0);vector<vector<int>> pos(n + 1);for (int i = 1; i <= n; i++){cin >> x;dp[i] = dp[i - 1];pos[x].push_back(i);if (pos[x].size() >= x)dp[i] = max(dp[i], dp[pos[x][pos[x].size() - x] - 1] + x);}cout << dp[n] << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;cin >> t;while (t--){solve();}return 0;
}

D. For the Champion

題目:

思路:

經典距離

我們不難發現,絕對值很麻煩,所以我們應該考慮刪除絕對值的影響

同時我們還能發現,如果 k 很小,這其實不利于我們尋找,因為會有很多的節點干擾我們

所以我們考慮一個很大的坐標,如 (∞,∞),這樣的話我們肯定能確定是哪個點的結果

考慮十步內得出,我們不妨考慮兩個極端:?P1 (∞,∞),P2 (∞,-∞)


我們假設求出的答案是 ask,原始坐標是 (x, y)

①.對于 P1,我們不難寫出對應式子

\left | x+x_m-x_i \right |+\left | y+y_m-y_i \right |=ask

其中 x/y_m 代表移動的距離,x/y_i 代表距離最短時對應的點,那么拆開就有(這里直接化簡)

x+y=ask-x_m-y_m+x_i+y_i

其中兩個 x/y_m 都是 ∞ 均為已知量,那么為了讓 ask 最小,我們的 x_i + y_i 肯定是最大的,所以預處理即可

②.對于 P2,我們同理可寫出

\left | x+x_m-x_i \right |+\left | y-y_m-y_i \right |=ask

但是由于此時 y-y_m?小于 y_i,因此考慮變號,則有

x+x_m-x_i+(y_i - y + y_m) = ask

化簡得

x-y=ask-x_m-y_m-(y_i - x_i)

同理為了讓 ask 最小,我們就要讓 y_i - x_i 最小,所以也是預處理出來


我們將上面兩個式子優化一下,則有

x+y=res1

x-y=res2

由于 res1 和 res2 我們可以求出來,那么也就能求出 x,y 的坐標


具體的,由于我們無法一次直接移動 ∞ 長度,那我們就移動一個很長的距離即可,由于 k <= 1e9,所以我們考慮移動四次?1e9,其中兩次 R 來達到 x 軸無限遠,兩次 D 來達到 y 軸無限遠,這樣就能得到一個 res 了

而對于另一個 res,我們直接四次 U 即可,因為 x 軸無限遠了,所以只需要考慮 y 軸,所以先兩次抵消向下無限遠,然后向上即可,這樣另一個 res 也解決了

綜上,我們只使用了 8 次即可完成問題

代碼:

#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;int mx = -1e18, mi = 1e18;for (int i = 0; i < n; i++){int x, y;cin >> x >> y;mi = min(mi, y - x);mx = max(mx, x + y);}int ask;cout << "? R 1000000000" << endl;cin >> ask;cout << "? R 1000000000" << endl;cin >> ask;cout << "? D 1000000000" << endl;cin >> ask;cout << "? D 1000000000" << endl;cin >> ask;int res1 = ask - 4000000000LL - mi;cout << "? U 1000000000" << endl;cin >> ask;cout << "? U 1000000000" << endl;cin >> ask;cout << "? U 1000000000" << endl;cin >> ask;cout << "? U 1000000000" << endl;cin >> ask;int res2 = ask - 4000000000LL + mx;cout << "! " << (res1 + res2) / 2 << " " << (res2 - res1) /2 << endl;
}signed main()
{int t = 1;cin >> t;while (t--){solve();}return 0;
}

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

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

相關文章

如何評價 Kimi 開源的推理平臺 Mooncake?對行業有什么影響?

2月26日&#xff0c;Mooncake的論文獲得「計算機存儲頂會 FAST 2025」Best Paper&#xff0c;這也是國內連續第三年拿到FAST Best Paper。同時&#xff0c;Mooncake 團隊宣布和 vLLM 團隊已經合作制定了一個多階段路線圖。這次整合將為 vLLM 引入 P/D&#xff08;Prefill/Decod…

Java中不太常見的語法-總結

簡介 讀源碼時&#xff0c;或者看同事寫的代碼&#xff0c;經常看到一些不太常見的語法&#xff0c;這里做一個總結 不太常見的語法 成員變量的默認值 案例&#xff1a; public class Person2 {private String name "張三";private Integer age;public String getNa…

Easytier異地組網與移動光貓GS220-s

Easytier異地組網與Nginx反向代理_--relay-network-whitelis easytier-CSDN博客 上一篇文章介紹了Easytier實現異地組網&#xff0c;基于Windows應用&#xff0c;本篇將探討如何將Easytier寫入光貓GS220-s中&#xff0c;實現更方便的家庭組網。 一、Telnet移動光貓GS220-s 1…

衛星信號和無線信號的設備廠商

以下是一些與衛星信號相關的公司&#xff1a;中國衛通集團股份有限公司&#xff1a;中國航天科技集團有限公司從事衛星運營服務業的核心專業子公司&#xff0c;是中國唯一擁有通信衛星資源且自主可控的衛星通信運營企業。運營管理著多顆在軌民商用通信廣播衛星&#xff0c;覆蓋…

HyperPlonk 的硬件友好性

1. 引言 在工業界廣泛使用的 Plonk SNARK 協議高度依賴 NTT 來完成計算。HyperPlonk 是 Plonk 的一個變種&#xff0c;它試圖通過用 Sumcheck 替代 NTT&#xff08;以及其它改進&#xff09;來提升并行性。Ingonyama團隊認為&#xff1a; Sumcheck 在 HyperPlonk 中所謂的并行…

Visual Studio內置環境變量有哪些

在 Visual Studio 中&#xff0c;內置變量&#xff08;也稱為宏&#xff09;可以用于在項目配置中指定特定的路徑、環境變量或其他值。這些變量可以在項目的屬性頁面中使用&#xff0c;也可以在代碼中使用。以下是一些常用的內置變量及其用途&#xff1a; 常用內置變量 $(Solut…

大模型入門學習微調實戰:基于PyTorch和Hugging Face電影評價情感分析模型微調全流程(附完整代碼)手把手教你做

深入淺出&#xff1a;如何訓練一個屬于你的大模型&#xff1f; “一個強大的大模型&#xff0c;究竟是如何訓練出來的&#xff1f;” 本文將基于行業共識&#xff0c;為您詳細拆解大模型的完整訓練流程&#xff0c;并提供一個基于開源模型和數據集的實戰代碼示例&#xff0c;…

零、2025 年軟件設計師考試大綱

一、考試說明 1.考試目標 通過本考試的合格人員能根據軟件開發項目管理和軟件工程的要求&#xff0c;按照系統總體設計規格說明書進行軟件設計&#xff0c;編寫程序設計規格說明書等相應的文檔&#xff0c;組織和指導程序員編寫、調試程序&#xff0c;并對軟件進行優化和集成…

uniapp npm安裝形式 全局分享和按鈕分享設置

全局分享方法新建一個shareUtil.ts方法import { storageConfig } from /config/storageConfig; export default {data() {return {miniShareOptions: {title: 標題,path: /pages/tabbar/index?inviteCode,summary: 描述,imageUrl: /userPages/static/img/invitation_h_bg.png,…

【數據結構】樹和二叉樹——樹和森林

目錄樹和二叉樹樹和森林樹的存儲結構雙親表示法孩子表示法孩子兄弟表示法森林與二叉樹的轉換樹和森林的遍歷樹的先根遍歷樹的后根遍歷樹的層次遍歷森林的先序遍歷森林的中序遍歷樹的應用求樹的深度輸出樹中所有從根到葉子的路徑的算法建樹的存儲結構的算法哈夫曼樹與哈夫曼編碼…

【小寧學習日記5 PCB】電路定理

目錄 一、先搞懂&#xff1a;原理圖的 “構成密碼” &#xff08;1&#xff09;連接線&#xff1a;別被 “直線” 騙了&#xff01; &#xff08;2&#xff09;結點&#xff1a;紅色小圓點才是 “真?連接” &#xff08;3&#xff09;網絡標簽&#xff1a;“無形的連線” …

ans1語法的一個例子nt5inf.cat

第二部分&#xff1a;語法第一部分&#xff1a;頭部語法第一部分A&#xff1a;0x30 類型位0x10SEQUENCE and SEQUENCE OF10語法第一部分B&#xff1a;83 長度3個字節&#xff0c;如果為1個字節&#xff0c;第一部分B則沒有。語法第一部分C&#xff1a;長度 0x09 …

三電平逆變器SVPWM控制(無解耦功能)與諧波分析

三電平逆變器的空間矢量脈寬調制(SVPWM)控制方法&#xff0c;重點分析在不使用解耦控制的情況下實現5%諧波含量的技術方案。我們將使用MATLAB/Simulink進行建模和仿真分析。 一、三電平逆變器基本原理 三電平逆變器相比傳統兩電平逆變器具有以下優勢&#xff1a; 輸出電壓波形質…

模擬實現C++中的string類型:從底層理解字符串操作

string前言核心成員變量設計構造函數與析構函數默認構造函數從C風格字符串構造填充構造拷貝構造函數迭代器范圍構造析構函數基本操作實現迭代器支持容量管理元素訪問字符串修改操作拼接操作插入與刪除字符串查找操作運算符重載總結每文推薦前言 在C中&#xff0c;std::string是…

pdf轉ofd之移花接木

文章目錄1.pdf轉ofd的方法1.1 spire.pdf.free1.2 ofdrw2.移花接木3.總結1.pdf轉ofd的方法 1.1 spire.pdf.free 這個是一個半開源的類庫&#xff0c;免費版本的在轉換的時候會有一個10的限制&#xff0c;所以不推薦使用&#xff0c;具體教程網上都有&#xff0c;這里只是分享有…

用【Coze】實現文案提取+創作

在AI技術飛速發展的當下&#xff0c;打造專屬智能應用成為不少人的向往。今天&#xff0c;就帶大家走進字節跳動的扣子Coze平臺&#xff0c;看看如何借助它搭建智能體&#xff0c;還會介紹AI工作流&#xff0c;以及詳細的Coze搭建步驟&#xff0c;開啟你的AI創作之旅&#xff5…

buuctf——web刷題第5頁

第五頁 目錄 [EIS 2019]EzPOP [WMCTF2020]Make PHP Great Again 2.0 [BSidesCF 2020]Hurdles [安洵杯 2019]iamthinking [GWCTF 2019]mypassword [HFCTF2020]BabyUpload [NewStarCTF 2023 公開賽道]include 0。0 [SWPU2019]Web4 [PASECA2019]honey_shop [Black Watc…

果蔬采摘機器人:自動駕駛融合視覺識別,精準定位,高效作業

在智慧農業的快速發展中&#xff0c;果蔬采摘機器人以其自動駕駛技術與視覺識別技術的完美融合&#xff0c;正逐步成為農業生產中的重要力量。這些機器人不僅實現了對果蔬的精準定位&#xff0c;還顯著提高了采摘效率&#xff0c;展現了強大的技術優勢。一、自動駕駛技術的引領…

2025年職業發展關鍵證書分析:提升專業能力的路徑選擇

在當今職場環境中&#xff0c;專業能力的提升已成為職業發展的重要方面。各類專業證書作為系統學習與能力驗證的方式&#xff0c;受到越來越多職場人士的關注。本文基于當前行業發展趨勢&#xff0c;分析8個在不同領域具有代表性的專業資格認證&#xff0c;為職場人士提供參考信…

【Qt】QCryptographicHash 設置密鑰(Key)

QCryptographicHash 本身不能設置密鑰&#xff08;Key&#xff09;。 它是一個用于計算非密鑰型加密哈希的函數&#xff0c;其設計目的和 HMAC 或加密算法完全不同。 下面我詳細解釋為什么&#xff0c;以及如何正確地實現你可能想要的功能。 1. QCryptographicHash 的核心功能&…