Codeforces Round 892 (Div. 2)(VP)

A

?????? //b里放最小值,其他值放c。如果最大值=最小值,則無解。

void solve() {int n; cin >> n;vi a(n); liter(x, a) cin >> x; sort(all(a));if (a[0] == a[n - 1]){print(-1); return;}vi b, c;for (int i = 0; i < sz(a); ++i){if (a[i] == a[0]){b.pb(a[i]);}else{c.pb(a[i]);}}print(sz(b), sz(c));print(b);print(c);
}

B

//答案由每個數組中第二小值構成,對于每個數組,記錄對答案的貢獻值,并找出貢獻最小的數組。貢獻最小的數組用來存儲其他數組的最小值。然后再將總的貢獻值微改即可。

void solve() {int n; cin >> n;vvi a(n);ll sum = 0;
//min_val存儲所有數組中第二小值里面最小的值。int min_val = 2e9, min_val_index = -1;int MM = 2e9;for (int i = 0; i < n; ++i){int m; cin >> m;a[i].assign(m + 2, 0);int minn = 2e9, secmin = 2e9;for (int j = 2; j <= m + 1; ++j){cin >> a[i][j];if (a[i][j] < minn){secmin = minn;minn = a[i][j];}else if (a[i][j] < secmin){secmin = a[i][j];}}a[i][0] = minn;
//如果當前數組長度為1,那么第二小值 == 最小值a[i][1] = m > 1? secmin : a[i][0];if (min_val > a[i][1]){min_val = a[i][1];min_val_index = i;}MM = min(MM, a[i][0]);sum += a[i][1];}
//以下操作等效于刪除最小的第二小值,并把其他數組中的最小值移動到這個數組中,并加上其他數組所有值移動過來以后這個數組中的最小值。if (n > 1){sum = sum - a[min_val_index][1] + MM;}else sum = a[0][0];print(sum);
}

C

思路:要讓n個數的*相應的排列的和在刪除一個最大的值后的值最大,有這樣的思路:

如果讓i*j的和最大(1<=I, j <= n),那么就讓每個i=j。然而題目要求刪除一個最大的I * j,那么求解需要將要刪除的I * j盡可能的變小,未刪除的i*j盡可能變大,在這種大前提下找到一個最優解。假設要刪除的數是n,那么讓n*i盡可能的小,就要bf嘗試各種下標i。同時,要保證其他的數盡可能的大,但是不能大過n*I,就將i后面的數從n-1逆序排列,升序i*逆序n – 1開始的排列,可能會滿足最大的數盡可能小,而其他的數每個數都得到一定程度的變大。

測試:輸入10

1 2 3 4 5 6 10 9 8 7

1 4 9 16 25 36 49 64 81 100 升序排列I = j各個位置的和,最后需要刪除100,后4位是49+75+81=194

1 4 9 16 25 36 70 72 72 70????? 將n 放在I = 7的位置,最后需要刪除72,后4位是70+72+70=212.

可以發現,對于這樣的一個規則來說,可以找到一個下標起點,用來存放從n開始逆序排列的一個序列,會讓這個序列*對應下標的值盡可能的接近,比如上面的70, 72, 72, 70,以至于刪除一個最大的值后,其余的值加起來的和的貢獻>升序排列刪除最大值后的和的貢獻。

?
void solve() {int n; cin >> n;ll sum = 0;auto cal = [&n](vi& a){ll result = 0;int in = 0;for (int i = 1; i <= n; ++i){result += 1ll * a[i] * i;if (a[in] * in < a[i] * i) in = i;}result -= a[in] * in;return result;};ll result = 0;vi a(n + 1);for (int i = 1; i <= n; ++i){a[i] = n;for (int j = 1; j < i; ++j) a[j] = j;for (int j = i + 1; j <= n; ++j) a[j] = a[j - 1] - 1;result = max(result, cal(a));}print(result);
}

總結:關鍵點在于盡快找到:將最大最盡可能的變小,其他的值盡可能變大的點->推理出從某個下標讓n開始降序排列,然后暴力求解。

D

放個TLE代碼

