Codeforces Round 1028 (Div. 2)(ABC)

A. Gellyfish and Tricolor Pansy

翻譯:

????????水母和小花在玩一個叫 “決斗 ”的游戲。

????????水母有 a HP,花花有 b HP。

????????它們各有一個騎士。水母的騎士有 c HP,而花花的騎士有 d HP。

????????他們將進行一輪游戲,直到其中一方獲勝。對于 k=1、2、... 的順序,他們將執行以下操作:

  • 如果 k 為奇數,且水母的騎士活著:
    • 如果 b≤0 則水母獲勝。或者,水母的騎士可以攻擊花花的騎士并將 d
    • ?如果 d≤0,花花的騎士死亡。
  • 如果 k 為偶數,且花花的騎士活著:
    • 如果a≤0,花花獲勝。或者,花花的騎士可以攻擊水母的騎士并將 c
    • ?如果 c≤0 海蜇的騎士死亡。

????????作為世界上最聰明的人之一,你想在比賽前告訴他們誰會贏。假設雙方都以最佳狀態下棋。

可以證明對局永遠不會以和棋結束。也就是說,一方擁有在有限步數內結束對局的策略。

思路:

????????只要將敵方的任意一人殺死,即可獲勝。(模擬,貪心)

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;void solve(){ll a,b,c,d;cin>>a>>b>>c>>d;if (min(a,c)>=min(b,d)){cout<<"Gellyfish"<<endl;}else{cout<<"Flower"<<endl;}
}int main(){// 關閉輸入輸出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科學計數法// cout<<fixed;// 四舍五入中間填保留幾位小數,不填默認// cout.precision();int t=1;cin>>t;while (t--) solve();return 0;
}



B. Gellyfish and Baby's Breath

翻譯:

????????Flower 給 Gellyfish 提供了 [0,1,...,n-1]的兩個排列?:p_0,p_1,...,p_{n-1}q_0,q_1,...,q_{n-1}

????????現在,Gellyfish 希望通過以下方法計算一個數組 r_0,r_1,...,r_{n-1}?的計算方法如下:

  • 對于所有 i (0≤i≤n-1),r_imax^i_{j=0}(2^{p_j}+2^{q_{i-j}})

????????但由于水母很懶,你必須幫她算出 r 的元素。

????????由于 r 的元素非常大,你只需輸出 r 的元素 modulo 998244353。

思路:

????????2的i次從二進制數來看2^i+2^j與其他同類型的比較,一般由i,j中的較大部分即可。

