2023杭電第七場補題報告1002 1004 1011 1013

2023杭電第七場補題報告1002 1004 1011 1013

1002 B. Random Nim Game (hdu.edu.cn)

思路

手推一下就可以發現其實除了一次必定結束的其他情況概論都是 1 2 \frac{1}{2} 21?

代碼

#include <bits/stdc++.h>
using namespace std;
#define int long long
void solve();
signed main(){cin.sync_with_stdio(0);cin.tie(0);int T = 1;cin >> T;while(T--){solve();}return 0;
}void solve(){int n;cin >> n;int cn1 = 0;for(int i = 0;i < n;i++){int x;cin >> x;if(x > 1)cn1++;}if(cn1 == 0){if(n & 1){cout << "1\n";}else{cout << "0\n";}}else{cout << "499122177\n";}
}

1004 D. Medians Strike Back (hdu.edu.cn)

思路

若答案是 B,則構造為 {1, 3, 1*,* 3*, . . . ,* 1*,* 3*,* 2*,* 2*,* 1*,* 3*, . . .* },即 B 個 1 3 之后 2 2 構成一循環。**

代碼

#include <bits/stdc++.h>
#define re register
using namespace std;
inline int read()
{re int t = 0;re char v = getchar();while (v < '0')v = getchar();while (v >= '0')t = (t << 3) + (t << 1) + v - 48, v = getchar();return t;
}
int t, n, ans;
int main()
{t = read();while (t--){n = read();re int l = 1, r = n;while (l <= r){re int mid = l + r >> 1, tmp = n / (mid + mid + 2);re int s = tmp * 2 + max(0, n % (mid + mid + 2) - mid - mid);if (s <= mid)ans = mid, r = mid - 1;elsel = mid + 1;}printf("%d\n", ans);}
}

1011 K. Three Operations (hdu.edu.cn)

思路

思考一下就會發現,直接選擇收斂速度最快的進行,然后再在不選擇最后兩種情況的時候直接把當前數字加到結果中加速模擬。

代碼

#include <bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define fi first
#define sc secondusing namespace std;
const int INF = 0x3f3f3f3f3f3f3f3f;
const int N = 1e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int, int> PII;
int n;
int a[N];void solve() {int x, y;cin >> n >> x >> y;int res = 0;while (n != 0) {int x1 = n - 1, x2 = (n + x) / 2, x3 = sqrt(1.0 * (n + y));if(x2 >= n && x3 >= n){res += n;break;}if (x1 == min({x1, x2, x3}))n = x1;else if (x2 == min({x1, x2, x3}))n = x2;elsen = x3;res++;}cout << res << "\n";
}signed main() {IOS;int t = 1;cin >> t;for (int i = 1; i <= t; i++) {solve();}
}

1013 M. Minimal and Maximal XOR Sum (hdu.edu.cn)

思路

任選一個長度為 k 的區間,將其翻轉,然后可以再利用 f(k) = k(k 2 ?1) 次交換相鄰兩個數的操作再將這個區間翻轉回去,相當于什么操作都沒有做,而卻多了一個權值為 k 的操作和 f(k) 個權值為 2 的操作,所以:

? 如果 k 0 (mod 4) 或 k 1 (mod 4),則我們可以任何時候將答案(權值異或和)異或 k

? 如果 k 0 (mod 4) 或 k 1 (mod 4),則我們可以任何時候將答案異或 k 2。

代碼

#include <bits/stdc++.h>
using namespace std;
#define int long long
inline int read() {char c = getchar();int x = 0, s = 1;while (c < '0' || c > '9') {if (c == '-') s = -1;c = getchar();}  //是符號while (c >= '0' && c <= '9') {x = x * 10 + c - '0';c = getchar();}  //是數字return x * s;
}void solve();
signed main() {int T;T = read();while (T--) {solve();}return 0;
}
class FenwickTree {private:vector<int> tree;int n;public:FenwickTree(int size) {n = size;tree.resize(n + 1, 0);}// 單點更新:將索引i位置上的值增加valvoid update(int i, int val) {i++;  // 樹狀數組的索引從1開始,所以將i加1while (i <= n) {tree[i] += val;i += lowbit(i);}}// 區間查詢:計算前綴和,返回索引i位置的前綴和int query(int i) {i++;  // 樹狀數組的索引從1開始,所以將i加1int sum = 0;while (i > 0) {sum += tree[i];i -= lowbit(i);}return sum;}// 區間查詢:計算區間[i, j]的和int query(int i, int j) { return query(j) - query(i - 1); }private:int lowbit(int x) { return x & -x; }
};
void solve() {int n;n = read();vector<int> a(n + 1);for (int i = 1; i <= n; i++) {a[i] = read();}if (n == 1) {cout << "0 1\n";return;}FenwickTree t(n + 1);int cnt = 0;for (int i = 1; i <= n; i++) {cnt += t.query(a[i], n);t.update(a[i], 1);}// cout << cnt << "\n";int ans1 = 0, ans2 = 0;if (cnt & 1) {ans1 = 2;int c = log2(n) + 1;ans2 = (1 << c) - 1;} else {ans1 = 0;int c = log2(n) + 1;ans2 = (1 << c) - 1;ans2 -= 2;}cout << ans1 << " " << ans2 << "\n";
}

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

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

