[藍橋杯 2023 省 A] 異或和之和

題目來自洛谷網站:

暴力思路:

先進性預處理,找到每個點位置的前綴異或和,在枚舉區間。

暴力代碼:

#include<bits/stdc++.h>
#define int long long 
using namespace std;
const int N = 1e5+20;int n;
int arr[N], ls[N];//前綴異或和數組 lssigned main(){cin >> n;for(int i = 1; i <= n; i++) cin >> arr[i];//預處理-前綴異或和for(int i = 1; i <= n; i++){ls[i] = ls[i-1] ^ arr[i];}//枚舉數組int ans = 0;for(int i = 0; i < n; i++){for(int j = i+1; j <= n; j++){//得到i-j這一段的異或和ans += ls[i] ^ ls[j];}}cout << ans << endl;return 0;
}

?拆位+貢獻法優化:

①將數組A數轉換為二進制來計算,二進制中每一位計算’互不影響‘。

②題目中Ai最大為2^20,我們從20開始枚舉到0,按順序取出數組Ai的第 i 位,對數組中每個數第 i 位計算值,累加起來。

③對于每個數的第 i 為,只有1、0兩種情況,對 i 位判斷奇偶性。我們用 s 來存 i ,s 就相當于每個數第 i 位的前綴和。再用 ji 來記錄每個數中是奇數的數量,用 ou 來記錄每個數中是偶數數量。同時,ou 初始化為1,ji 初始化為0。

④如果 s 為偶數,這個區間異或為0,我們要避免這種情況。因此?s 為奇數的時,這個大的區間總共有 ou 個區間異或結果為1。s 為偶數時,總共有 ji 個區間異或結果為1。由于 i 第幾位是確定的,所以每個區間的值是確定的。對于 s 奇數,用 ans += (1 << i)* ou;對于 s 為偶數,直接ans += (1 << i)* ji。

拆位+貢獻法代碼:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5+20;int n;
int arr[N];signed main(){cin >> n;for(int i = 1; i <= n; i++){cin >> arr[i];}//拆分int ans = 0;for(int i = 20; i >= 0; i--){//表示接下來枚舉元素位置j 前面有多少1、0int ji = 0, ou = 1;//表示接下來枚舉元素位置j是奇數還是偶數int s = 0;for(int j = 1; j <= n; j++){//得到arr[j]二進制“第一位” 并判斷奇數偶數int k = arr[j] >> i & 1;s += k;//奇數if(s % 2){ans += (1 << i) * ou;ji += 1;}//偶數else{ans += (1 << i) * ji;ou += 1;}}}cout << ans << endl;return 0;
}

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

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

相關文章

python學習筆記--實現簡單的爬蟲(二)

任務&#xff1a;爬取B站上最愛歡迎的編程課程 網址&#xff1a;編程-嗶哩嗶哩_bilibili 打開網頁的代碼模塊&#xff0c;如下圖&#xff1a; 標題均位于class_"bili-video-card__info--tit"的h3標簽中&#xff0c;下面通過代碼來實現&#xff0c;需要說明的是URL中…

微服務分層架構詳解:表示層、應用層與基礎設施層的協同工作

微服務分層架構詳解&#xff1a;表示層、應用層與基礎設施層的協同工作 文章目錄 微服務分層架構詳解&#xff1a;表示層、應用層與基礎設施層的協同工作1. 表示層&#xff08;Presentation Layer&#xff09;1.1 表示層的作用1.2 技術選型1.3 表示層的挑戰 2. 應用層&#xff…

[C++面試] 你了解transform嗎?

層級核心知識點入門基本語法、與for_each對比、單/雙范圍操作進階動態擴展、原地轉換、類型兼容性、異常安全高階性能優化、C20 Ranges、transform_if模擬 一、入門 1、描述std::transform的基本功能&#xff0c;并寫出兩種版本的函數原型 std::transform函數是 C 標準庫<…

windows清除電腦開機密碼,可保留原本的系統和資料,不重裝系統

前言 很久的一臺電腦沒有使用了&#xff0c;開機密碼忘了&#xff0c;進不去系統 方法 1.將一個閑置u盤設置成pe盤&#xff08;注意&#xff0c;這個操作會清空原來u盤的數據&#xff0c;需要在配置前將重要數據轉移走&#xff0c;數據無價&#xff0c;別因為配置這個丟了重…

5.4 位運算專題:LeetCode 137. 只出現一次的數字 II

1. 題目鏈接 LeetCode 137. 只出現一次的數字 II 2. 題目描述 給定一個整數數組 nums&#xff0c;其中每個元素均出現 三次&#xff0c;除了一個元素只出現 一次。請找出這個只出現一次的元素。 要求&#xff1a; 時間復雜度為 O(n)&#xff0c;空間復雜度為 O(1)。 示例&a…

C語言:掃雷

在編程的世界里&#xff0c;掃雷游戲是一個經典的實踐項目。它不僅能幫助我們鞏固編程知識&#xff0c;還能鍛煉邏輯思維和解決問題的能力。今天&#xff0c;就讓我們一起用 C 語言來實現這個有趣的游戲&#xff0c;并且通過圖文并茂的方式&#xff0c;讓每一步都清晰易懂 1. 游…

【論文#目標檢測】YOLO9000: Better, Faster, Stronger

目錄 摘要1.引言2.更好&#xff08;Better&#xff09;3.更快&#xff08;Faster&#xff09;4.更健壯&#xff08;Stronger&#xff09;使用 WordTree 組合數據集聯合分類和檢測評估 YOLO9000 5.結論 Author: Joseph Redmon; Ali Farhadi Published in: 2017 IEEE Conference …

數據庫誤更新操作 如何回滾

