牛客周賽 Round 100

A小紅的雙排列

?沒什么好說的 直接 1 1 2?2 3 3 4 4……

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int n;
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin與cout綁定cin >> n;for (int i = 1; i <= n; i++) {cout << i << " " << i<< " ";}cout << endl;return 0;
}

B小紅的雙排列拆分

?就要注意是子序列,順序不能倒,然后就是標記已經打印的數,并且記住他的位置(或使他們變為-1)

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
int n;
using namespace std;
int a[200];
int b[100];
int main() {ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin與cout綁定int s;cin >> n;for (int i = 1; i <= n*2; i++) {cin >> a[i];}for (int i = 1; i <= n*2; i++) {if (b[a[i]] == 0) {cout << a[i] << " ";b[a[i]]++;a[i] = -1;}}cout << endl;for (int i = 1; i <= n*2; i++) {if (a[i] != -1) {cout << a[i] << " ";}}cout << endl;return 0;
}

C小紅的雙排列刪除

?我一開始寫煩了,就不講之前的方法了,將一個簡單的。

就是看從第一個開始能不能找到連續的使其消除 例 1 ……1 2……2 3……3

之前代碼:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int t, n;
int a[400005];
int main() {ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin與cout綁定cin >> t;while (t--) {cin >> n;for (int i = 0; i < n*2; i++) {cin >> a[i];}stack<int> q;vector<bool> f(n+1);for (int i = 1; i < n; i++) {f[i] = false;}for (int i = 0; i < n * 2; i++) {if (q.empty()) {q.push(a[i]);f[a[i]] = true;}else {if(f[a[i]]==false){f[a[i]] = true;q.push(a[i]);}else{while(!q.empty()&&q.top()!=a[i]) {f[q.top()] = false;q.pop();}if(!q.empty()){f[q.top()] = false;q.pop();}}}}if (q.empty()) {cout << "Yes" << endl;}else {cout << "No" << endl;}}return 0;
}

之后簡單代碼:?

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int t, n;
int a[400005];
int main() {ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin與cout綁定cin >> t;while (t--) {cin >> n;for (int i = 0; i < n * 2; i++) {cin >> a[i];}int j = 0;for (int i = 1; i < n * 2; i++) {if (a[j] == a[i]) {j = i + 1;i++;}}if (j>=n*2) {cout << "Yes" << endl;}else {cout << "No" << endl;}}return 0;
}

?D小紅的雙排列權值

?

不難發現: 1 2 1 2/ 2 1 1 2 / 1 2 2 1/2 1 2 1 怎么交換權值都不會遍

只有:1 1 2 2? ? ? 1 2怎樣交換權值都是變多 (a[2]-a[1])*2

所以找到距離最遠的兩個就解決了

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int n;
int a[400005];
int b[200005];
bool c[200005];
ll sum = 0;
int main() {ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin與cout綁定cin >> n;for (int i = 1; i <= n*2; i++) {cin >> a[i];}int q = 0;for (int i = 1; i <= n*2; i++) {if (b[a[i]] == 0) {b[a[i]] = i;}else {sum += i - b[a[i]] - 1;if (q == 0) {q = i;}}}int qq = 0;for (int i = n * 2; i >=1; i--) {if(c[a[i]]==false){c[a[i]] = true;}else {qq = i;break;}}if (q < qq) {cout << (qq - q) * 2 + sum << endl;}else {cout << sum << endl;}return 0;
}

E小紅的雙排列刪除得分

動態規劃題:? ? ? ? ? ? dp[i] = max(dp[i], dp[c[a[i]]] + b[i] - b[c[a[i]] - 1]); (有點小難)

?

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int n;
ll dp[200005];
int h = 0;
ll a[400005], b[400005], c[200005];
int main() {ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin與cout綁定cin >> n;a[0] = 0;for (int i = 1; i <= 2*n; i++) {cin >> a[i];b[i] = b[i - 1] + a[i];}for (int i = 1; i <=2* n; i++) {dp[i] = dp[i - 1];if (c[a[i]]) {dp[i] = max(dp[i], dp[c[a[i]]] + b[i] - b[c[a[i]] - 1]);}c[a[i]] = i;}cout << dp[n * 2] << endl;return 0;
}

F小紅的雙排列期望(easy)

這題好像是dp題,但我沒有用dp來寫