相關文章

【hello C++】特殊類設計

目錄 一、設計一個類&#xff0c;不能被拷貝 二、設計一個類&#xff0c;只能在堆上創建對象 三、設計一個類&#xff0c;只能在棧上創建對象 四、請設計一個類&#xff0c;不能被繼承 五、請設計一個類&#xff0c;只能創建一個對象(單例模式) C&#x1f337; 一、設計一個類&…

Sentinel使用實例

不說了&#xff0c;直接上官方文檔 https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/readme-zh.md Sentinel Example 項目說明 本項目演示如何使用 Sentinel starter 完成 Spring Clo…

【金融量化】對企業進行估值的方法有哪些?

估值的方法有哪些&#xff1f; 如何對企業進行估值&#xff1f;有2個方法估算。 1 絕對估值法 它是一種定價模型&#xff0c;用于計算企業的內在價值。 比如說你可以根據公司近N年的現金流情況。借此去預測未來N年的現金流情況。所有的現金流數據都可以在年報上查詢到。最后…

ios 知識

IOS 類文件.h和.m中interface的區別 大家都知道我們在創建類文件時會發現&#xff1a; #import <UIKit/UIKit.h>interface ViewController : UIViewControllerend和 #import "ViewController.h"interface ViewController ()end那么他們之間有何區別呢&#x…

【Ajax】回調地獄解決方法

回調地獄&#xff08;Callback Hell&#xff09;是指在異步編程中&#xff0c;特別是在嵌套的回調函數中&#xff0c;代碼變得深度嵌套、難以閱讀和維護的現象。這通常發生在處理多個異步操作時&#xff0c;每個操作都依賴于前一個操作的結果。回調地獄使代碼變得難以理解、擴展…

顯卡服務器適用于哪些場景

顯卡&#xff08;GPU&#xff09;服務器&#xff0c;簡單來說&#xff0c;GPU服務器是基于GPU的應用于視頻編解碼、深度學習、科學計算等多種場景的快速、 穩定、彈性的計算服務。那么壹基比小鑫告訴你顯卡服務器主要的用途有哪一些。 一、運行手機模擬器 顯卡服務器可支持…

力扣:62. 不同路徑(Python3)

題目&#xff1a; 一個機器人位于一個 m x n 網格的左上角 &#xff08;起始點在下圖中標記為 “Start” &#xff09;。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角&#xff08;在下圖中標記為 “Finish” &#xff09;。 問總共有多少條不同的路徑&…

WebRTC音視頻通話-WebRTC本地視頻通話使用ossrs服務搭建

iOS開發-ossrs服務WebRTC本地視頻通話服務搭建 之前開發中使用到了ossrs&#xff0c;這里記錄一下ossrs支持的WebRTC本地服務搭建。 一、ossrs是什么&#xff1f; ossrs是什么呢&#xff1f; SRS(Simple Realtime Server)是一個簡單高效的實時視頻服務器&#xff0c;支持RTM…

STM32CubeIDE的安裝和黑色主題及自動補全代碼

STM32CubeIDE之前用過一點時間&#xff0c;但后來因為不習慣放棄了最近在新電腦上又用起來了&#xff0c;感覺相對之前好了很多&#xff0c;其實如果在工作中基本使用的是STM32,用意法的生態軟件也挺好的&#xff0c;意法最近在這塊也在大力發展&#xff0c;STM32CubeIDE安裝包…

【BASH】回顧與知識點梳理(十三)

【BASH】回顧與知識點梳理 十三 十三. 文件內容查閱13.1 直接檢視文件內容&#xff1a;cat, tac, nlcat (concatenate)tac (反向列示)nl (添加行號打印) 13.2 可翻頁檢視&#xff1a;more, lessmore (一頁一頁翻動)less (一頁一頁翻動) 13.3 資料擷取&#xff1a;head, tailhea…

