AtCoder Beginner Contest 416(ABCDE)

A - Vacation Validation

翻譯:

????????給你一個長度為 N 的字符串 S,它由 o 和 x 以及整數 L 和 R 組成。

????????請判斷 S 中從第 L 個字符到第 R 個字符的所有字符是否都是 o。

思路:

? ? ? ? (模擬)

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;void solve(){int n,l,r;cin>>n>>l>>r;string s;cin>>s;s = ' '+s;int f = 1;for (int i=l;i<=r;i++){f &= (s[i]=='o');}cout<<(f ? "Yes" : "No")<<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 - 1D Akari

翻譯:

????????給你一個由 . 和 # 組成的字符串 S。

????????在滿足以下所有條件的所有字符串 T 中,找出一個具有最多 o 的字符串。

  • T 的長度等于 S 的長度。
  • T 由 .、# 或 o 組成。
  • 當且僅當?S_i = # 時,T_i = #。
  • 如果 T_i=T_j=o(i<j),那么在 T_{i+1},...,T_{j-1} 中至少存在一個 #。

思路:

? ? ? ? 這題S與T的#位置是一一對應的。遍歷S,遍歷i到#時將右邊T[i+1]=o,最后將T自左到右第一個非#變為o。(模擬,貪心)

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;void solve(){string s;cin>>s;bool flag = 0;int n = s.size();char res[n];for (int i=0;i<n;i++){res[i] = s[i];if (s[i]=='#'){if (!flag){for (int j=i-1;j>=0;j--){if (res[j]=='.'){flag = 1;res[j] = 'o';break;}}}if (flag){for (i+=1;i<n;i++){if (s[i]=='.') {res[i] = 'o';break;}else{res[i] = s[i];}}}}}flag = 1;for (int i=0;i<n;i++) flag&=(res[i]=='.');if (flag) res[0] = 'o';for (int i=0;i<n;i++) cout<<res[i];
}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;
}



C - Concat (X-th)

翻譯:

????????給你 N 個字符串 S_1,...,S_N

????????對于長度為 K 的序列(A_1,...,A_K),其中所有元素都在 1 到 N 之間(包括 N),定義字符串 f(A_1,...,A_K)S_{A_1}+S_{A_2}+...+S_{A_K}

????????將 N^K 個序列的所有f(A_1,...,A_K) 按詞序排序,找出第 X 個最小的字符串。

思路:

? ? ? ? 求出所有情況放入數組,排序數組得到第 X 個最小的字符串。(dfs)

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;void solve(){int n,k,x,m,cnt=0;cin>>n>>k>>x;m = (int)pow(n,k);string s[n+1];vector<string> res(m);vector<int> a(k);for (int i=1;i<=n;i++) cin>>s[i];function<void(int)> dfs = [&](int step) {if (step == k) {string tmp = "";for (int i = 0; i < k; i++) tmp += s[a[i]];res[cnt++] = tmp;return;}for (int i = 1; i <= n; i++) {a[step] = i;dfs(step + 1);}};dfs(0);sort(res.begin(),res.end());cout<<res[x-1]<<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;
}

D - Match, Mod, Minimize 2

翻譯:

????????給你長度為 N 的序列 A=(A_1,A_2,...,A_N)B=(B_1,B_2,...,B_N),它們由非負整數和正整數 M 組成。

????????當你可以自由地重新排列 A 的元素時,求?\sum\limits_{i=1}^N((A_i+B_i)\mod M) 的最小值。

????????已給出 T 個測試案例,請為每個案例找出答案。

思路:

? ? ? ? 先對A與B取模,要讓和最小那么A,B中和大于M的對數應該最大,以此減去更多的M。對A,B升序排序再使用雙指針配對。(數學,雙指針)

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;void solve(){ll n,m,res=0;cin>>n>>m;vector<ll> a(n),b(n);for (ll &i:a){cin>>i;i=i%m;res+=i;}for (ll &i:b){cin>>i;i=i%m;res+=i;}sort(a.begin(),a.end());sort(b.begin(),b.end());for (int i=0,j=n-1;i<n;i++){if (a[i]+b[j]>=m){res-=m;j--;}}cout<<res<<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;
}

E - Development

翻譯:

????????AtCoder 國家有 N 個城市(編號從1 到 N)、M 條公路和 K 個機場。

????????第 i 條公路雙向連接城市 A_iB_i,需要 C_i?小時的路程。D_1,...,D_K 城市都有機場,在有機場的城市之間旅行需要 T 小時。

????????按順序處理 Q 個查詢。每個查詢都是以下三種類型之一:

  • 1 x y t: 建造一條在 t 小時內雙向連接 x 和 y 兩個城市的道路。
  • 2 x: 一個機場建造在城市x。
  • 3:設 f(x,y)為從城市 x 出發,利用公路和機場(如果可以到達)到達城市 y 所需的最小小時數,0(如果無法到達)。求 \sum^N_{x=1}\sum^N_{y=1}f(x,y)

思路:

