2024CCPC遼寧省賽 個人補題 ABCEGJL

Dashboard - 2024 CCPC Liaoning Provincial Contest - Codeforces

過題難度

B A J C L E?G

銅獎? 4 953

銀獎? 6 991

金獎? 8 1664

B:

模擬題

// Code Start Here	string s;cin >> s;reverse(all(s));cout << s << endl;

A:很明顯的哈希一下,然后去重即可,這里set和map都可以

// Code Start Here	string s;getline(cin , s);for(int i = 0;i<sz(s);i++){if((s[i] >= 'A' && s[i] <= 'Z')){s[i] += 32;}}set<string> st;for(int i = 0;i<sz(s);i++){if((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')){int j = i;string t = "";while((s[j] >= 'a' && s[j] <= 'z') || (s[j] >= 'A' && s[j] <= 'Z')) t += s[j++];i = j;st.insert(t);}}int q;cin >> q;while(q--){string t;cin >> t;if(st.find(t) != st.end())st.erase(t);}
//	for(auto i : st)cout << i <<" ";cout << sz(st) << endl;

J

模擬前后兩次的人數

// Code Start Here	int n;cin >> n;int a , b , c;cin >> a >> b >> c;vector<int> x(n + 1) , y (n + 1);for(int i = 1;i<=n;i++)cin >> x[i] >> y[i];int d;cin >> d;int before = 0 , after = 0;for(int i = 1;i<=n;i++){if(x[i] + y[i] >= c){before++;}}for(int i = 1;i<=n;i++) x[i] = min(a , x[i] + d);for(int i = 1;i<=n;i++){if(x[i] + y[i] >= c){after++;}}cout <<after - before << endl;

C

DFS跑一遍每個插座和插排的功率,然后貪心跑一遍判斷即可

// Code Start Here	int n;cin >> n;vector<int> w(n + 1);vector<vector<int>> g(n + 1);vector<int> f(n + 1);for(int i = 1;i<=n;i++){int u;cin >> u >> w[i];g[u].push_back(i);}w[0] = 2200;auto dfs = [&](auto &&self , int u)->void{if(g[u].empty())f[u] += w[u];for(auto v : g[u]){self(self,v);f[u] += f[v];}};dfs(dfs , 0);vector<int> e , ee;for(int i = 0;i<=n;i++){if(!g[i].empty()){e.push_back(f[i]);ee.push_back(w[i]);}}sort(all(e)) , sort(all(ee));bool flag = true;for(int i = 0;i<sz(e);i++){if(e[i] > ee[i] || e[i] > w[0])flag = false;}cout << ( flag ? "YES" : "NO") <<endl;

L

題意:

2024年起,每平年 +1 層數。但有特殊規則,年份必須是 4 的倍數,且不能是 100 的倍數但不是 10000 的倍數,否則是平年。到第 k 層的時候,是哪一年

思路:

可以不斷貪心,更簡單的方法是二分年份,然后找第k個合法年份。

計算到年份 x 之間,有多少個平年。遍歷 i = 4, 400, 40000, ... 逐個計算:x / i 表示小于等于 x 有多少個 i 的倍數(4, 400, 40000, ...)x / (25 * i) 表示去掉那些是100倍數但不是10000倍數的年數。x - sum 表示有效的龍之研習年份數量,看看是不是到達了第 n + 1533 個。這里的 1533 是因為:2024是第0層,到2024年底總共經歷了 2024 - 1533 = 491 個有效年份(實際上這1533是題目設定的初始偏移值,具體是為了校正年份起點和層數的關系)

// Code Start Here	int t;cin >> t;while(t--){int n;cin >> n;int l = 2025 , r = 2e18;auto check = [&](int x)->bool{int sum = 0;for(int i = 4;i<=x;i*= 100){sum += x / i - x / (25 * i);}return (x - sum) >= (n + 1533);};while(l <= r){int mid = l + r >> 1;if(check(mid)) r = mid - 1;else l = mid + 1;}cout << l << endl;}

E

一道大模擬