【Linux】云服務器自動化部署VuePress博客(Jenkins)

前言 博主此前是將博客部署在 Github Pages&#xff08;基于 Github Action&#xff09;和 Vercel 上的&#xff0c;但是這兩種部署方式對于國內用戶很不友好&#xff0c;訪問速度堪憂。因此將博客遷移到自己的云服務器上&#xff0c;并且基于 Jenkins&#xff08;一款開源持續…

浪涌保護器中SPD防雷模塊的主要應用方案

浪涌保護器&#xff08;Surge Protective Device&#xff0c;SPD&#xff09;是一種用于限制瞬態過電壓和導引泄放電涌電流的非線性防護器件&#xff0c;用以保護耐壓水平低的電器或電子系統免遭雷擊及雷擊電磁脈沖或操作過電壓的損害。SPD可以將過電壓泄放到地線或限制過電壓到…

類與對象(入門)

目錄 1.前言 2.類的引入 3.類的定義 4.類的訪問限定符及封裝 4.1 訪問限定符 4.2 封裝 5.類的作用域 6.類的實例化 7. 結構體內存對齊規則 8.this指針 8.1 this指針的引出 8.2 this指針的特性 1.前言 C 是 基于面向對象 的&#xff0c; 關注 的是 對象 &#xff0c;…

【Spring】核心容器——依賴自動裝配

Spring容器根據bean所依賴的資源在容器中自動查找并注入bean的過程叫做自動裝配自動裝配的方式 1、按類型 2、按名稱&#xff08;耦合性較高&#xff09; 3、按構造方法 自動裝配特點 1、自動裝配用于對引用類型進行依賴注入&#xff0c;不能對簡單類型進行操作 2、自動裝配的…

多元最短路(Floyd)

是一個基于動態規劃的全源最短路算法。它可以高效地求出圖上任意兩點之間的最短路 時間復雜度 O(n^3) 狀態轉移方程 f[i][j]min(f[i][j],f[i][k]f[k][j]) 核心代碼 void floyd(){for(int k1;k<n;k)for(int i1;i<n;i)for(int j1;j<n;j)s[i][j]min(s[i][j],s[i][k…

Vue前端 更具router.js 中的meta的roles實現路由衛士,實現權限判斷。

參考了之篇文章 1、我在登陸時獲取到登錄用戶的角色名roles&#xff0c;并存入sessionStorage中&#xff0c;具體是在login頁面實現&#xff0c;還是在menu頁面實現都可以。在menu頁面實現&#xff0c;可以顯得登陸快一些。 2、編寫router.js&#xff0c;注意&#xff0c;一個…

Spring 事務詳解

目錄 一、概述二、事務的特性&#xff08;ACID&#xff09;三、Spring 的事務管理3.1 編程式事務管理3.2 編程式事務管理 四、Spring 事務管理接口及其定義的屬性4.1 PlatformTransactionManager:事務管理接口4.2 TransactionDefinition:事務屬性4.3 TransactionStatus:事務狀態…

【基礎類】—前后端通信類系統性學習

一、什么是同源策略及限制 同源策略限制從一個源加載的文檔或腳本如何與來自另一個源的資源進行交互。這是一個用于隔離潛在惡意文件的關鍵的安全機制。源&#xff1a;協議、域名和端口&#xff0c; 默認端口是80 三者有一個不同&#xff0c;即源不同&#xff0c;就是跨域 ht…

Stable Diffusion+Temporal-kit 半虛半實應用

1.先下載temporal-kit,重啟webui 2.下載好ffmpeg,配置好環境,下載Ebsynth 3.準備好你需要的視頻,拖到預處理視頻位置 4.填寫參數,點解保存設置,然后并點擊生成,會生成到目標文件夾的input位置 5.然后拉出input文件夾里面你想切換成處理的幀圖片,然后填寫prompt查看效…

中國省級、城市-數字經濟創新創業、分項指數(2010-2020年)

一、數據介紹 數據名稱&#xff1a;中國省級、城市-數字經濟創新創業、分項指數 數據年份&#xff1a;2010-2020年 數據范圍&#xff1a;31省、336個城市 數據來源&#xff1a;北大企業大數據研究中心 二、參考文獻 參考文獻&#xff1a; 戴若塵,王艾昭,陳斌開.中國數字…