? ? ? ? 要理解floyd的最外層是作為中間點存在,在執行查詢1時,將中間點固定為x,y;執行查詢2時,先確定一個超級原點0,將所有x連在0上,此時中間點為x,0,此時兩個機場間的距離會變為2t為了平衡將查詢1的時間乘2即可;(floyd)

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll INF = 1e18;
ll n,m,k,t;
vector<vector<ll>> maze(510,vector<ll>(510,INF));
void solve(){cin>>n>>m;for (int i=0;i<=n;i++) for (int j=0;j<=n;j++) maze[i][j] = INF;for (int i=0;i<=n;i++) maze[i][i] = 0;for (ll a,b,c,i=0;i<m;i++){cin>>a>>b>>c;maze[a][b] = maze[b][a] = min(maze[a][b],2*c);}cin>>k>>t;for (ll a,i=0;i<k;i++){cin>>a;maze[a][0] = maze[0][a] = t;}for (ll kk=0;kk<=n;kk++){for (ll i=0;i<=n;i++){for (ll j=0;j<=n;j++){maze[i][j] = min(maze[i][j],maze[i][kk]+maze[kk][j]);}}}ll q,flag,a,b,c;cin>>q;while (q--){cin>>flag;if (flag==1){cin>>a>>b>>c;maze[a][b] = maze[b][a] = min(maze[a][b],2*c);for (ll i=0;i<=n;i++){for (ll j=0;j<=n;j++){maze[i][j] = min({maze[i][j],maze[i][a]+maze[b][j]+maze[a][b],maze[i][b]+maze[a][j]+maze[b][a]});}}}else if (flag==2){cin>>a;maze[a][0] = maze[0][a] = t;for (ll i=0;i<=n;i++){for (ll j=0;j<=n;j++){maze[i][j] = min({maze[i][j],maze[i][a]+maze[a][0]+maze[0][j],maze[i][0]+maze[0][a]+maze[a][j]});}}}else{ll res = 0;for (ll i=1;i<=n;i++){for (ll j=1;j<=n;j++){if (maze[i][j]!=INF){res+=maze[i][j];}}}cout<<(res>>1)<<'\n';}}
}int main(){// 關閉輸入輸出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科學計數法// cout<<fixed;// 四舍五入中間填保留幾位小數,不填默認// cout.precision();int t=1;while (t--) solve();return 0;
}

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

思路標準:思路+算法概要+時空復雜度。

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

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

相關文章

【AlphaFold3】網絡架構篇(2)|Input Embedding 對輸入進行特征嵌入

博主簡介&#xff1a;努力學習的22級計算機科學與技術本科生一枚&#x1f338;博主主頁&#xff1a; Yaoyao2024往期回顧&#xff1a;【AlphaFold3】網絡架構篇&#xff08;1&#xff09;|概覽預測算法每日一言&#x1f33c;: 去留無意&#xff0c;閑看庭前花開花落&#xff1b…

秋招Day20 - 微服務 - 概念

什么是微服務&#xff1f;將一個大型的單體項目分割成一個個可以獨立開發和部署的小服務&#xff0c;服務之間松耦合&#xff0c;可以通過輕量級通信機制&#xff08;比如HTTP&#xff09;相互協作微服務帶來了哪些挑戰&#xff1f; 介紹一下一下Dubbo&#xff1f;Dubbo是一個高…

PyTorch 生態四件套:從圖片、視頻到文本、語音的“開箱即用”實踐筆記

寫在前面 當我們談論 PyTorch 時&#xff0c;我們首先想到的是 torch.Tensor、nn.Module 和強大的自動求導系統。但 PyTorch 的力量遠不止于此。為了讓開發者能更高效地處理圖像、文本、音頻、視頻等真實世界的復雜數據&#xff0c;PyTorch 建立了一個強大的官方生態系統。本文…

2023 年 NOI 最后一題題解

問題描述2023 年 NOI 最后一題是一道融合圖論與動態規劃的綜合優化問題&#xff0c;聚焦于帶時間窗約束的多路徑規劃。題目具體要求如下&#xff1a;給定一個有向圖&#xff0c;其中節點代表城市&#xff0c;邊代表交通路線。每條邊具有三個屬性&#xff1a;行駛時間、基礎費用…

Android補全計劃 TextView設置文字不同字體和顏色

1 富文本 1 java中動態加載文本 顏色 String strMsg "今天<font color\"#00ff00\">天氣不錯</font>"; tv_msg.setText(Html.fromHtml(strMsg));字體和顏色 String str2 "今天<font color\"#00ff00\"><big>天氣不…

C語言:詳解單鏈表與例題

C語言&#xff1a;詳解單鏈表與例題 1.單鏈表的實現 2.例題&#xff1a;移除鏈表元素 1.單鏈表的實現 鏈表根據帶頭或不帶頭、單向或雙向、循環或不循環分類為8種&#xff0c;最常用的是單鏈表和雙向鏈表&#xff0c;單鏈表是 不帶頭單向不循環 鏈表。 鏈表由節點組成&#xff…

從0開始學習R語言--Day62--RE插補

對于會有多次測量值的數據&#xff0c;用普通的回歸去插補&#xff0c;往往會忽略掉數據個體本身的特點&#xff0c;畢竟多次的測量值其實就代表了數據個體的不穩定性&#xff0c;存在額外的干擾。而RE的插補原理是結合個體本身的隨機效應和群體的固體效應再加上截距進行插補的…

