cf(1034)Div3(補題A B C D E F)

哈,這個比賽在開了不久之后,不知道為啥卡了差不多20來分鐘,后面卡著卡著就想睡覺了。實在是太困了....

題目意思:

Alice做一次操作,刪除任意數字a,而Bob做一次操作刪除b使得a+b對4取余是3。

獲勝條件,有人不能再進行操作,則另一個人獲勝。

思路:

A題嘛,直接膽大心細,觀察樣例給的數據,得出,僅當給出的數是4的倍數的時候Bob獲勝。

其他情況下嘛,Alice獲勝。

#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;//質數while(n--){int x;cin>>x;if(x%4==0){cout<<"Bob"<<endl;}else{cout<<"Alice"<<endl;}}
}

?

題目意思:

給定一個數組,a[i]是i選手的戰斗力,當剩余選手超過k名的時候:

隨機選擇兩個選手,淘汰實力較低的那一個,如果實力一樣的話,隨便淘汰一個。

問是否存在一種操作方式,使得j選手可以成為剩下的那k個。

思路:

首先我們對k進行分析,k=1的時候直接特判,此時第j名選手只有最大才能寶珠。

當k>=2的時候,我們給出一個樣例:

1 2 3 4 5 6

此時我們對上述數據進行若干次操作后發現,任意數據都能存活。

那么同理,如果有相同數據的話,也可以共存。