我是直接算,唯一要知道的就是除法的逆序元

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
ll mod = 1e9 + 7;
int n;
ll chu(ll w, int k) {ll sum0 = 1;while (k>0) {if (k % 2 != 0) {sum0 = (sum0 * w) % mod;}w = (w * w) % mod;k /= 2;}return sum0;
}
ll b[102];
int main() {ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin與cout綁定cin >> n;vector<int>a(n*2);for (int i = 0; i < n*2; i++) {cin >> a[i];}sort(a.begin(), a.end());b[1] = 1;for (int i = 2; i <=100; i++) {b[i] = chu(i, mod - 2);}ll sum = 0;for (int i = 0; i < n * 2; i++) {sum = (sum + (i + 2) / 2 * 100 * b[a[i]] % mod) % mod;}cout << sum << endl;return 0;
}

?G?小紅的雙排列期望(hard)

dp題,但我有點小菜,目前還=沒有學過這種dp,會的大佬可以留言告訴我?

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

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

相關文章

【Dv3Admin】菜單管理集成阿里巴巴自定義矢量圖標庫

圖標選擇是后臺管理系統中高頻功能。相比用 Element UI、Ant Design 等自帶的 icon 集&#xff0c;阿里巴巴 iconfont.cn 支持上傳和管理自定義圖標&#xff0c;并生成矢量字體&#xff0c;便于統一維護和擴展。 本文目標是支持自定義 iconfont 圖標的展示和選擇&#xff0c;并…

NO.7數據結構樹|線索二叉樹|樹森林二叉樹轉化|樹森林遍歷|并查集|二叉排序樹|平衡二叉樹|哈夫曼樹|哈夫曼編碼

線索二叉樹 線索二叉樹的基本概念 為了解決無法直接找到該結點在某種遍歷序列中的前驅和后繼結點的問題&#xff0c; 出現了線索二叉樹。 一個二叉樹通過如下的方法“穿起來” &#xff1a; 所有原本為空的右(孩子)指針改為指向該節點在某種遍歷序列中的后繼&#xff0c; 所有原…

R語言基礎| 基本圖形繪制(條形圖、堆積圖、分組圖、填充條形圖、均值條形圖)

目錄 一、前言 二、條形圖 1. 簡單的條形圖 2.堆積、分組和填充條形圖(柱狀圖) &#xff08;1&#xff09;堆積圖&#xff0c;對Improved進行堆積&#xff0c;注意position“stack” &#xff08;2&#xff09;分組圖&#xff0c;對Improved進行分組&#xff0c;注意posit…

SegNet:一種用于圖像分割的深度卷積編碼器解碼器架構

教程/講解視頻點擊文末名片1、什么是語義分割&#xff0c;什么是FCN 我們提出了一種新穎且實用的深度全卷積神經網絡架構&#xff0c;用于語義像素級分割&#xff0c;命名為SegNet。 語義分割是指為圖像中的每個像素分配一個類別標簽&#xff08;如道路、天空、汽車&#xff09…

PyTorch 數據加載全攻略:從自定義數據集到模型訓練

目錄 一、為什么需要數據加載器&#xff1f; 二、自定義 Dataset 類 1. 核心方法解析 2. 代碼實現 三、快速上手&#xff1a;TensorDataset 1. 代碼示例 2. 適用場景 四、DataLoader&#xff1a;批量加載數據的利器 1. 核心參數說明 2. 代碼示例 五、實戰&#xff1…

Python--plist文件的讀取

Python練習&#xff1a;讀取Apple Plist文件 Plist文件簡介 ??定義??&#xff1a;Apple公司創建的基于XML結構的文件格式??特點??&#xff1a;采用XML語法組織數據&#xff0c;可存儲鍵值對、數組等結構化信息文件擴展名??&#xff1a;.plist應用場景: ??iOS系統:?…

JAVA幾個注解記錄

在Java中&#xff0c;Data、AllArgsConstructor和NoArgsConstructor是Lombok庫提供的注解&#xff0c;用于自動生成Java類中的樣板代碼&#xff08;如getter、setter、構造函數等&#xff09;&#xff0c;從而減少冗余代碼&#xff0c;提高開發效率。以下是它們的詳細功能和使用…

js對象簡介、內置對象

對象、內置對象 jarringslee 對象 對象&#xff08;object&#xff09;是js的一種引用數據類型&#xff0c;是一種無序的數據集合“ul”&#xff08;類比于數組&#xff0c;有序的數據集合“ol”&#xff09;。 基本上等于結構體。 對象的聲明 //基本方法 let 對象名 {聲…

【工程篇】07:如何打包conda環境并拷貝到另一臺服務器上

這是一份以名為 qwen2.5-vl 的 Conda 環境為例的詳細操作手冊&#xff0c;指導您如何將其打包并遷移至另一臺服務器。操作手冊&#xff1a;遷移 Conda 環境 qwen2.5-vl 至新服務器 本文檔將提供兩種有效的方法來遷移您的 qwen2.5-vl 環境。請根據您的具體需求和服務器條件選擇最…