RESTful API開發指南:使用Spring Boot構建企業級接口

目錄 1. 引言2. RESTful API基礎概念3. Spring Boot環境搭建4. 項目結構設計5. 核心組件開發6. 數據庫集成7. 安全認證8. 異常處理9. API文檔生成10. 測試策略11. 部署與監控12. 最佳實踐 1. 引言 在現代軟件開發中&#xff0c;RESTful API已成為構建分布式系統和微服務架構…

從 Print 到 Debug:用 PyCharm 掌控復雜程序的調試之道

目錄摘要調試工具窗口會話工具欄調試工具欄單步工具欄調試器選項卡調用棧幀&#xff08;Frames&#xff09;變量&#xff08;Variables&#xff09;&#x1f4a1; 表達式求值區域&#xff08;Evaluate expression field&#xff09;&#x1f5b1;? 右鍵菜單&#xff08;Contex…

用于前列腺活檢分級的分層視覺 Transformer:邁向彌合泛化差距|文獻速遞-醫學影像算法文獻分享

Title題目Hierarchical Vision Transformers for prostate biopsy grading: Towardsbridging the generalization gap用于前列腺活檢分級的分層視覺 Transformer&#xff1a;邁向彌合泛化差距01文獻速遞介紹前列腺癌是全球男性中第二常見的確診癌癥&#xff0c;也是第五大致命癌…

Apple基礎(Xcode②-Flutter結構解析)

&#x1f3d7;? 目錄結構速查表&#xff08;your_project/ios/ 下&#xff09;ios/ ├── Runner/ ← 原生 iOS 工程根目錄&#xff08;Xcode 打開它&#xff09; │ ├── AppDelegate.swift ← App 入口&#xff08;類似 Android 的 MainActivity&…

X00229-基于深度強化學習的車聯網資源分配python完整

X00229-基于深度強化學習的車聯網資源分配python完整

面向多模態自監督學習的共享表示與獨有表示解耦

通俗說法&#xff1a;在多模態自監督學習中&#xff0c;將共享信息和獨有信息分離開來 Abstract 問題&#xff1a; 傳統方法通常假設在訓練和推理階段都可以訪問所有模態信息&#xff0c;這在實際應用中面對模態不完整輸入時會導致性能顯著下降。 解決方法&#xff1a;提出了一…

【iOS】weak修飾符

前言前面我們已經學習了解了sideTable&#xff0c;今天來看看在OC中&#xff0c;sideTable是如何在我們使用weak時工作的。在OC中&#xff0c;weak修飾符是一種用于聲明“弱引用”的關鍵字&#xff0c;其核心特性是不參與對象的引用計數管理&#xff0c;而且當被引用的對象被釋…

【JVM篇10】:三種垃圾回收算法對比詳解

文章目錄1. 標記-清除算法2. 復制算法3. 標記-整理算法總結與面試要點在通過 可達性分析等算法識別出所有存活對象和垃圾對象后&#xff0c;垃圾收集器&#xff08;GC&#xff1a;Garbage Collector&#xff09;就需要執行回收操作來釋放垃圾對象所占用的內存。以下是三種最基礎…

JXD進步25.7.30

1.為啥是update&#xff0c;因為你if判斷有問題。或者是你上來就給id賦值了。2. 這個是清空network歷史3.斷點位置打在這里&#xff1a;打在上面它進不來4.

Flutter開發實戰之網絡請求與數據處理

第6章:網絡請求與數據處理 “數據是應用的血液,網絡是連接世界的橋梁。” 在移動應用開發中,與服務器進行數據交互是必不可少的功能。無論是獲取用戶信息、提交表單數據,還是上傳圖片、下載文件,都離不開網絡請求。本章將帶你深入掌握Flutter中的網絡編程技巧。 6.1 網絡…

快速分頁實現熱點功能-索引和order by

需求:分頁求出進三天的發布視頻的權重熱度 權重 / 衰減時間 衰減時間 當前時間 - 視頻發布時間 小根堆來實現這個公式可以很好的利用半衰期來進行解決難點:如果一次性加載太多到springBoot服務器里面會造成堆內存占用過多&#xff0c;分頁又有可能造成深分頁問題&#xff0c;…

HAProxy(高可用性代理)

1 HAProxy 簡介 HAProxy&#xff08; High Availability Proxy&#xff09;是一個高性能的負載均衡器和代理服務器&#xff0c;為基于 TCP 和 HTTP 的應用程序提供高可用性、負載平衡和代理&#xff0c;廣泛應用于提高 web 應用程序的性能和可靠性。它支持多種協議&#xff0c…

Vulnhub靶場:ica1

一、信息收集nmap掃描一下IP。&#xff08;掃不出來的可以看一下前面幾篇找ip的步驟&#xff09;下面給了框架的版本是9.2的&#xff0c;我們去kali里搜一下有沒有已經公開的漏洞。searchsploit qdPM 9.2 locate 50176.txt more /usr/share/exploitdb/exploits/php/webapps/50…