struct pts{int l, r, a, b;void read() {cin >> l >> r >> a >> b;}bl operator <(cst pts& x){return b < x.b;}
};void solve() {int n; cin >> n;vector<pts> a (n);liter(x, a) x.read();sort(all(a));int q; cin >> q;while (q--){int pos; cin >> pos;liter(x, a){if (pos >= x.l && pos <= x.r) pos = max(pos, x.b);}print(pos, ' ');}newline;
}

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

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

相關文章

小米基于 Flink 的實時計算資源治理實踐

摘要&#xff1a;本文整理自小米高級軟件工程師張蛟&#xff0c;在 Flink Forward Asia 2022 生產實踐專場的分享。本篇內容主要分為四個部分&#xff1a; 發展現狀與規模框架層治理實踐平臺層治理實踐未來規劃與展望 點擊查看原文視頻 & 演講PPT 一、發展現狀與規模 如上圖…

【03】基礎知識:typescript中的函數

一、typescript 中定義函數的方法 函數聲明法 function test1(): string {return 返回類型為string }function test2(): void {console.log(沒有返回值的方法) }函數表達式/匿名函數 const test3 function(): number {return 1 }二、typescript 中 函數參數寫法 1、typesc…

helm安裝harbor + nerdctl 制作push 鏡像

參考 文章&#xff1a;Helm部署Harbor_helm harbor_風向決定發型丶的博客-CSDN博客 安裝好后使用 nerd containerd對接harbor_containerd 容器 insecure-registries 配置_檸是檸檬的檬的博客-CSDN博客 推送鏡像 Containerd 對接私有鏡像倉庫 Harbor - 知乎 接下來我們來…

麒麟系統相關

創建虛擬機 鏡像下載地址 選擇合適的鏡像&#xff0c;進入引導后注意不要選擇默認的第一條&#xff0c;選擇第二條進入安裝程序。 root密碼修改 使用命令 sudo passwd root 開啟ssh 配置好網絡后發現能ping通&#xff0c;但無法ssh連接&#xff0c;ps -ef | grep ssh 得…

01 qt快速入門

