Codeforces Round 1022 (Div. 2)(ABC)

A. Permutation Warm-Up

翻譯:

? ? ? ? 對于長度為 n?的排列 p,我們定義函數:
????????f(p)=\sum\limits_{i=1}^n|p_i-i|
????????給你一個數 n。你需要計算函數 f(p) 在考慮從 1 到 n 的所有可能的數字排列時,可以取多少個不同的值。

思路:

? ? ? ? 按序排列時和為0,當有一端值+1,必有一端值-1即sum+2。由此會得到的和都為偶數。答案為sum_max/2+1。

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 2e5+10;void solve(){int n;cin>>n;int res = 0;for (int l=n,i=1;i<=n;i++){res+=abs(l-i);l--;}cout<<res/2+1<<endl;
}int main(){// 關閉輸入輸出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科學計數法// cout<<fixed;// 四舍五入中間填保留幾位小數,不填默認// cout.precision();int t;cin>>t;while (t--){solve();}return 0;
}



B. SUMdamental Decomposition

翻譯:

? ? ? ? 在你最近的一個生日上,你的好朋友莫里斯送給你一對數字 n
?和 x?,并要求你構造一個長度為 n 的正數數組 a ,使得 a_1\oplus a_2 \oplus \cdots \oplus a_n=x

????????這個任務對你來說似乎太簡單了,因此你決定給莫里斯一個回禮,在所有這樣的數組中構造一個元素之和最小的數組。你馬上想到了一個合適的數組;但是,由于寫下來太費時間,莫里斯只能選擇元素之和。

思路:

? ? ? ? 一個數可以被分成多個不同二的冪次相加。

? ? ? ? 要讓和足夠小,可先將 x 拆成不同的2的冪次數,再對還要填的數進行添加。設還要填 n 個數。

????????當 n 為偶數時,都為1。

? ? ? ? 帶 n 為奇數時,先摘掉一個 num,其余都為1。num 對于被拆分的2的冪次數二進制有數位0為0情況,則可將該數與num都+1,否則num為2,找個數也+2。

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 2e5+10;
void solve(){ll n,x;cin>>n>>x;if (n==1 && x==0){cout<<-1<<"\n";return;}ll res = x;ll tmp = x,cnt=0;// 有兩個及以上的1嗎while (tmp){if (tmp%2==1){cnt++;}tmp/=2;}n = max(0ll,n-cnt);if (n%2==0){res += n;}else if (n%2==1){res+=n-1;if (x==1 || x==0) res+=4;else res +=2;}cout<<res<<"\n";
}int main(){// 關閉輸入輸出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科學計數法// cout<<fixed;// 四舍五入中間填保留幾位小數,不填默認// cout.precision();int t;cin>>t;while (t--){solve();}return 0;
}



C. Neo's Escape

翻譯:

????????尼奧想要逃離母體。在他面前,有 n 個按鈕排成一排。每個按鈕的權重都是一個整數:a_1,a_2,...,a_n

????????尼奧無法移動,但他可以創造和移動克隆人。這意味著他可以以任意順序執行以下兩種類型的操作,數量不限:

  • 在特定按鈕前創建一個克隆體。
  • 將現有克隆體向左或向右移動一個位置。

????????只要克隆體出現在另一個尚未按下的按鈕前,無論它是被創建還是被移動,它都會立即按下該按鈕。如果按鈕已經被按下,克隆人就什么也做不了--按鈕只能按一次。

????????要想讓尼奧逃脫,他需要按順序按下所有按鈕,使它們的權重序列不遞增--也就是說,如果??b_1,b_2,...,b_n?是按順序按下的按鈕的權重,那么必須成立:b_1\geq b_2\geq\cdots\geq b_n

????????你的任務是確定尼歐需要創建的最小克隆數,以便按有效順序按下所有按鈕。

思路:

? ? ? ? 不考慮有權值相同點的情況下,當一個點值為局部最大值時,它是必定要被創建的,而不是的則可通過局部最大值的左右移動被合理按下。

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 2e5+10;void solve(){int n;cin>>n;int pre = -1;vector<int> a={0};for (int num,i=0;i<n;i++){cin>>num;if (num!=pre){a.push_back(num);}pre = num;}a.push_back(0);int res = 0;for (int i=1;i<a.size()-1;i++){res+=(a[i]>a[i-1] && a[i]>a[i+1]);}cout<<res<<"\n";
}int main(){// 關閉輸入輸出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科學計數法// cout<<fixed;// 四舍五入中間填保留幾位小數,不填默認// cout.precision();int t;cin>>t;while (t--){solve();}return 0;
}