// Code Start Here	int t;cin >> t;auto solve = [&]()->void{int x, y; cin >> x >> y;if(x*y %4 !=0){cout << "NO\n";return ;}vector a(x+1, vector<int>(y+1, 0));auto yes = [&](){cout << "YES\n";for(int i=1; i<=x; ++i){for(int j=1; j<=y; ++j) cout << a[i][j] << " ";cout << endl;}};if(x % 4 == 0){int cnt = 1;for(int j=1; j<=y; j++){for(int i=1; i<=x; i+=4){a[i][j] = a[i+1][j] = a[i+2][j] = a[i+3][j] = cnt++;}}yes();return;}if(y % 4 ==0){int cnt=1;for(int i=1; i<=x; i++){for(int j=1; j<=y; j+=4){a[i][j] = a[i][j+1] = a[i][j+2] = a[i][j+3] = cnt++;}}yes();return;}if(x%2 ==0 && y%2 ==0){if(y >=6 && (y-6)%4 ==0){for(int i=1; i<=x; i+=2){int temp = (i/2)*((y-6)/4*2 +3) +1;a[i][1] = a[i][2] = a[i][3] = a[i+1][1] = temp;a[i][4] = a[i][5] = a[i][6] = a[i+1][6] = temp+1;a[i+1][2] = a[i+1][3] = a[i+1][4] = a[i+1][5] = temp+2;int cnt = temp+3;for(int j=7; j<=y; j+=4){a[i][j] = a[i][j+1] = a[i][j+2] = a[i][j+3] = cnt++;a[i+1][j] = a[i+1][j+1] = a[i+1][j+2] = a[i+1][j+3] = cnt++;}}yes();return;}else if(x >=6 && (x-6)%4 ==0){for(int j=1; j<=y; j+=2){int temp = (j/2)*((x-6)/4*2 +3) +1;a[1][j] = a[2][j] = a[3][j] = a[1][j+1] = temp;a[4][j] = a[5][j] = a[6][j] = a[6][j+1] = temp+1;a[2][j+1] = a[3][j+1] = a[4][j+1] = a[5][j+1] = temp+2;int cnt = temp+3;for(int i=7; i<=x; i+=4){a[i][j] = a[i+1][j] = a[i+2][j] = a[i+3][j] = cnt++;a[i][j+1] = a[i+1][j+1] = a[i+2][j+1] = a[i+3][j+1] = cnt++;}}yes();return;}}cout << "NO\n";};while(t--){solve();}

G

題意:給定一個長度為n的數組,求存在多少個子數組滿足最大 值出現至少k 次。

思路:對于每一個位置i,我們可以考慮其作為第一個最大值時對答案的貢獻,即能保證不重不漏的計數。不妨設:Li 為以 i 為起點,從右往左第一個比ai 大的元素的位置;Ri 為以 i 為起點,從左往右第一個比ai 大的元素的位置;lsti 為相對于當前位置 i,ai 上一次出現的位置;nxti 為相對于當前位置 i,ai 第 k 次出現的位置。

其中,Li 和Ri 可以通過單調棧計算,lsti 和nxti 則可以通過對值域開桶,根據每個位置在對應的桶中的相對位置進行計算。對于當前位置i 作為第一個最大值的數組:其左端點的合法范圍是(max(lsti,Li),i],其右端點的合法范圍是[i,min(nxti,Ri))。最后,統計每個位置作為第一個最大值時的貢獻,即能求出結果

// Code Start Here	int t;cin >> t;while(t--){int n , k;cin >> n >> k;vector<int> a(n + 1) , l (n + 1) , r(n + 1);vector<vector<int>> num(n + 1);for(int i = 1;i<=n;i++){cin >> a[i];num[a[i]].push_back(i);}int ans = 0;vector<int> left , right;for(int i = 1;i<=n;i++){while(!left.empty() && a[left.back()] <=a[i])left.pop_back();if(left.empty())l[i] = 1;else l[i] = left.back() + 1;left.push_back(i);}for(int i = n;i>=1;i--){while(!right.empty() && a[right.back()] <= a[i])right.pop_back();if(right.empty())r[i] = n;else r[i] = right.back() - 1;right.push_back(i);}for(int i = n;i>=1;i--){if(sz(num[i]) >= k){for(int j = 0;j + k - 1 < sz(num[i]);j++){int p = num[i][j] , q = num[i][j + k - 1];int l_ = l[p] , r_ = r[p];if(j >= 1) l_ = max(l_ , num[i][j - 1] + 1);if(r_ >= q)ans += (p - l_ + 1) *(r_ - q + 1);}}	}cout << ans << endl;}

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

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