? ? ? ? 即我們在遍歷r中,記錄p,q最大值的下標,再通過比較兩者及其對應的qp值大小,可得到最大值。(位運算)

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll MX = 1e6+10;
const ll mod = 998244353;
vector<ll> pow_2(MX,1);
void solve(){int n;cin>>n;vector<ll> a(n),b(n),ans(n);for (auto &i:a) cin>>i;for (auto &i:b) cin>>i;ll ind_a_max = 0,ind_b_max = 0;for (int i=0;i<n;i++){// updateif (a[i]>a[ind_a_max]) ind_a_max = i;if (b[i]>b[ind_b_max]) ind_b_max = i;if (a[ind_a_max]>b[ind_b_max] || (a[ind_a_max]==b[ind_b_max] && b[i-ind_a_max]>a[i-ind_b_max])){ans[i] = (pow_2[a[ind_a_max]]+pow_2[b[i-ind_a_max]])%mod;}else{ans[i] = (pow_2[a[i-ind_b_max]]+pow_2[b[ind_b_max]])%mod;}}for (int i=0;i<n;i++){cout<<ans[i]<<" \n"[i==n-1];}
}int main(){// 關閉輸入輸出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科學計數法// cout<<fixed;// 四舍五入中間填保留幾位小數,不填默認// cout.precision();// initiationfor (int i=1;i<MX;i++){pow_2[i] = (pow_2[i-1]*2)%mod;}int t=1;cin>>t;while (t--) solve();return 0;
}



C. Gellyfish and Flaming Peony

翻譯:

????????水母討厭數學問題,但她必須完成數學作業:

????????給水母一個由 n 個正整數 a1、a2......、an 組成的數組。

????????她需要進行以下兩步運算,直到 a 的所有元素都相等為止的所有元素都相等:

  • 選擇滿足 1≤i,j≤n 和 i≠j 的兩個索引 i、j。
  • 用 gcd(ai,aj) 代替 ai。

????????現在,水母向你詢問實現目標所需的最少運算次數。

????????可以證明,水母總能實現她的目標。

思路:

? ? ? ? 最后a數組的值每個都必定是gcd(\sum\limits^{n}_{i=1}ai)。那么先用最小的次數將一個值變為最終值(廣度優先搜索),再通過這個值,與其他不同的值gcd,即可最快完成目標。(數學,bfs)

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll mod = 998244353;
void solve(){int n,mx=0;cin>>n;vector<int> a(n);for (int&i:a) cin>>i;int res = a[0];for (int& i:a) res = gcd(res,i),mx = max(mx,i);// bfs:查找最小得到res的集合vector<int> cnt(mx+1,-1);queue<array<int,2>> pq;for (int &i:a){pq.push({i,0});}while (!pq.empty()){auto[now,step] = pq.front();pq.pop();if (cnt[now]!=-1) continue;cnt[now] = step;if (now==res){break;}for (int &i:a){int new_gcd = gcd(i,now);if (cnt[new_gcd]==-1){pq.push({new_gcd,step+1});}}}int need = cnt[res],ans = 0;for (int &i:a) ans+=(res!=i);if (need>0) ans+=need-1;cout<<ans<<"\n;
}int main(){// 關閉輸入輸出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科學計數法// cout<<fixed;// 四舍五入中間填保留幾位小數,不填默認// cout.precision();int t=1;cin>>t;while (t--) solve();return 0;
}

之后補題會在此增加題解。????

話說看我題解的有真人不?

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

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

相關文章

數字創新智慧園區建設及運維方案

該文檔是 “數字創新智慧園區” 建設及運維方案,指出傳統產業園區存在管理粗放等問題,“數字創新園區” 通過大數據、AI、物聯網、云計算等數字化技術,旨在提升園區產業服務、運營管理水平,增強競爭力,實現綠色節能、高效管理等目標。建設內容包括智能設施、核心支撐平臺、…

緩存一致性協議的影響

在操作系統中&#xff0c;線程切換相比進程切換更輕量級的關鍵原因之一是 緩存&#xff08;Cache&#xff09;的有效性&#xff0c;尤其是對 CPU 緩存&#xff08;如 L1/L2/L3&#xff09;和 TLB&#xff08;Translation Lookaside Buffer&#xff09;的影響。以下從緩存角度詳…

六月一日python-AI代碼

python 運行 import turtle as t # 導入turtle庫并簡稱為t&#xff0c;用于圖形繪制 import random # 導入random庫&#xff0c;用于隨機數生成t.delay(0) # 設置繪圖延遲為0&#xff0c;加快繪圖速度 colors ["red", "blue", "gr…

58、辣椒種植學習

辣椒&#xff08;學名&#xff1a;Capsicum annuum&#xff09;屬于茄科辣椒屬&#xff0c;是一種重要的蔬菜兼調味作物&#xff0c;具有較高的經濟價值和營養價值。其果實富含維生素C、辣椒素等成分&#xff0c;既可鮮食&#xff0c;也可加工成干辣椒、辣椒粉、辣椒醬等產品&a…

C語言進階--程序的編譯(預處理動作)+鏈接

1.程序的翻譯環境和執行環境 在ANSI C標準的任何一種實現中&#xff0c;存在兩種不同的環境。 第一種是翻譯環境&#xff1a;將源代碼轉換為可執行的機器指令&#xff08;0/1&#xff09;; 第二種是執行環境&#xff1a;用于實際執行代碼。 2.詳解編譯鏈接 2.1翻譯環境 程…

微調大模型:什么時候該做,什么時候不該做?

目錄 一、什么是“微調”&#xff1f;你真的需要它嗎&#xff1f; 二、什么時候不該微調&#xff1f; &#x1f6ab; 不該微調的 5 個典型場景&#xff1a; 1. 通用問答、閑聊、常識類內容 2. 企業內部問答 / 文檔助手 3. 想要通過微調“學會格式” 4. 沒有大量高質量標…

微深節能 碼頭裝卸船機定位與控制系統 格雷母線

微深節能碼頭裝卸船機定位與控制系統&#xff1a;格雷母線技術賦能港口作業智能化升級 在現代化港口散貨裝卸作業中&#xff0c;裝卸船機是連接船舶與陸域運輸的核心樞紐設備。傳統裝卸船機依賴人工操作&#xff0c;存在定位偏差大、動態協同難、安全風險高等痛點。微深節能基于…

如何檢查popover氣泡組件樣式?調試懸停元素CSS樣式的解決方案

1. 問題 當我們要檢查這種彈出層的CSS樣式時&#xff0c;會發現特別棘手&#xff0c;因為鼠標移走就消失了。如果是display:none控制的&#xff0c;可能還能找到&#xff0c;如果是用js通過v-if控制的&#xff0c;就無法調試了。 2. 解決方案 使用 setTimeout debugger 就…

網絡攻防技術一:緒論

文章目錄 一、網絡空間CyberSpace1、定義2、基本四要素 二、網絡空間安全1、定義2、保護對象3、安全屬性4、作用空間 三、網絡攻擊1、攻擊分類2、攻擊過程 四、網絡防護1、定義2、安全模型3、安全服務5類4、特定安全機制8種5、普遍性安全機制5種 五、網絡安全技術發展簡史1、第…

徹底理解Spring三級緩存機制

文章目錄 前言一、Spring解決循環依賴時&#xff0c;為什么要使用三級緩存&#xff1f; 前言 Spring解決循環依賴的手段&#xff0c;是通過三級緩存&#xff1a; singletonObjects&#xff1a;存放所有生命周期完整的單例對象。&#xff08;一級緩存&#xff09;earlySingleto…

【 SpringCloud | 微服務 網關 】

單體架構時我們只需要完成一次用戶登錄、身份校驗&#xff0c;就可以在所有業務中獲取到用戶信息。而微服務拆分后&#xff0c;每個微服務都獨立部署&#xff0c;這就存在一些問題&#xff1a; 每個微服務都需要編寫登錄校驗、用戶信息獲取的功能嗎&#xff1f; 當微服務之間調…

【前端面經】字節跳動一面

寫在前面&#xff1a;面經只是記錄博主遇到的題目。每題的答案在編寫文檔的時候已經有問過deepseek&#xff0c;它只是一種比較普世的答案&#xff0c;要學得深入還是靠自己 Q&#xff1a;三欄布局的實現方式&#xff08;圣杯模型&#xff09;如何實現 A&#xff1a; /* 整個 …

ST-GCN

1.bash 安裝git 在目錄下右鍵使用git bash打開 需要安裝wgetbash download_model.sh&#xff0c;下載.sh文件 wget: command not found&#xff0c;Windows系統使用git命令 下載預訓練權重_sh文件下載-CSDN博客 bash tools/get_models.sh 生成了三個.pt文件

計算機網絡全維度解析:架構協議、關鍵設備、安全機制與新興技術深度融合

計算機網絡作為當今數字化社會的基石&#xff0c;其復雜性和應用廣泛性遠超想象。本文將從基礎架構、協議體系、關鍵設備、安全機制到新興技術&#xff0c;進行全方位、深層次的解析&#xff0c;并輔以實際應用場景和案例分析。 一、網絡架構與分類的深度剖析 1.1 網絡分類的立…

大語言模型的推理能力

2025年&#xff0c;各種會推理的AI模型如雨后春筍般涌現&#xff0c;比如ChatGPT o1/o3/o4、DeepSeek r1、Gemini 2 Flash Thinking、Claude 3.7 Sonnet (Extended Thinking)。 對于工程上一些問題比如復雜的自然語言轉sql&#xff0c;我們可能忍受模型的得到正確答案需要更多…

黑馬程序員C++核心編程筆記--3 函數高級

3.1 函數默認參數 本節內容之前已經整理過&#xff0c;詳見22.函數的默認值 3.2 函數占位參數 C中函數的形參列表里可以有占位參數&#xff0c;用來做占位&#xff0c;調用函數時必須補填該位置 語法&#xff1a; 返回值類型 函數名 (數據類型) {} 在現階段函數的占位參數…

數據倉庫分層 4 層模型是什么?

企業每天都在產生和收集海量數據。然而&#xff0c;面對這些數據&#xff0c;許多企業卻陷入了困境&#xff1a;如何高效管理、處理和分析這些數據&#xff1f;如何從數據中提取有價值的信息來支持業務決策&#xff1f;這些問題困擾著眾多數據分析師和 IT 管理者。 在眾多架構…

Java正則表達式完全指南

Java正則表達式完全指南 一、正則表達式基礎概念1.1 什么是正則表達式1.2 Java中的正則表達式支持 二、正則表達式基本語法2.1 普通字符2.2 元字符2.3 預定義字符類 三、Java中正則表達式的基本用法3.1 編譯正則表達式3.2 創建Matcher對象并執行匹配3.3 常用的Matcher方法 四、…

緩存擊穿、緩存雪崩、緩存穿透以及數據庫緩存雙寫不一致問題

在項目中&#xff0c;我們所需要的數據通常存儲在數據庫中&#xff0c;但是數據庫的數據保存在硬盤上&#xff0c;硬盤的讀寫操作很慢&#xff0c;為了避免直接訪問數據庫&#xff0c;我們可以使用 Redis 作為緩存層&#xff0c;緩存通常存儲在內存中&#xff0c;內存的讀寫速度…

可靈2.1 vs Veo 3:AI視頻生成誰更勝一籌?

在Google發布Veo 3幾天后,可靈顯然感受到了壓力,發布了即將推出的視頻模型系列可靈 2.1的早期體驗版。 據我了解,有三種不同的模式: 可靈 2.1 標準模式: 720p分辨率 僅支持圖像轉視頻(生成更快,一致性更好) 5秒視頻仍需20積分 可靈 2.1 專業模式: 1080p分辨率 僅在圖…