?

??有建議可以評論,我會積極改進qwq。

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

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

相關文章

數據結構------C語言經典題目(6)

1.數據結構都學了些什么&#xff1f; 1.基本數據類型 算數類型&#xff1a; char&#xff08;字符&#xff09;、int&#xff08;整數&#xff09;、float&#xff08;單精度浮點數&#xff09;、double&#xff08;雙精度浮點數&#xff09;等。 枚舉類型&#xff1a; enum…

如何封裝一個線程安全、可復用的 HBase 查詢模板

目錄 一、前言&#xff1a;原生 HBase 查詢的痛點 &#xff08;一&#xff09;連接管理混亂&#xff0c;容易造成資源泄露 &#xff08;二&#xff09;查詢邏輯重復&#xff0c;缺乏統一的模板 &#xff08;三&#xff09;多線程/高并發下的線程安全性隱患 &#xff08;四…

【中間件】bthread_基礎_TaskControl

TaskControl 1 Definition2 Introduce**核心職責** 3 成員解析**3.1 數據結構與線程管理****3.2 任務調度與負載均衡****3.3 線程停放與喚醒&#xff08;ParkingLot&#xff09;****3.4 統計與監控** 4 **工作流程**5 **設計亮點**6 **使用場景示例**7 **總結**8 學習過程中的疑…

win11 終端 安裝ffmpeg 使用終端Scoop

1、安裝scoop (Windows 包管理器) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb get.scoop.sh | iex 2、使用scoop來安裝ffmpeg scoop install ffmpeg 3、測試一下ffmpeg&#xff0c;將Mp3文件轉為Wav文件 ffmpeg -i A.mp3 A.wav 然后我們就看到A.wav生成…

力扣838.推多米諾隨筆

“生活就像海洋&#xff0c;只有意志堅強的人&#xff0c;才能到達彼岸。”—— 馬克思 題目 n 張多米諾骨牌排成一行&#xff0c;將每張多米諾骨牌垂直豎立。在開始時&#xff0c;同時把一些多米諾骨牌向左或向右推。 每過一秒&#xff0c;倒向左邊的多米諾骨牌會推動其左側…

超級好用的??參數化3D CAD 建模??圖形庫 (CadQuery庫介紹)

CadQuery 庫詳細介紹?? ??CadQuery?? 是一個基于 ??Python?? 的 ??參數化 3D CAD 建模?? 庫&#xff0c;允許用戶通過編寫代碼&#xff08;而不是傳統 GUI&#xff09;來創建精確的 ??3D 模型??。它特別適用于 ??自動化設計、機械工程、3D 打印?? 等場景…

HBM的哪些事

命令操作 這也許是DDR往HBM演進的一些奇淫技巧。 本篇內容屬于雜談&#xff0c;關于HBM的奇淫技巧&#xff0c;隨后出專題介紹。

Python基于深度學習的網絡輿情分析系統(附源碼,部署)

大家好&#xff0c;我是Python徐師兄&#xff0c;一個有著7年大廠經驗的程序員&#xff0c;也是一名熱衷于分享干貨的技術愛好者。平時我在 CSDN、掘金、華為云、阿里云和 InfoQ 等平臺分享我的心得體會。 &#x1f345;文末獲取源碼聯系&#x1f345; 2025年最全的計算機軟件畢…

滑動窗口leetcode 209和76

一、leetcode 209. 長度最小的子數組 代碼&#xff1a; class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int n nums.size();int left 0;int sum 0;int res 100001;for(int right 0;right <n;right){sum nums[right];while(s…

node.js 實戰——mongoDB 續一

mongoDB的基本指令 進入mongodb mongo顯示當前的所有數據庫 show dbs # 或者 show databases切換數據庫/進入指定數據庫 使用這個命令的時候&#xff0c;是不要求這個數據庫是否創建 use 數據庫名顯示當前數據庫 db顯示數據庫中所有集合 show collections數據庫的CRUD的…

