牛客小白月賽87 A-G 題解 | JorbanS

文章目錄

  • [A - 小苯的石子游戲](https://ac.nowcoder.com/acm/contest/73854/A)
  • [B - 小苯的排序疑惑](https://ac.nowcoder.com/acm/contest/73854/B)
  • [C - 小苯的IDE括號問題(easy)](https://ac.nowcoder.com/acm/contest/73854/C)
  • [D - 小苯的IDE括號問題(hard)](https://ac.nowcoder.com/acm/contest/73854/D)
  • [E - 小苯的數組構造](https://ac.nowcoder.com/acm/contest/73854/E)
  • [F - 小苯的數組切分](https://ac.nowcoder.com/acm/contest/73854/F)
  • [G - 小苯的逆序對](https://ac.nowcoder.com/acm/contest/73854/G)

A - 小苯的石子游戲

string solve() {cin >> n;for (int i = 0; i < n; i ++) cin >> a[i];int A = 0, B = 0, mode = 0;for (int i = n - 1; i >= 0; i --, mode ^= 1)if (mode & 1) B += a[i];else A += a[i];return A > B ? "Alice" : "Bob";
}

B - 小苯的排序疑惑

string solve() {cin >> n;for (int i = 0; i < n; i ++) cin >> a[i], b[i] = a[i];sort(a, a + n);return a[0] == b[0] || a[n - 1] == b[n - 1] ? yes : no;
}

C - 小苯的IDE括號問題(easy)

雙指針

void solve() {cin >> n >> m >> s;int l = s.find('I') - 1, r = l + 2;while (m --) {string op; cin >> op;if (op[0] == 'b') {if (l != -1) {if (r != n && s[l] == '(' && s[r] == ')') r ++;l --;}} else {if (r != n) r ++;}}for (int i = 0; i <= l; i ++) cout << s[i];cout << 'I';for (int i = r; i < n; i ++) cout << s[i];cout << endl;
}

D - 小苯的IDE括號問題(hard)

用兩個棧模擬

void solve() {cin >> n >> m >> s;int idx = s.find('I');stack<char> l, r, t;for (int i = 0; i < idx; i ++) l.push(s[i]);for (int i = n - 1; i > idx; i --) r.push(s[i]);while (m --) {string op; cin >> op;if (op[0] == 'b') {if (!l.empty()) {if (!r.empty() && l.top() == '(' && r.top() == ')') r.pop();l.pop();}} else if (op[0] == 'd') {if (!r.empty()) r.pop();} else if (op[0] == '<') {if (!l.empty()) {r.push(l.top());l.pop();}} else {if (!r.empty()) {l.push(r.top());r.pop();}}}while (!l.empty()) t.push(l.top()), l.pop();while (!t.empty()) cout << t.top(), t.pop();cout << 'I';while (!r.empty()) cout << r.top(), r.pop();cout << endl;
}

E - 小苯的數組構造

貪心,讓 a [ i ] + b [ i ] = m a x j = 1 i ? 1 a j a[i]+b[i]=max_{j=1}^{i-1}a_j a[i]+b[i]=maxj=1i?1?aj?

void solve() {cin >> n;for (int i = 0; i < n; i ++) cin >> a[i];int Max = -1e9;for (int i = 0; i < n; i ++) {b[i] = max(0, Max - a[i]);Max = max(Max, a[i]);}for (int i = 0; i < n; i ++) cout << b[i] << ' ';cout << endl;
}

F - 小苯的數組切分

由于一個數如果給 ∣ | 操作只會多不會少,但是給 & \& & 操作只會少不會多,因此貪心地讓 & \& & 操作只包含 a [ n ] a[n] a[n],接下來遍歷一下前兩個操作的分界點即可

ll solve() {cin >> n;for (int i = 1; i <= n; i ++) cin >> a[i], b[i] = a[i] ^ b[i - 1];ll res = 0, cnt = a[n - 1];for (int i = n - 2; i; i --) {res = max(res, cnt + b[i]);cnt |= a[i];}return res + a[n];
}

G - 小苯的逆序對

樹狀數組維護逆序對, f [ i ] = n u m i ∣ a r r [ k ] ? f [ 2 i ] ? f [ 3 i ] ? … f [ ? n i ? i ] f[i]=num_{i|arr[k]}-f[2i]-f[3i]-…f[\left \lfloor \frac n i \right \rfloor i] f[i]=numiarr[k]??f[2i]?f[3i]?f[?in??i]

其中逆序操作保證 f [ 2 i ] , f [ 3 i ] , … … f [ ? n i ? i ] f[2i],~f[3i],~……~f[\left \lfloor \frac n i \right \rfloor i] f[2i],?f[3i],?……?f[?in??i] 是已經求得的

ll f[N];struct BIT {int tr[N];inline int lowbit(int x) { return x & -x; }void modify(int x, int k) {while (x) tr[x] += k, x -= lowbit(x);}int query(int x) {int res = 0;while (x <= n) res += tr[x], x += lowbit(x);return res;}
} bit;ll solve() {cin >> n;for (int i = 1; i <= n; i ++) {int x; cin >> x;a[x] = i;}for (int i = n; i; i --) {for (int j = i; j <= n; j += i) {f[i] += bit.query(a[j]);bit.modify(a[j], 1);}for (int j = i; j <= n; j += i) {bit.modify(a[j], -1);if (j != i) f[i] -= f[j];}}return f[1];
}

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

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

相關文章

向爬蟲而生---Redis 探究篇3<`Redis事務`和`Sql事務`區別>

前言: 在數據管理和應用開發中&#xff0c;事務的概念至關重要。事務用于組織和管理一系列對數據進行更新或操作的步驟&#xff0c;確保數據的一致性和可靠性。事務能夠保證在一組相關操作中的原子性、一致性、隔離性和持久性&#xff0c;從而確保數據庫的可靠性。 Redis和My…

idea中maven配置(一次成功,全部細節都有)

寫這篇文章的原因是maven的配置很簡單&#xff0c;但是也很容易出錯&#xff0c;我連配了兩臺電腦的maven出現了各種小錯誤&#xff0c;參考了以下兩篇博文IDEA配置Maven教程&#xff08;超詳細版~)_idea maven配置教程-CSDN博客 一次包會——最新IDEA配置Maven指南&#xff0…

python 基礎知識點(藍橋杯python科目個人復習計劃57)

今日復習計劃&#xff1a;做題 例題1&#xff1a;笨笨的機器人 問題描述&#xff1a; 肖恩有一個機器人&#xff0c;他能根據輸入的指令移動相應的距離。但是這個機器人很笨&#xff0c;他永遠分不清往左邊還是往右邊移動。肖恩也知道這一點&#xff0c;所以他設定這個機器人…

mysql 遠程不允許連接 1130 -Host ‘‘ is not allowed to connect to this MySQL server

1、docker 進入mysql 命令 sudo docker exec -it 0c58 /bin/bash 2、連接mysql mysql -u root -ppwd 3、 use mysql; 4、更改表所有root用戶都可以連接 update user set host ‘%’ where user‘root’; 5、刷新權限 flush privilege&#xff1b; ok解決&#xff1b;

五大跨平臺桌面應用開發框架:Electron、Tauri、Flutter等

hello&#xff0c;我是貝格前端工場&#xff0c;本次介紹跨平臺開發的框架&#xff0c;歡迎大家評論、點贊。 一、什么是跨平臺桌面應用開發框架 跨平臺桌面應用開發框架是一種工具或框架&#xff0c;它允許開發者使用一種統一的代碼庫或語言來創建能夠在多個操作系統上運行的…

3.2日學習打卡----初學FastDFS(二)

3.2日學習打卡 目錄: 3.2日學習打卡SpringBoot整合FastDFS實戰開發文件上傳 FastDFS集成Nginx環境搭建 SpringBoot整合FastDFS 由GitHub大牛tobato在原作者YuQing與yuqih發布的JAVA客戶端基礎上進行了大量重構工作&#xff0c;并于GitHub上發布了FastDFS-Client1.26.5。 主要特…

代碼隨想錄算法訓練營Day33 || leetCode 860.檸檬水找零 || 406.根據身高重建隊列 || 452. 用最少數量的箭引爆氣球

860.檸檬水找零 貪心的思路就是&#xff0c;先把最沒用的錢給找出去。本題中&#xff0c;20元沒法花出去&#xff0c;只有10和5能找零&#xff0c;但10只能找零20&#xff0c;而5可以找零10與20&#xff0c;所以就想辦法把10先花出去即可。之后按照收入順序來記錄錢數并選擇找…

現貨大宗商品發售平臺搭建須知

在搭建現貨大宗商品發售平臺時&#xff0c;需要考慮以下關鍵因素&#xff1a; 目標市場分析&#xff1a;首先要明確你的平臺將服務于哪些大宗商品市場&#xff0c;如農產品、金屬、能源等。了解這些市場的特點、參與者、交易規則等&#xff0c;有助于你設計出更符合市場需求的…

chromedriver,Chrome驅動的實時更新

發現自己的selenium項目跑不起來了 效驗驅動版本 下載鏈接(可能需要魔法) https://registry.npmmirror.com/binary.html?pathchromedriver/ https://googlechromelabs.github.io/chrome-for-testing/ 找到驅動位置 1. 默認安裝路徑&#xff1a;Chrome驅動通常會默認安裝在系…

Python中常用的庫-sklearn的介紹和代碼案例

Python中常用的庫-sklearn的介紹和代碼案例 關注B站查看更多手把手教學&#xff1a; 肆十二-的個人空間-肆十二-個人主頁-嗶哩嗶哩視頻 (bilibili.com) 今天我們來一起說下最近python中常用的機器學習庫-sklearn。 Scikit-learn是一個基于Python的開源機器學習庫&#xff0c;…

詳解JavaScript的函數

詳解 JavaScript 的函數 函數的語法格式 創建函數/函數聲明/函數定義 function 函數名(形參列表) { 函數體 return 返回值; // return 語句可省略 } 函數調用 函數名(實參列表) // 不考慮返回值 返回值 函數名(實參列表) // 考慮返回值 示例代碼 //定義的沒有參數列表&am…

實驗:依賴注入之setter注入

個人名片&#xff1a; &#x1f43c;作者簡介&#xff1a;一名大三在校生&#xff0c;喜歡AI編程&#x1f38b; &#x1f43b;???個人主頁&#x1f947;&#xff1a;落798. &#x1f43c;個人WeChat&#xff1a;hmmwx53 &#x1f54a;?系列專欄&#xff1a;&#x1f5bc;?…

【數據結構與算法】整數二分

問題描述 對一個排好序的數組&#xff0c;要求找到大于等于7的最小位置和小于等于7的最大位置 大于等于7的最小位置 易知從某個點開始到最右邊的邊界都滿足條件&#xff0c;我們要找到這個區域的最左邊的點。 開始二分&#xff01; left指針指向最左邊界&#xff0c;right…

2024-03-01(金融AI行業與大數據生態圈)

1.金融這一塊的算法&#xff0c;不像推薦系統&#xff0c;圖像等領域&#xff0c;金融領域的算法都比較成熟了。現在來說門檻低&#xff0c;屬于初期階段&#xff0c;上升期。 2.反欺詐的數據標簽比較少&#xff0c;有一種“標簽染色”的方法來做反欺詐模型的標簽。 3.常用反…

官宣 | 凱琦供應鏈成為亞馬遜SPN物流服務商!

再播一條喜訊&#xff01;在亞馬遜官方平臺的篩選考核下&#xff0c;凱琦供應鏈近日正式入駐亞馬遜SPN服務商平臺&#xff0c;成為亞馬遜SPN第三方承運商。 這也標志著凱琦9年來在FBA物流領域的服務質量得到了客戶、官方及行業的廣泛認可&#xff0c;未來凱琦將繼續為亞馬遜賣家…

測試開發實習崗---測試用例

目錄 對于抖音投放廣告這項業務&#xff0c;如何設計測試用例get和post的接口如何設計測試用例依賴于登錄狀態的接口如何測試 對于抖音投放廣告這項業務&#xff0c;如何設計測試用例 廣告展示&#xff1a;測試廣告在抖音中的展示情況&#xff0c;包括廣告位置、展示時機、展示…

第六講:函數

函數 1. 函數的概念2. 庫函數2.1 標準庫和頭文件2.2 庫函數的使用方法2.2.1 功能2.2.2 頭文件包含2.2.3 實踐2.2.4 庫函數文檔的一般格式 3. 自定義函數3.1 函數的語法形式3.2 函數的舉例 4. 形參和實參4.1 實參4.2 形參4.3 實參和形參的關系 5. return語句6. 數組做函數參數7.…

ubuntu個人系統軟件安裝配置備忘

1. 替換軟件源 /etc/apt/source.list 2. 安裝必要軟件 安裝基礎軟件 sudo apt update sudo apt install -y python3-pip git vim curl wget clang clang-format flameshot docker升級pip3 python3 -m pip install --upgrade pip 安裝google瀏覽器 https://deb.pkgs.org/…

Excel 按奇數偶數列處理數據

目錄 一. 需求背景1.1 獲取偶數列的數據1.2 奇偶列數據互換 二. 解決方式2.1 為列添加奇偶輔助列2.2 通過公式將奇偶列互換 一. 需求背景 1.1 獲取偶數列的數據 ? 最近在整理歌單&#xff0c;發現部分歌曲沒有歌詞&#xff0c;于是打算自己制作一份。 從網上找到了歌詞&…

JavaScript-關于事件、事件流(捕獲、冒泡)、事件源、常用事件

1.如何注冊事件(如何綁定事件) ? 何為注冊事件&#xff0c;就是給元素添加事件&#xff0c;其方式有傳統注冊事件、方法監聽注冊事件。 0、1級事件&#xff08;傳統注冊事件&#xff09;不允許多個響應程序 我們在元素內或js內使用on的方式就是傳統注冊事件&#xff0c;這種形…