相關文章

Java基礎 Day17

一、遞歸 方法直接或者間接調用本身 將大問題, 層層轉化為一個與原問題相似的、規模更小的問題來解決 二、異常 程序在編譯或執行過程中&#xff0c;出現的非正常的情況 (錯誤) 語法錯誤不是異常 1、閱讀異常信息 從下往上看&#xff1a;發生異常的位置、異常名稱、發生異…

hook原理和篡改猴編寫hook腳本

hook原理&#xff1a; hook是常用于js反編譯的技術&#xff1b;翻譯就是鉤子&#xff0c;他的原理就是劫持js的函數然后進行篡改 一段簡單的js代碼 &#xff1a;這個代碼是順序執行的 function test01(){console.log(test01)test02() } function test02(){console.log(02)tes…

使用 Vue 展示 Markdown 文本

使用 Vue 展示 Markdown 文本可以通過以下幾種方法&#xff1a; 方法 1&#xff1a;使用 v-html 指令 可以使用 v-html 指令來渲染 Markdown 文本&#xff1a; <template><div v-html"markdownText"></div> </template> <script>e…

深度解析 Java 中介者模式:重構復雜交互場景的優雅方案

一、中介者模式的核心思想與設計哲學 在軟件開發的歷史長河中&#xff0c;對象間的交互管理一直是架構設計的核心難題。當多個對象形成復雜的網狀交互時&#xff0c;系統會陷入 "牽一發而動全身" 的困境。中介者模式&#xff08;Mediator Pattern&#xff09;作為行…

FreeCAD傻瓜教程-外螺紋的繪制,利用兩個實體進行布爾運算來實現

起因&#xff1a;因為要設計一個波珠螺絲固定器&#xff0c;為了不跑偏&#xff0c;需要在螺柱上加工一個直徑6mm&#xff0c;深度1.2mm的圓弧凹槽所以想用泉州制造的6.8車銑加工。 但是該加工目前不支持軸向的鉆孔&#xff0c;所以想著干脆在兩端加上M8的螺栓&#xff0c;也起…

權限控制相關實現

Spring Boot-Shiro-Vue&#xff1a; 這個項目可以滿足基本的權限控制需求&#xff0c;前后端都有&#xff0c;開箱即用

Node.js路徑處理指南:如何安全獲取當前腳本目錄路徑

本文適用于 Node.js 14.x及以上版本&#xff0c;同時覆蓋 CommonJS 和 ES Modules 模塊系統 文章目錄 一、為什么需要關注路徑問題&#xff1f;二、三種核心方法詳解方法1&#xff1a;經典方案 __dirname (CommonJS)方法2&#xff1a;ES Modules 解決方案方法3&#xff1a;動態…

web基礎

域名概述 2-1 域名的概念&#xff1a;IP 地址不易記憶&#xff0c;域名是互聯網絡上識別和定位計算機的層次結構式的字符標識&#xff0c;與該計算機的互聯網協議 (IP) 地址相對應&#xff0c;用于在數據傳輸時標識計算機的電子方位&#xff0c;方便人們記憶和輸入。 早期使用…

醫療行業數據共享新實踐:如何用QuickAPI打通診療全流程數據壁壘

在醫療行業&#xff0c;數據的高效流轉直接影響診療效率和患者體驗。某三甲醫院在數字化轉型中發現&#xff0c;雖然已積累大量核心業務數據&#xff0c;但各科室系統間的數據互通仍存在明顯瓶頸——檢驗科的報告無法實時同步至門診系統&#xff0c;藥房庫存數據與采購系統脫節…

高級認知型Agent

目標: 構建一個具備自主規劃、多步推理、工具使用、自我反思和環境交互能力的智能代理,使其能夠高效、可靠地完成復雜任務。 核心理念: Agent的智能涌現于一個精密的認知循環: 感知 (Perceive) -> 理解與規劃 (Think/Plan - 想) -> 信息獲取 (Search/Act - 查) -&g…