rustdesk遠控電腦替代todesk,平替向日葵等軟件

rustdesk網頁端遠控電腦docker run --restart always \ --privileged \ -p 9000:9000 \ -p 21114:21114 \ -p 21115:21115 \ -p 21116:21116 \ -p 21116:21116/udp \ -p 21117:21117 \ -p 21118:21118 \ -p 21119:21119 \ -e KEYj8muHpzr2HK00zm9D94b1UFkaJ1bEiWsyA1qxb1nOA \ …

板凳-------Mysql cookbook學習 (十二--------1)

第9章 存儲例程&#xff0c;觸發器和計劃事件 326 9.0 概述 326 9.1 創建復合語句對象 329 mysql> -- 恢復默認分隔符 mysql> DELIMITER ; mysql>mysql> DROP FUNCTION IF EXISTS avg_mail_size; Query OK, 0 rows affected (0.02 sec)mysql> DELIMITER $$ mysq…

密碼學系列文(3)--分組密碼

一、分組密碼概述分組密碼是許多系統安全的一個重要組成部分&#xff0c;可用于構造&#xff1a;擬隨機數生成器流密碼消息認證碼(MAC)和雜湊函數消息認證技術、數據完整性機構、實體認證協議以及單鑰數字簽字體制的核心組成部分應用中對于分組密碼的要求&#xff1a;安全性運行…

WCDB soci 查詢語句

測試代碼 #pragma once #include <string> #include <vector>// Assume OperationLog is a struct representing a row in the table struct OperationLog {int id;std::string op_type;std::string op_subtype;std::string details;std::string timestamp; };clas…

lesson16:Python函數的認識

目錄 一、為什么需要函數&#xff1f; 1. 拒絕重復造輪子 2. 讓代碼像句子一樣可讀 3. 隔離變化&#xff0c;降低維護成本 二、函數的定義&#xff1a;編寫高質量函數的5個要素 基本語法框架 1. 函數命名的黃金法則&#xff08;PEP8規范&#xff09; 2. 不可或缺的文檔…

通過輪詢方式使用LoRa DTU有什么缺點?

在物聯網系統中&#xff0c;DTU&#xff08;Data Transfer Unit&#xff09;通常用于通過485或M-Bus等接口抄讀子設備的數據&#xff0c;并將這些數據傳輸到平臺側。然而&#xff0c;如果DTU采用輪詢方式與平臺通信&#xff0c;會帶來一系列問題&#xff0c;尤其是在功耗和系統…

Syntax Error: Error: PostCSS received undefined instead of CSS string

報錯&#xff1a;Syntax Error: Error: PostCSS received undefined instead of CSS string npm rebuild node-sass報錯&#xff1a;npm i canvas 報錯 canvas2.11.2 run install node-pre-gyp install --fallback-to-build --update-binary npm install canvas --canvas_binar…

人工智能之數學基礎:概率論和數理統計在機器學習的地位

概率和統計的概念概率統計是各類學科中唯一一門專門研究隨機現象的規律性的學科&#xff0c;隨機現象的廣泛性決定了這一學科的重要性。概率論是數學的分支&#xff0c;它研究的是如何定量描述隨機現象及其規律。我們之前經常在天氣軟件上看到&#xff1a;“今天下雨的概率是95…

第十四章 Stream API

JAVA語言引入了一個流式Stream API,這個API對集合數據進行操作&#xff0c;類似于使用SQL執行的數據庫查詢&#xff0c;同樣可以使用Stream API并行執行操作。Stream和Collection的區別Collection:靜態的內存數據結構&#xff0c;強調的是數據。Stream API:和集合相關的計算操作…

Oracle數據庫各版本間的技術迭代詳解

今天我想和大家聊聊一個我們可能每天都在用&#xff0c;但未必真正了解的技術——Oracle數據庫的版本。如果你是企業的IT工程師&#xff0c;可能經歷過“升級數據庫”的頭疼&#xff1b;如果你是業務負責人&#xff0c;可能疑惑過“為什么一定要換新版本”&#xff1b;甚至如果…

論文reading學習記錄3 - weekly - 模塊化視覺端到端ST-P3

文章目錄前言一、摘要與引言二、Related Word2.1 可解釋的端到端架構2.2 鳥瞰圖2.3 未來預測2.4 規劃三、方法3.1 感知bev特征積累3.1.1 空間融合&#xff08;幀的對齊&#xff09;3.1.2 時間融合3.2 預測&#xff1a;雙路徑未來建模3.3 規劃&#xff1a;先驗知識的整合與提煉4…