一 qt介紹 1.基本概念 1991年由Qt Company(奇趣)開發的跨平臺C++圖形用戶界面應用程序開發框架,GUI程序和非GUI程序。優點:一套源碼在不同的平臺通過不同的編譯器進行編譯,就可以運行到該平臺上目標機。面向對象的封裝機制來對其接口封裝。 GUI —圖形用戶界面(Graphic…

軟件測試面試題【2023整理版(含答案)】

01、您所熟悉的測試用例設計方法都有哪些&#xff1f;請分別以具體的例子來說明這些方法在測試用例設計工作中的應用。 答&#xff1a;有黑盒和白盒兩種測試種類&#xff0c;黑盒有等價類劃分方法 邊界值分析方法 錯誤推測方法 因果圖方法 判定表驅動分析方法 正交實驗設…

Vue組件之間的傳值匯總

組件之間的傳值 1、父傳子 props 2、父傳子 slot 3、父傳子 不建議用 attrs 4、 子傳父 ref 5、子傳父 emit 6、povide/inject只能在setup的時候用。 7、利用vuex和pinia去實現數據的交互 1、實現代碼App.vue <script setup>import TestProps from ./components/T…

stable-diffusion 模型效果+prompt

摘自個人印象筆記&#xff0c;圖不完整可查看原筆記&#xff1a;https://app.yinxiang.com/fx/55cda0c6-2af5-4d66-bd86-85da79c5574ePrompt運用規則及技巧 &#xff1a; 1. https://publicprompts.art/&#xff08;最適用于OpenArt 線上模型 https://openart.ai/&#xff09;…

【Vue-Router】別名

后臺返回來的路徑名不合理&#xff0c;但多個項目在使用中了&#xff0c;不方便改時可以使用別名。可以有多個或一個。 First.vue <template><h1>First Seciton</h1> </template>Second.vue&#xff0c;Third.vue代碼同理 UserSettings.vue <tem…

R語言生存分析(機器學習)(2)——Enet(彈性網絡)

彈性網絡&#xff08;Elastic Net&#xff09;:是一種用于回歸分析的統計方法&#xff0c;它是嶺回歸&#xff08;Ridge Regression&#xff09;和lasso回歸&#xff08;Lasso Regression&#xff09;的結合&#xff0c;旨在克服它們各自的一些限制。彈性網絡能夠同時考慮L1正則…

mysql 索引 區分字符大小寫

mysql 建立索引&#xff0c;特別是unique索引&#xff0c;是跟字符集、字符排序規則有關的。 對于utf8mb4_0900_ai_ci來說&#xff0c;0900代表Unicode 9.0的規范&#xff0c;ai表示accent insensitivity&#xff0c;也就是“不區分音調”&#xff0c;而ci表示case insensitiv…

wsl2安裝docker引擎(Install Docker Engine on Debian)

安裝 1.卸載舊版本 在安裝 Docker 引擎之前&#xff0c;您必須首先確保卸載任何沖突的軟件包。 發行版維護者在他們的存儲庫。必須先卸載這些軟件包&#xff0c;然后才能安裝 Docker 引擎的正式版本。 要卸載的非官方軟件包是&#xff1a; docker.iodocker-composedocker-…

問道管理:旅游酒店板塊逆市拉升,桂林旅游、華天酒店漲停

游覽酒店板塊14日盤中逆市拉升&#xff0c;到發稿&#xff0c;桂林游覽、華天酒店漲停&#xff0c;張家界漲超8%&#xff0c;君亭酒店漲超5%&#xff0c;眾信游覽、云南游覽漲逾4%。 音訊面上&#xff0c;8月10日&#xff0c;文旅部辦公廳發布康復出境團隊游覽第三批名單&#…

Profibus-DP轉modbus RTU網關modbus rtu和tcp的區別

捷米JM-DPM-RTU網關在Profibus總線側實現主站功能&#xff0c;在Modbus串口側實現從站功能。可將ProfibusDP協議的設備&#xff08;如&#xff1a;EH流量計、倍福編碼器等&#xff09;接入到Modbus網絡中&#xff1b;通過增加DP/PA耦合器&#xff0c;也可將Profibus PA從站接入…

【計算機網絡】Udp詳解

前言 上幾文章我們講解了應用層協議Http和Https&#xff0c;要知道應用層協議有很多&#xff0c;這些都是程序員自己定制的&#xff0c;而真正要傳輸的時候&#xff0c;是要在操作系統的傳輸層進行的&#xff0c;今天我們就來學習一下傳輸層協議Udp的 標識一個通信 要進行跨…

MySQL 深度分頁優化

MySQL 深度分頁優化 理解總結&#xff1a; 分頁使用limit &#xff0c;前提是要排序好的數據&#xff0c;這時候&#xff0c;就推薦使用帶索引的字段排序&#xff0c;因為索引是天然有序的&#xff0c;不需要像是無序的字段一樣&#xff0c;全表掃描&#xff0c;如果太大的話…

“深入探究JVM:解密Java虛擬機的工作原理“

標題&#xff1a;深入探究JVM&#xff1a;解密Java虛擬機的工作原理 摘要&#xff1a;本文將深入探究Java虛擬機&#xff08;JVM&#xff09;的工作原理&#xff0c;包括JVM的組成部分、類加載過程、運行時數據區域、垃圾回收機制以及即時編譯器等。通過解密JVM的工作原理&…

js加密解決方案1:在AutoJS中實現Promise的必要性、好處與缺點

AutoJS是一款強大的Android自動化工具&#xff0c;可以幫助用戶編寫腳本來實現手機自動化操作。然而&#xff0c;它的加密代碼只支持ES5語法&#xff0c;不支持許多ES6的新特性&#xff0c;如Promise等功能。如果想在ES5語法環境中使用ES6的一些新特性&#xff0c;就需要自己實…

汽車上的電源模式詳解

① 一般根據鑰匙孔開關的位置來確定整車用電類別&#xff0c;汽車上電源可以分為常電&#xff0c;IG電&#xff0c;ACC電 1&#xff09;常電。常電表示蓄電池和發電機輸出直接供電&#xff0c;即使點火開關在OFF檔時&#xff0c;也有電量供應。一般來講模塊的記憶電源及需要在車…

Python系統學習1-7-字典

一、字典 1、概念及內存圖 列表&#xff1a;由一系列變量組成的可變序列容器字典&#xff1a;由一系列鍵值對組成的可變散列容器字典優勢&#xff1a;利用&#xff08;內存&#xff09;空間&#xff0c;換取&#xff08;CPU查找&#xff09;時間 鍵key 必須唯一且為不…