百度地圖的地鐵圖API所有城市的城市名和citycode的對照關系列表

百度地圖的地鐵圖API所有城市的城市名和citycode的對照關系列表 城市keywordcitycode北京beijing131上海shanghai289廣州guangzhou257深圳shenzhen340重慶chongqing132天津tianjin332石家莊shijiazhuang150南京nanjing315成都chengdu75沈陽shenyang58杭州hangzhou179武漢wuhan2…

SymPy | 獲取表達式自由變量方法與因式分解

SymPy 是 Python 中強大的符號計算庫&#xff0c;廣泛應用于數學建模、公式推導和科學計算。本文將從兩個核心功能展開&#xff1a;表達式中自由變量的獲取與因式分解的實現&#xff0c;通過完整代碼示例和深入分析&#xff0c;幫助讀者掌握其使用方法。 第一部分&#xff1a;獲…

掩膜合并代碼

def ensure_dir(path):"""若目錄不存在則創建"""if not os.path.exists(path): #判斷路徑是否存在os.makedirs(path) #創建路徑def read_and_resize(img_path, size):"""讀取并縮放圖像到指定尺寸&#xff0c;返回 numpy 數組&qu…

藍橋杯5130 健身

問題描述 小藍要去健身&#xff0c;他可以在接下來的 1~n 天中選擇一些日子去健身。 他有 m 個健身計劃&#xff0c;對于第 i 個健身計劃&#xff0c;需要連續的 天&#xff0c;如果成功完成&#xff0c;可以獲得健身增益 si? &#xff0c;如果中斷&#xff0c;得不到任何…

auto關鍵字解析

前言 在11標準之前&#xff0c;auto在c中是聲明存儲器類型的關鍵字。而在11標準中它的功能變為了類型推導。 對此&#xff0c; 在這里引入Cprimer中的原句&#xff1a; 編程時常常需要把表達式的值賦給變量&#xff0c;這就要求在聲明變量的時候清楚的知道表達式的類型。然而…

嵌入式STM32學習——串口USART 2.0(printf重定義及串口發送)

printf重定義&#xff1a; C語言里面的printf函數默認輸出設備是顯示器&#xff0c;如果要實現printf函數輸出正在串口或者LCD顯示屏上&#xff0c;必須要重定義標準庫函數里調用的與輸出設備相關的函數&#xff0c;比如printf輸出到串口&#xff0c;需要將fputc里面的輸出指向…

信號量機制:操作系統中的同步與互斥利器

在計算機操作系統中&#xff0c;信號量機制是一種重要的進程同步與互斥工具。它廣泛應用于多進程或多線程環境中&#xff0c;用于解決并發訪問共享資源時可能出現的競態條件問題。本文將從信號量的基本概念出發&#xff0c;逐步深入探討其工作原理、實現方式以及實際應用&#…

LeetCode 1004. 最大連續1的個數 III

LeetCode 1004題 “最大連續1的個數 III” 是一道關于數組和滑動窗口的問題。題目描述如下&#xff1a; 題目描述 給定一個由若干 0 和 1 組成的數組 nums&#xff0c;以及一個整數 k。你可以將最多 k 個 0 翻轉為 1。返回經過翻轉操作后&#xff0c;數組中連續 1 的最大個數…

digitalworld.local: FALL靶場

digitalworld.local: FALL 來自 <digitalworld.local: FALL ~ VulnHub> 1&#xff0c;將兩臺虛擬機網絡連接都改為NAT模式 2&#xff0c;攻擊機上做namp局域網掃描發現靶機 nmap -sn 192.168.23.0/24 那么攻擊機IP為192.168.23.182&#xff0c;靶場IP192.168.23.4 3&…

經典Java面試題的答案——Java 基礎

大家好&#xff0c;我是九神。這是互聯網技術崗的分享專題&#xff0c;廢話少說&#xff0c;進入正題&#xff1a; 1.JDK 和 JRE 有什么區別&#xff1f; JDK&#xff1a;Java Development Kit 的簡稱&#xff0c;java 開發工具包&#xff0c;提供了 java 的開發環境和運行環境…