SVMSPro平臺獲取Websocket視頻流規則

SVMSPro平臺獲取Websocket視頻流規則 Websocket 的服務端口為&#xff1a;53372&#xff0c;如需要公網訪問需要開啟這個端口 這里講的是如何獲取長效URL&#xff0c;短效&#xff08;時效性&#xff09;URL也支持&#xff0c;下回講 一、如何獲取Websocket實時流視頻 ws:/…

Arduino按鍵開關編程詳解

一、按鍵開關的基本原理與硬件連接 1.1 按鍵開關的工作原理 按鍵開關是一種常見的輸入設備&#xff0c;其核心原理基于機械觸點的閉合與斷開。當用戶按下按鍵時&#xff0c;內部的金屬片會連接電路兩端&#xff0c;形成通路&#xff1b;松開按鍵后&#xff0c;金屬片在彈簧作…

我的日記雜文

Sequoia sempervirens 北美紅杉樹 Troll 洞穴巨人 喜歡在網上搞事的人 piss off 滾開 讓人惱火的 歐洲美甲 60euor - 30euro 拖車 mobie house Motel 汽車旅館 Minoxidil 米諾地爾 Health insurance 醫療保險 casetify 香港手機品牌 coolant 汽車防凍液 Auto tint film 汽車貼…

數字智慧方案5867丨智慧建造(BIM技術智慧工地)在施工階段的實踐與應用方案(90頁PPT)(文末有下載方式)

資料解讀&#xff1a;智慧建造(BIM技術智慧工地)在施工階段的實踐與應用方案 詳細資料請看本解讀文章的最后內容。 在當今的建筑行業中&#xff0c;智慧建造已成為提升施工效率和質量的關鍵手段。隨著科技的進步&#xff0c;智慧建造結合了物聯網、大數據、人工智能等技術&am…

機器學習中的標簽策略:直接標簽、代理標簽與人工數據生成

機器學習中的標簽策略&#xff1a;直接標簽、代理標簽與人工數據生成 摘要 本文深入探討了機器學習領域中標簽的關鍵概念&#xff0c;包括直接標簽與代理標簽的定義、優缺點比較&#xff0c;以及人工生成數據的相關內容。通過詳細實例和練習&#xff0c;幫助讀者理解如何選擇…

從0搭建Transformer

1. 位置編碼模塊&#xff1a; import torch import torch.nn as nn import mathclass PositonalEncoding(nn.Module):def __init__ (self, d_model, dropout, max_len5000):super(PositionalEncoding, self).__init__()self.dropout nn.Dropout(pdropout)# [[1, 2, 3],# [4, 5…

【Bootstrap V4系列】學習入門教程之 表格(Tables)和畫像(Figure)

Bootstrap V4系列 學習入門教程之 表格&#xff08;Tables&#xff09;和畫像&#xff08;Figure&#xff09; 表格&#xff08;Tables&#xff09;一、Examples二、Table head options 表格頭選項三、Striped rows 條紋行四、Bordered table 帶邊框的表格五、Borderless table…

在C# WebApi 中使用 Nacos02: 配置管理、服務管理實戰

一、配置管理 1.添加一個新的命名空間 這里我都填寫為publicdemo 2.C#代碼配置啟動 appsetting.json加上&#xff1a; (nacos默認是8848端口) "NacosConfig": {"ServerAddresses": [ "http://localhost:8848" ], // Nacos 服務器地址"Na…

如何搭建spark yarn 模式的集群集群。

下載 App 如何搭建spark yarn 模式的集群集群。 搭建Spark on YARN集群的詳細步驟 Spark on YARN模式允許Spark作業在Hadoop YARN資源管理器上運行&#xff0c;利用YARN進行資源調度。以下是搭建步驟&#xff1a; 一、前提條件 已安裝并配置好的Hadoop集群&#xff08;包括HDF…

C++--入門基礎

C入門基礎 1. C的第一個程序 C繼承C語言許多大多數的語法&#xff0c;所以以C語言實現的hello world也可以運行&#xff0c;C中需要把文件定義為.cpp&#xff0c;vs編譯器看是.cpp就會調用C編譯器編譯&#xff0c;linux下要用g編譯&#xff0c;不再是gcc。 // test.cpp #inc…