#include<bits/stdc++.h>
using namespace std;
inline void solve(){int n,j,k;cin>>n>>j>>k;vector<int>a(n+1);int mi=-1;for(int i=1;i<=n;i++){cin>>a[i];mi=max(a[i],mi);}if(k>=2){//兩種情況cout<<"Yes"<<endl;return;}int ans=a[j];//此時要是整個數組里面最大的那一個if(ans==mi&&k==1){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}
}
int main(){int n;cin>>n;//質數while(n--){solve();}
}

?題目意思:

給定一個數組,可以做一次操作:

1.選擇一個前綴a,并替換成最小值

2.選擇一個后綴a,并替換成最大值

到最后數組里面只剩下最后一個數字,如果該數字對應第i個字符,則第i個字符為1,否則為0,

輸出01字符串。

思路:

用兩個數組,一個維護前綴最小值,一個維護后綴最大值,最后判斷原數組是否與該兩個數組中的任意一個相等即可。

其實他的原理就是根據題目的意思,維護前綴和后綴。

#include <bits/stdc++.h>
using namespace std;inline void solve() {int n;cin>>n;vector<int>a(n+1);vector<int>pre(n+1,8e18),suf(n+2);//pre維護的是前綴//suf維護的是后綴for(int i=1;i<=n;i++){cin>>a[i];pre[i]=min(pre[i-1],a[i]);}for(int i=n;i>=1;i--){suf[i]=max(suf[i+1],a[i]);}for(int i=1;i<=n;i++){cout<<(a[i]==pre[i]||a[i]==suf[i]?1:0);}cout<<endl;}int main() {int t;cin >> t;while (t--) {solve();}return 0;
}

?題目意思:

給定一個字符串和兩個操作:

Alice操作一次,選擇任意k個位置將其變成0

Bob操作一次,選擇連續k個位置將其變成1

問,在有限的操作次數內,是否能將整個字符串都變成0。

思路:

我們先對

7 4

1011011

這個數據進行分析

此時Alice進行一次操作

0001000

后Bob在進行一次操作(有多個可能性)

1111000

0011110

0001111

此時我們發現在這種情況下,Alice必勝,必勝的條件在于k,k必須是要大于等于n/2+1,此時剛好整個數組被覆蓋的時候中間有重疊的部分。

最后在特判一下第一次Alice就能把數組恢復原狀的情況即可。

#include <bits/stdc++.h>
using namespace std;inline void solve() {int n,k;cin>>n>>k;string ac;cin>>ac;int answer=n/2+1;int sum=0;ac=' '+ac;for(int i=1;i<=n;i++){if(ac[i]=='1')sum++;}//一遍就能把數組恢復原狀if(sum<=k){cout<<"Alice"<<endl;return;}if(k<answer){cout<<"Bob"<<endl;return;}cout<<"Alice"<<endl;return;
}int main() {int t;cin >> t;while (t--) {solve();}return 0;
}

題目意思:

?定義MEX為數組中沒有出現的最小非負數,如

MEX([2, 2, 1]) = 0,因為0不在數組中。

計算從a數組中刪除k個值之后,MEX可能值的數量。(0<=k<=n)

思路:

首先我們先肯定一個事情k=0,和k=n一定是固定的,一定是1。

其次我們在考慮k等于1的時候可以從k=0考慮,同理后推。

此時我們發現,當存在多個相同的數字的時候,相同數字的數量成為了我們要考慮的一個點,從這個切口出發,我們構造一個差分數組即可。

#include <bits/stdc++.h>
using namespace std;
void solve(){int n;cin >> n;vector<int> a(n), answer(n+1), suf(n+2);map<int, int> p;for(int i=0; i<n; i++){cin >> a[i];p[a[i]]++;//統計各個數字出現的次數}for(int i=0; i<=n; i++){suf[p[i]]++;//統計次數出現的次數,并且往后進行自減suf[n-i+1]--;//差分if(!p[i])//當前數組中沒有這個數字的話,直接跳出break;}for(int k=0; k<=n; k++){answer[k] = (k ? answer[k-1] : 0) + suf[k];//和我們之前說的一樣,后面的k受前者k的影響cout << answer[k] << (k != n ? ' ' : '\n');}
}int main(){int t;cin >> t;while(t--) solve();
}

題目意思:

我們定義一個好數組,對于所有的i>=2,gcd(i,pi)!=1。

構造一個這樣的數組,并使得固定點最少。(固定點:當i=p[i])

思路:

其實樣例已經給我們一些提示了,下標為2的數字,對應的是4,下標是4的數字對應的是2,而質數下的數字對應的是自己本身。(暫且我們只能從樣例中看出這么些情況)

隨后我們自己再枚舉一些比較大的數據發現,質數i對應的可以是i*2,i*3,i*4....而i*2對應的可以是i*3,i*4...此時我們可以發現,這些數字(gcd=i)形成了一個環,每個數字只要對應的找到下一個數字即可滿足gcd!=1的情況。

故:

我們只要先對質數進行預處理,再對每一個質數環進行賦值即可。

最后的最后,還有一個點就是如果從小素數開始遍歷,小素數的倍數會覆蓋更多的數(因為小素數的倍數更密集),導致后續大素數的倍數可能已經被分配到其他循環中。
如果從大素數開始遍歷,大素數的倍數更稀疏,可以優先構建較大的循環,而小素數的倍數可以填充剩余的數。

從大的素數開始遍歷可以使得固定點更小。

#include<bits/stdc++.h>
using namespace std;
#define int long long
vector<bool>cmp(1e5+3);
vector<int>zhi;
const int op=1e5+4;
void init(){// 埃拉托斯特尼篩法預計算素數for(int i=2;i*i<=op;i++){if(!cmp[i]){for(int j=i*i;j<=op;j+=i){cmp[j]=1;}}}for(int i=2;i<=op;i++)if(!cmp[i])zhi.push_back(i);
}
void solve(){int n;cin>>n;vector<int>answer(n+1);//cout<<*zhi.rbegin()<<endl;for(auto it=zhi.rbegin();it<zhi.rend();it++){//只能從后往前vector<int>c;for(int i=*it;i<=n;i+=*it){//在n這個范圍內if(!answer[i]){c.push_back(i);}}for(int i=0;i<c.size();i++){answer[c[i]]=c[(i+1)%c.size()];}}/*for(int i=1;i<=n;i++){if(!answer[i]){answer[i]=i;}}*/answer[1]=1;for(int i=1;i<=n;i++){cout<<answer[i]<<(i!=n?' ':'\n');}return;
}
signed main(){init();int n;cin>>n;while(n--)solve();
}

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

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

相關文章

瀏覽器與服務器的交互

瀏覽器地址欄輸入URL&#xff08;網址??&#xff09; ????(1) 服務器進行URL解析??&#xff1a;驗證URL格式&#xff0c;提取協議、域名等 ????(2) 服務器進行DNS查詢??&#xff1a;將域名轉換為IP地址&#xff08;可能涉及緩存或DNS預取&#xff09; ????…

Spring Boot中POST請求參數校驗的實戰指南

在現代的Web開發中&#xff0c;數據校驗是確保應用程序穩定性和安全性的關鍵環節。Spring Boot提供了強大而靈活的校驗機制&#xff0c;能夠幫助開發者輕松地對POST請求參數進行校驗。本文將詳細介紹如何在Spring Boot中實現POST請求參數的校驗&#xff0c;并通過具體的代碼示例…

Spring Boot + MyBatis/MyBatis Plus:XML中循環處理List參數的終極指南

重要提醒&#xff1a;使用Param注解時&#xff0c;務必導入正確的包&#xff01; import org.apache.ibatis.annotations.Param; 很多開發者容易錯誤導入Spring的Param&#xff0c;導致參數綁定失敗&#xff01; 一、為什么需要傳遞List參數&#xff1f; 最常見的場景是動態構…

Design Compiler:自適應重定時(Adaptive Retiming)

相關閱讀 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 簡介 重定時是DC Ultra引入的一種時序優化技術&#xff0c;可以將時序單元&#xff08;觸發器和鎖存器&#xff09;穿越組合邏輯前后移動&#xff0c;以優化設…

解決kali Linux在VMware中的全局縮放問題

在每次啟動kali時&#xff0c;因為屏幕分辨率過高&#xff0c;系統整體特別小&#xff0c;該怎么操作調整合適呢 在搜索中搜索kali HiDPI Mode 選擇yes 然后就會自動調整合適了

Python關鍵字梳理

在 Python 中&#xff0c;關鍵字&#xff08;Keywords&#xff09;是具有特殊含義的保留字&#xff0c;它們用于定義語法和結構。async 是 Python 3.5 引入的關鍵字&#xff0c;用于支持異步編程&#xff08;Asynchronous Programming&#xff09;。下面我將詳細講解 async 及其…

結構體實戰:用Rust編寫矩形面積計算器

文章目錄結構體實戰&#xff1a;用Rust編寫矩形面積計算器&#x1f4d0; 問題描述1?? 基礎版&#xff1a;獨立變量&#xff08;混亂版&#xff09;2?? 進階版&#xff1a;使用元組3?? 終極版&#xff1a;使用結構體&#xff08;優雅版&#xff09;&#x1f3af; 運行結果…

基于開源鏈動2+1模式AI智能名片S2B2C商城小程序的場景零售創新研究

摘要&#xff1a;本文聚焦場景消費邏輯&#xff0c;探討開源鏈動21模式AI智能名片S2B2C商城小程序在場景零售中的應用。通過分析場景消費中消費者體驗的關鍵作用&#xff0c;結合該技術組合的特性&#xff0c;闡述其如何優化場景內容、增強場景美感&#xff0c;為消費者創造超乎…

新發布:26考研院校和專業大綱

復習方向錯了&#xff0c;努力可能白費 近日&#xff0c;多所高校陸續發布2026年碩士研究生招生考試自命題科目大綱&#xff0c;為備考的學子們指明了復習方向。今年的考綱有哪些重要變化&#xff1f;又該如何應對&#xff1f;本文為你全面梳理&#xff01; 院校和專業發布詳情…

matlab/Simulink-全套50個汽車性能建模與仿真源碼模型9

50個simulink模型&#xff08;所有模型羅列如下&#xff0c;沒羅列就是沒有&#xff0c;包含子模塊總共50個。&#xff09; 基于汽車驅動力-行駛阻力平衡圖的汽車動力性仿真模型 基于汽車動力特性圖的汽車動力性仿真模型 基于汽車功率平衡圖的汽車動力性仿真模型 電動汽車動力…

為什么星敏感器(Star Tracker)需要時間同步?—— 從原理到應用的全解析

為什么星敏感器&#xff08;Star Tracker&#xff09;需要時間同步&#xff1f;—— 從原理到應用的全解析 引言 在衛星姿態控制系統中&#xff0c;星敏感器&#xff08;Star Tracker, 簡稱“星敏”&#xff09; 是最精確的姿態測量設備之一&#xff0c;其精度可達角秒級&…

【Cocos TypeScript 零基礎 24.1】

目錄 首次實戰開發心得實戰項目<修仙錄游戲> 首次實戰開發心得 遇到的技術問題也多 發表問題也不少 收入問題 本人都將會寫篇專欄總結一下 實戰項目<修仙錄游戲> 上圖是已上線的實戰項目二維碼 耗費的時間太久了 下次將跟新開發遇到的各種奇奇怪怪的問題 各位看…

Linux關機指令詳解:shutdown命令的使用指南

掌握shutdown命令的正確使用對于Linux系統管理員至關重要&#xff0c;它不僅能確保系統安全關閉&#xff0c;還能避免數據丟失和用戶工作中斷。 目錄 一、基本語法 二、常用選項 三、使用示例 立即關機 10分鐘后關機 指定時間關機&#xff08;如23:00&#xff09; 重啟系…

青少年編程與數學 02-022 專業應用軟件簡介 08 電子設計自動化軟件

青少年編程與數學 02-022 專業應用軟件簡介 08 電子設計自動化軟件一、什么是EDA軟件&#xff08;一&#xff09;定義與起源&#xff08;二&#xff09;功能與分類&#xff08;三&#xff09;技術發展趨勢二、EDA軟件在當前國際競爭中的重要性&#xff08;一&#xff09;技術壁…

TypeScript系列:第六篇 - 編寫高質量的TS類型

掌握這些&#xff0c;ts類型聲明事半功倍 &#x1f4aa;&#x1f3fb; 不要做 永遠不要使用類型 Number、String、Boolean、Symbol 或 Object 這些類型指的是非原始裝箱對象&#xff0c;使用 number、string、boolean 和 symbol 類型不要使用 any 作為類型&#xff0c;除非正在…

逐步構建高性能http服務器及聊天室服務器

目錄 如何拿到瀏覽器發來的http請求 如何給瀏覽器發送響應 響應基本原理 給瀏覽器發送一個網頁作為響應 給瀏覽器發送一個圖片作為響應 接下來我們要做什么 完善業務邏輯 瀏覽器如何訪問特定文件 訪問根目錄下的文件 訪問子文件夾下的文件 習慣性目錄結構 GET請求帶…

水下航行器外形分類詳解

在水下航行器的設計領域&#xff0c;外形是影響其性能和功能的關鍵因素之一。根據不同的設計目的和應用場景&#xff0c;水下航行器的外形可以按照多種方式進行分類。 本文將詳細介紹幾種常見的分類方式及其對應的外形特點。 按流體動力布局分類 標準回轉體 外形標準回轉體外…

Ubuntu:Mysql服務器

mariadb與mysql完全兼容&#xff0c;使用時感受不到差別 目錄 1 mariadb的安裝2 啟動mysql3 關閉防火墻4 連接到mysql5 Mysql的配置文件6 Mysql遠程訪問 1 mariadb的安裝 apt install mariadb-server檢查安裝 ls /etc/init.d2 啟動mysql service mysql restart3 關閉防火墻…

使用systemd 監控服務并實現故障自動重啟

一、為什么需要自動重啟&#xff1f; 在生產環境中&#xff0c;服務可能因內存溢出、資源競爭、外部依賴中斷等問題意外崩潰。手動恢復效率低下&#xff0c;而 systemd 的自動重啟機制可在秒級內恢復服務&#xff0c;顯著提升系統可用性。 ?? 二、systemd 自動重啟的核心配置…

在 React 中使用 WebSockets 構建實時聊天應用程序

實時通信已成為現代 Web 應用程序&#xff08;尤其是在聊天應用程序中&#xff09;不可或缺的功能。實時通信提供了一種強大的方法來實現客戶端和服務器之間的實時雙向通信。在本指南中&#xff0c;我們將逐步講解如何使用React WebSockets構建實時聊天應用程序。 先決條件 在…