1.未提交 直接 rollback 2.已提交 步驟 查詢指定時間內修改前數據庫數據&#xff1a; -- 查詢誤操作前的數據&#xff08;例如 10 分鐘前&#xff09; SELECT * FROM 表名 AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL 10 MINUTE) WHERE 條件;-- 將數據恢復&#xff08;需確保有…

大數據運維實戰之YARN任務內存泄露排查實戰:從節點掉線到精準定位的完整指南

1.問題背景&#xff1a;集群內存風暴引發的危機 最近某大數據集群頻繁出現節點掉線事故&#xff0c;物理內存監控持續爆紅。運維人員發現當節點內存使用率達到95%以上時&#xff0c;機器會進入不可響應狀態&#xff0c;最終導致服務中斷。這種"內存雪崩"現象往往由單…

AI+金融 應用 使用DeepSeek、Qwen等大模型輸入自然語言,得到通達信等行情軟件公式代碼,導入后使用

AI金融 應用 使用DeepSeek、Qwen等大模型輸入自然語言&#xff0c;得到通達信等行情軟件公式代碼&#xff0c;導入后使用。不會編程&#xff0c;也能行情軟件中實現個性化條件選股&#xff0c;個性化技術指標。 AIbxm低估值趨勢選股策略&#xff0c;參考提示詞&#xff1a; 編…

[Xilinx]工具篇_PetaLinux自動編譯

[Xilinx]工具篇_PetaLinux自動編譯 若該文為原創文章&#xff0c;未經允許不得轉載風釋雪QQ:627833006E-mail:hn.cyfoxmail.comCSDN博客: https://blog.csdn.net/weixin_46718879知乎&#xff1a;https://www.zhihu.com/people/abner-80-4 1.版本 日期作者版本說明2025XXXX風釋…

多語言語料庫萬卷·絲路2.0開源,數據模態全面升級,搭建文化交流互鑒AI橋梁

3月22日&#xff0c;上海人工智能實驗室&#xff08;上海AI實驗室&#xff09;聯合新華社新聞信息中心、上海外國語大學、外研在線等&#xff0c;發布全新升級的“萬卷絲路2.0”多語言語料庫&#xff0c;通過構建多語言開源數據底座&#xff0c;以人工智能賦能“一帶一路”高質…

多語言生成語言模型的少樣本學習

摘要 大規模生成語言模型&#xff0c;如GPT-3&#xff0c;是極具競爭力的少樣本學習模型。盡管這些模型能夠共同表示多種語言&#xff0c;但其訓練數據以英語為主&#xff0c;這可能限制了它們的跨語言泛化能力。在本研究中&#xff0c;我們在一個涵蓋多種語言的語料庫上訓練了…

Linux運維篇-系統io調優

目錄 磁盤文件系統虛擬文件系統 文件系統的工作原理文件系統 I/OI/O 的分類緩沖與非緩沖 I/O直接與非直接 I/O阻塞與非阻塞 I/O同步與異步 I/O 查看文件系統容量目錄項和索引節點緩存 通用塊層I/O 棧磁盤性能指標磁盤 I/O 觀測進程 I/O 觀測I/O瓶頸的排查思路思路一思路二 I/O優…

C語言筆記(鵬哥)上課板書+課件匯總(動態內存管理)--數據結構常用

動態內存管理 引言&#xff1a;將內存升起一段空間存放數據有幾種手段 創建變量&#xff1a;存放一個值創建數組&#xff1a;存放多個連續的一組值 以上開辟的內存空間是固定的&#xff0c;創建大了&#xff0c;空間浪費&#xff0c;創建小了&#xff0c;空間不夠。并且一旦…

uv - Getting Started 開始使用 [官方文檔翻譯]

文章目錄 uv亮點安裝項目腳本工具Python 版本pip 接口了解更多 入門安裝 uv安裝方法獨立安裝程序PyPICargoHomebrewWinGetScoopDockerGitHub 發布 升級 uvShell 自動補全卸載 第一次使用 uv特性Python 版本腳本項目工具pip 接口實用工具 獲取幫助幫助菜單查看版本故障排除問題在…

HarmonyOS Next~鴻蒙系統安全:構建全方位的防護體系

HarmonyOS Next&#xff5e;鴻蒙系統安全&#xff1a;構建全方位的防護體系 ? ? 在數字化飛速發展的當下&#xff0c;操作系統的安全性成為了用戶和開發者關注的焦點。華為鴻蒙系統&#xff08;HarmonyOS&#xff09;以其獨特的架構和強大的安全性能&#xff0c;在眾多操作…

本地安裝deepseek大模型,并使用 python 調用

首先進入 ollama 官網 https://ollama.com/點擊下載 下載完成后所有都是下一步&#xff0c;就可以 點擊搜索 Models &#xff1a; https://ollama.com/search然后點擊下載&#xff1a; 選擇后復制: ollama run deepseek-r1:32b例如&#xff1a; 讓它安裝完成后&#xff1…

Linux wifi driver 注冊和設備探測流程

基礎流程 wifi驅動加載&#xff08;insmod或者modprobe&#xff09; 設備驅動匹配探測&#xff08;我們常見的probe函數&#xff09; 整體流程 驅動加載 → 注冊支持設備 → 設備插入 → 匹配驅動 → 初始化硬件 → 創建網絡接口 明確兩點 兩個流程 驅動加載&#xf…

【機器人】復現 GrainGrasp 精細指導的靈巧手抓取

GrainGrasp為每個手指提供細粒度的接觸指導&#xff0c;為靈巧手生成精細的抓取策略。 通過單獨調整每個手指的接觸來實現更穩定的抓取&#xff0c;從而提供了更接近人類能力的抓取指導。 論文地址&#xff1a;GrainGrasp: Dexterous Grasp Generation with Fine-grained Con…