CSP認證練習題目推薦(4)

思維、貪心、綜合

排隊打水

這道題目不算難,但是不注意還是會出現很多錯誤,比如結構體的書寫。以及自定義結構體排序。還有這里做的優化,使用前綴和記錄打水的等待時間,但是這里很容易出錯的點在于等待時間是應該是記錄的前一個人的前綴和。因為它不需要等待自己打水的等待時間。

#include<bits/stdc++.h>
using namespace std;
int n;
struct node{int index;int t;
}a[1010];
int s[1010];
bool cmp(node a, node b){return  a.t < b.t;
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cin >> n;for(int i = 1; i <= n; i++){cin >> a[i].t;a[i].index = i;}sort(a + 1, a + n + 1, cmp);double ans = 0;for(int i = 1; i <= n; i++){s[i] += s[i - 1] + a[i].t; //構建前綴和數組ans += s[i - 1];cout << a[i].index << " ";}cout << endl;ans /= n;cout << fixed << setprecision(2) << ans;return 0;
}

合并果子

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int n;
int main(){ios::sync_with_stdio(0);cin.tie(0);cin >> n;priority_queue<ll, vector<ll>, greater<>> q;for(int i = 0; i < n; i++){int num;cin >> num;q.push(num);}ll ans = 0;while(q.size() >= 2){ll a = q.top(); q.pop();ll b = q.top(); q.pop();ans += a + b;q.push(a + b);}cout << ans;return 0;
}

平均分配

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
struct node{ll b;ll c;ll diff;
}pr[200001];
bool cmp(node f, node l){return f.diff > l.diff;
}
int main(){ios::sync_with_stdio(0);cin.tie(0);int n;cin >> n;for(int i = 1; i <= 2*n; i++){cin >> pr[i].b;}for(int i = 1; i <= 2*n; i++){cin >> pr[i].c;pr[i].diff = pr[i].b - pr[i].c; // 計算差值,降序排列,前n個數就是b>c的,后n個用n即可}sort(pr + 1, pr + 2 * n + 1, cmp);ll ans = 0;for(int i = 1; i <= n; i++){ans += pr[i].b;}for(int i = n + 1; i <= 2*n; i++){ans += pr[i].c;}cout << ans;return 0;
}

夢境巡查

#include<bits/stdc++.h>
using namespace std;
int n;
int a[100010], w[100010], b[100010];
void get_min(int lost){int begin = 0;int cur = 0;for(int i = 0; i <= n; i++){if(cur < a[i]){ // 當前值小于a[i]begin += a[i] - cur; // 初始值加上a[i] - curcur = a[i];}cur -= a[i];if(i != lost - 1) cur += b[i + 1];}w[lost] = begin;
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cin >> n;for(int i = 0; i <= n; i++){cin >> a[i];}for(int i = 1; i <= n; i++){cin >> b[i];}for(int i = 1; i <= n; i++){get_min(i);cout << w[i] << " ";}return 0;
}

雙指針,高精度,離散化

消消樂

#include<bits/stdc++.h>
using namespace std;
int main(){ios::sync_with_stdio(0);cin.tie(0);string str;cin >> str;int l = 0;int r = str.size() - 1;int ans = str.size();while(l < r){if(str[l] == 'A' && str[r] == 'B'){ans -= 2;l++;r--;}else if(str[l] == 'B') l++;else if(str[r] == 'A') r--;}cout << ans;return 0;
}

A+B(高精度)

#include<bits/stdc++.h>
using namespace std;
vector<int> add(vector<int> &a, vector<int> &b){vector<int> c;int t = 0;for(int i = 0; i < a.size() || i < b.size(); i++){if(i < a.size()) t += a[i];if(i < b.size()) t += b[i];c.push_back(t%10);t /= 10;}if(t) c.push_back(1);return c;
}
int main(){ios::sync_with_stdio(0);cin.tie(0);vector<int> a, b;string sa, sb;cin >> sa >> sb;for(int i = sa.size() - 1; i >= 0; i--) a.push_back(sa[i] - '0');for(int i = sb.size() - 1; i >= 0; i--) b.push_back(sb[i] - '0');vector<int> c = add(a, b);for(int i = c.size() - 1; i >= 0; i--) cout << c[i];return 0;
}

區間和

#include<bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
const int N = 300010;
int n, m;
int a[N], s[N];
vector<int> alls;
vector<PII> add, query;
int find(int x){int l = 0, r = alls.size() - 1;while(l < r){int mid = l + r >> 1;if(alls[mid] >= x) r = mid;else l = mid + 1;}return r + 1;
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cin >> n >> m;for(int i = 0; i < n; i++){int x, c;cin >> x >> c;add.push_back({x, c});alls.push_back(x);}for(int i = 0; i < m; i++){int l, r;cin >> l >> r;query.push_back({l, r});alls.push_back(l);alls.push_back(r);}sort(alls.begin(), alls.end());alls.erase(unique(alls.begin(), alls.end()), alls.end());for(auto item : add){int x = find(item.first);a[x] += item.second;}for(int i = 1; i <= alls.size(); i++) s[i] = s[i - 1] + a[i];for(auto item : query){int l = find(item.first), r = find(item.second);cout << s[r] - s[l - 1] <<endl;}return 0;
}

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

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

相關文章

MySQL 視圖的更新與刪除:從操作規范到風險防控

MySQL 視圖的更新與刪除&#xff1a;從操作規范到風險防控 視圖作為 “虛擬表”&#xff0c;其更新與刪除操作常常讓開發者困惑 ——“為什么更新視圖會報錯&#xff1f;”“刪除視圖會不會弄丟數據&#xff1f;” 實際上&#xff0c;80% 的視圖操作問題都源于對 “視圖依賴基表…

C 語言實現 I.MX6ULL 點燈(續上一篇)、SDK、deep及bsp工程管理

目錄 一、匯編點燈轉 C 語言實現 1. 關鍵字&#xff1a;volatile 2. 寄存器地址定義&#xff08;兩種方式&#xff09; &#xff08;1&#xff09;直接宏定義地址 &#xff08;2&#xff09;結構體封裝寄存器&#xff08;優化訪問&#xff09; 3. 核心功能代碼 &#xff…

DevOps實戰(7) - 使用Arbess+GitPuk+sourcefare實現Node.js項目自動化部署

Arbess 是一款國產開源免費的 CI/CD 工具&#xff0c;工具支持一鍵部署&#xff0c;頁面簡潔易用。本文將詳細介紹如何安裝配置使用GitPuk、sourcefare、Arbess系統&#xff0c;使用流水線拉取GitPuk源碼、使用sourcefare代碼掃描、構建安裝包并進行主機部署。 1、GitPuk 安裝…

算法,蒜鳥蒜鳥-P1-理解“雙指針”

歡迎來到啾啾的博客&#x1f431;。 記錄學習點滴。分享工作思考和實用技巧&#xff0c;偶爾也分享一些雜談&#x1f4ac;。 有很多很多不足的地方&#xff0c;歡迎評論交流&#xff0c;感謝您的閱讀和評論&#x1f604;。 目錄引言1 雙指針&#xff1a;Two Pointers1.1 左右指…

使用cookiecutter創建python項目

一、關于Python項目結構Python 項目并沒有完全統一的 “固定結構”&#xff0c;但行業內有一些廣泛遵循的約定俗成的目錄結構&#xff08;尤其針對可分發的包或大型項目&#xff09;。同時&#xff0c;確實有工具可以快速生成這些標準化結構&#xff0c;提高開發效率&#xff0…

臺積電生態工程深度解析:從晶圓廠到蜂巢的系統架構遷移

當半導體巨頭將工廠視為生態系統&#xff0c;用工程思維解決環境問題概述&#xff1a;生態系統的工程化再造臺積電近日開展的"積蜜"項目絕非簡單的企業CSR行為&#xff0c;而是一場將生態系統視為復雜系統進行工程化改造的技術實踐。本文將從系統架構、數據監控、循環…

從零實現一個簡易計算器

最近在刷算法題時&#xff0c;遇到了實現計算器的問題。一開始覺得很簡單&#xff0c;但真正動手實現時才發現其中有很多細節需要考慮。今天就來分享一下我的實現思路和學到的經驗。問題分析我們需要實現一個能夠處理加減乘除四則運算的計算器&#xff0c;要正確處理運算符的優…

Actix-webRust Web框架入門教程

文章目錄引言Actix-web是什么&#xff1f;準備工作你的第一個Actix-web應用理解代碼結構處理請求和響應接收請求數據返回響應中間件 - 增強你的應用狀態管理和依賴注入實用示例&#xff1a;構建RESTful API測試你的Actix-web應用部署Actix-web應用結語額外資源引言 嘿&#xf…

若依框架前端通過 nginx docker 鏡像本地運行

1. 前言 項目運行過程圖&#xff1a;對于前端項目通過命令 npm run build 打包后&#xff0c;無法直接運行。存在如下錯誤&#xff1a;可以通過配置 nginx 服務器運行前端項目解決如上問題。 2. Nginx 運行 采用 docker 鏡像的方式運行&#xff0c;docker-compose.yml 文件內容…

淺聊一下HTTP協議

在日常上網瀏覽網頁、刷視頻時&#xff0c;背后都離不開 HTTP 協議的支持。作為 Web 世界的 “交通規則”&#xff0c;它負責服務器和客戶端瀏覽器之間的數據傳輸。這篇文章就帶大家全面了解 HTTP 協議&#xff0c;從基本概念到通信細節&#xff0c;再到安全相關的 HTTPS&#…

機器人控制器開發(定位——cartographer ros2 使用2)

文章總覽 1 純定位模式 當完成建圖后&#xff0c;會生成pbstream格式的地圖文件 配置純定位模式的lua腳本 backpack_2d_localization.lua include "backpack_2d.lua"TRAJECTORY_BUILDER.pure_localization_trimmer {max_submaps_to_keep 3, } POSE_GRAPH.optimi…

《大數據之路1》筆記3:數據管理

一 元數據 1.1 元數據概述 定義&#xff1a; 元數據是關于數據的數據&#xff0c;元數據打通了源數據、數據倉庫、數據應用&#xff0c;記錄了數據從生產到消費的全部過程。元數據主要記錄數據倉庫中模型的定義、各層級間的映射關系、監控數據倉庫的數據狀態和ETL的任務運行狀態…

排序實現java

排序算法概述Java中實現排序可以通過多種方式&#xff0c;包括內置方法、自定義算法或使用第三方庫。常見的排序算法有冒泡排序、選擇排序、插入排序、快速排序、歸并排序等。使用Arrays.sort()方法對于數組排序&#xff0c;Java提供了Arrays.sort()方法&#xff0c;支持對基本…

51c大模型~合集182

我自己的原文哦~ https://blog.51cto.com/whaosoft/14174587 #LaV-CoT 超越GPT-4o&#xff0c;螞蟻集團與南洋理工大學提出&#xff1a;首個語言感知的視覺思維鏈 隨著大型視覺語言模型&#xff08;VLM&#xff09;的飛速發展&#xff0c;它們在處理復雜的視…

C++ STL之deque的使用和模擬實現

目錄 deque 核心本質與定位 與stack和queue的關系: deque的使用 deque的底層實現 deque的原理介紹 deque的缺陷 總結: deque deque文檔 : deque 翻譯: 雙端隊列 deque&#xff08;通常發音類似“deck”&#xff09;是“double-ended queue”&#xff08;雙端隊列&…

布草洗滌廠設備租賃押金原路退回系統—東方仙盟

設備租賃狀態設備管理添加設備設備收押金設備退押金在布草洗滌行業的運營版圖中&#xff0c;設備租賃是連接廠商與客戶的重要紐帶&#xff0c;而押金的收取與退還則是這一環節中關乎信任與效率的關鍵節點。未來之窗布草洗滌廠深諳此道&#xff0c;專為設備租賃業務打造的 “押金…

換源rocklinux和centos

一、Rockylinux換源&#xff0c;國外的源換成國內的源#nmcli connection modify ens33 ipv4.addresses 192.168.121.11 ipv4.gateway 192.168.121.2 ipv4.method manual ipv4.dns 114.114.114.114 connection.autoconnect yes修改地址#systemctl stop firewalld#systemctl diab…

第一部分:服務器硬件配置

目錄1.1 服務器上架與連線1.2 啟用CPU虛擬化功能&#xff08;BIOS設置&#xff09;1.3 配置RAID存儲步驟1&#xff1a;進入RAID配置界面步驟2&#xff1a;確認RAID控制器信息步驟3&#xff1a;創建系統RAID&#xff08;用于安裝ESXi&#xff09;步驟4&#xff1a;創建數據RAID&…

手搓一個 DELL EMC Unity存儲系統健康檢查清單

寫在前面對于DELL EMC存儲系統Unity的一些深度的健康檢查通過Web的Unisphere圖形化界面是做不到的&#xff0c;圖形化界面只能看到是否有告警&#xff0c;物理的東西是否有問題的&#xff0c;邏輯的Pool和LUN等是否ready&#xff0c;再深入的潛在的問題是查不到的。另外&#x…

【數據結構】二叉樹的概念

01 概念定義&#xff1a;二叉樹既然叫二叉樹&#xff0c;顧名思義即度最大為2的樹稱為二叉樹。 它的度可以為 1 也可以為 0&#xff0c;但是度最大為 2 。 一顆二叉樹是節點的一個有限集合&#xff0c;該集合&#xff1a;① 由一個根節點加上兩棵被稱為左子樹和右子樹的二叉樹組…