AtCoder Beginner Contest 397(ABCDE)

目錄

A - Thermometer

翻譯:

思路:

實現:

B - Ticket Gate Log

翻譯:

思路:

實現:

C - Variety Split Easy

翻譯:

思路:

實現:

D - Cubes

翻譯:

思路:

實現:


A - Thermometer

翻譯:

? ? ? ? 高橋測量了自己的體溫,發現它是?X^0C

????????體溫分為以下幾種:

  • 高于或等于?38.0^0C:"高燒"
  • 高于或等于?37.5^0C?和低于?38.0^0C:"發燒"
  • 低于?37.5^0C:"正常"

高橋的體溫屬于哪種分類?請根據輸出部分以整數形式給出答案。

思路:

? ? ? ? 先判斷>=38.0再判斷<37.5,都不對輸出發燒。可以寫快點。

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 1e5+10;void solve(){double n;cin>>n;if (n>=38){cout<<"1\n";}else if (n<37.5){cout<<"3\n";}else{cout<<"2\n";}
}int main(){// 關閉輸入輸出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科學計數法// cout<<fixed;// 中間填保留幾位小數,不填默認// cout.precision();solve();return 0;
}



B - Ticket Gate Log

翻譯:

? ? ? ? 高橋匯總了檢票口的使用記錄。但是,他不小心刪除了一些進出站記錄。他正試圖恢復被刪除的記錄。

????????給你一個由 i 和 o 組成的字符串 S。我們想在 S 的任意位置插入 0 個或多個字符,這樣得到的字符串就能滿足以下條件:

  • 它的長度是偶數,每個奇數(第 1、第 3......個)字符都是 i,而每個偶數(第 2、第 4......個)字符都是 o。

????????求需要插入的最少字符數。在此問題的約束條件下,可以證明通過插入適當數量的字符、 S 就能滿足條件。

思路:

? ? ? ? 字符串?io?是沒問題,無需改變的。那么刪除這些沒問題的后剩下都是要在前后插入的字符了,統計一下剩下字符串長度即可。

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 1e5+10;void solve(){string s;cin>>s;int cnt = 0;for (int i=1;i<s.size();i++){if (s[i]=='o' && s[i-1]=='i') cnt++;}int n = s.size();cout<<n-2*cnt<<"\n";
}int main(){// 關閉輸入輸出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科學計數法// cout<<fixed;// 中間填保留幾位小數,不填默認// cout.precision();solve();return 0;
}



C - Variety Split Easy

翻譯:

? ? ? ? 給你一個長度為 N 的整數序列:A=(A_1,A_2,...,A_N)

????????當把 A 在一個位置分割成兩個非空(連續)子數組時,求這兩個子數組中不同整數的計數之和的最大值。

????????更具體地說,對于整數 i,求以下兩個值的最大和,使得 1≤i≤N-1:(A_1,A_2,...,A_i) 中不同整數的數量,和(A_{i+1},A_{i+2},...,A_N)中不同整數的數量。?

思路:

? ? ? ? 前后綴分解,倒序遍歷設立一個數組suffix,suffix[i]為[ i : n ]中A的不同整數數量。之后正序遍歷求出以每個為分割點得到的和,比較下。

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 3e5+10;
int vis[MX];
void solve(){int n;cin>>n;vector<int> a(n+1);for (int i=1;i<=n;++i) cin>>a[i];vector<int> suffix(n+1);memset(vis,0,sizeof(vis));for (int cnt=0,i=n;i>=1;--i){vis[a[i]]++;if (vis[a[i]]==1) cnt++;suffix[i] = cnt;}int maxx = 0;memset(vis,0,sizeof(vis));for (int cnt=0,i=1;i<n;i++){vis[a[i]]++;if (vis[a[i]]==1) cnt++;maxx = max(maxx,cnt+suffix[i+1]);}cout<<maxx<<"\n";
}int main(){// 關閉輸入輸出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科學計數法// cout<<fixed;// 中間填保留幾位小數,不填默認// cout.precision();solve();return 0;
}

D - Cubes

翻譯:

? ? ? ? 你被給予一個正整數N。決定是否存在一個正整數對(x,y)使得X^3-y^3=N。如果這個整數對,輸出這樣一個整數對(x,y)。

思路:

? ? ? ?N=x^3-y^3 \leq (y+1)^3-y^3=3y^2+3y+1如果y存在,可得y至少都為y<\sqrt\frac{N}{3}。而直接遍歷明顯不行。

? ? ? ? 令d=x-y,?由N=x^3-y^3=(x-y)(x^2+xy+y^2)\geq (x-y)(x-y)^2=d^3可得d\leq \sqrt[3]N。那么如果(x,y)存在,則滿足(d+y)^3-y^3=N=>d^3+3d^2y+3dy^2=N=>d^2+3dy+3y^2=\frac{N}{d}。(注意求冪使用pow返回的是浮點型存在精度問題)。且在d確定的情況下上式單調遞增,可用二分判斷在d確定下y是否存在。

? ? ? ? 結論:先遍歷d區間[1,\sqrt\frac{N}{3}),在內部二分搜索y是否有y滿足d^2+3dy+3y^2=\frac{N}{d}。即可。時間復雜度為O(\sqrt[3]NlogN)。注意在此題中要注意整型越界問題。(純純數學題)

實現:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
void solve(){ll n;cin>>n;for (ll d=1;d*d*d<=n;d++){if (n%d!=0) continue;ll l = 0,r = 900000010;while (l+1!=r){ll mid = (l+r)/2;if (d*d+3*d*mid+3*mid*mid>=n/d){r = mid;}else{l = mid;}}if (d*d+3*d*r+3*r*r==n/d){cout<<r+d<<" "<<r<<"\n";return;}}cout<<-1<<"\n";
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);solve();
}

E - Path Decomposition of a Tree

翻譯:

????????給你一顆有NK個點的樹。點的編號為1,2,...,NK,并且第 i 條邊(i=1,2,...,NK-1)連接點u_iv_i

????????確定這棵樹是否可以分解成 N 條路徑,每條路徑的長度為 K。更確切地說,確定是否存在滿足以下條件的 N×K 矩陣 P:

  • ?P_{1,1},...,P_{1,K},P_{2,1},...,P_{N,K}是一個由1,2,...,NK組成的排列。
  • 對于每個i=1,2,...,N和j=1,2,...,K-1它們間有邊連接著點P_{i,j},P_{i,j+1}

思路:

? ? ? ? 對于一個有NK個節點的樹(以1為根節點),要求得到N個互不干擾大小為K的子樹。

? ? ? ? 如果一個子樹的大小為k(當前樹的根節點也算上)且子節點數量?<=?2。那么這顆子樹為可用路徑,刪除它。

? ? ? ? 如果子樹大小 >k 或 子節點數量?>=3 或 子樹大小 <k 且?子節點數量 >=2。那么答案就只能為No。對于上面子樹的情況可以畫圖輔助思考下。??

實現:

#include<bits/stdc++.h>
using namespace std;
const int MX = 2e5+10;
int n,k;
vector<vector<int>> tree(MX);
int f = 1;
// 屬于當前點的子樹大小
int dfs(int now,int fa){int res = 1,cnt = 0;for (int& i:tree[now]){if (i==fa) continue;int tree_size = dfs(i,now);res += tree_size;if (tree_size) cnt++;}if (res>k || cnt>=3 || res<k && cnt>=2){f = 0;}if (res==k && cnt<=2){res = 0;}return res;
}
void solve(){cin>>n>>k;for (int x,y,i=1;i<n*k;i++){cin>>x>>y;tree[x].push_back(y);tree[y].push_back(x);}dfs(1,1);if (f){cout<<"Yes\n";}else{cout<<"No\n";}
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);solve();
}

??有建議可以評論,我會積極改進qwq。

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

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

相關文章

數模AI使用教程(新) 2025.3.17

DeepseekR1doubao1.5大模型組合&#xff0c;數模智能體題目解答一等水平&#xff0c;另外也有統計建模、期刊復現智能體。 功能&#xff1a;問題重述、解釋數據文件、深度思考與邏輯梳理、問題關鍵點分析、知識整理、查找數據源、問題分析、使用方法推薦[會詢問要求]、模型建立…

Spring Cloud Gateway 生產級實踐:高可用 API 網關架構與流量治理解析

API 網關的核心價值 在分布式微服務架構中&#xff0c;API 網關作為系統流量的唯一入口&#xff0c;承擔著路由分發、安全防護、流量治理三大核心職責。Spring Cloud Gateway 基于響應式編程模型與 Netty 高性能網絡框架&#xff0c;提供靈活的路由規則、動態過濾器鏈和深度集…

在Pycharm配置conda虛擬環境的Python解釋器

〇、前言 今天在配置python解釋器時遇到了這樣的問題 經過一下午自行摸索、上網搜尋后&#xff0c;終于找到的解決的方案&#xff0c;遂將該方法簡要的記錄下來&#xff0c;以備后用&#xff0c;并希望能幫助到有同樣問題或需求的朋友:) 我所使用的軟件的版本如下&#xff0c;假…

寬帶(Broadband)

寬帶&#xff08;Broadband&#xff09; 是一種高速互聯網接入技術&#xff0c;能夠同時傳輸多種類型的數據&#xff08;如語音、視頻、文本等&#xff09;。與傳統的窄帶&#xff08;如撥號上網&#xff09;相比&#xff0c;寬帶提供了更高的數據傳輸速率和更穩定的連接&#…

集成學習(上):Bagging集成方法

一、什么是集成學習&#xff1f; 在機器學習的世界里&#xff0c;沒有哪個模型是完美無缺的。就像古希臘神話中的"盲人摸象"&#xff0c;單個模型往往只能捕捉到數據特征的某個側面。但當我們把多個模型的智慧集合起來&#xff0c;就能像拼圖一樣還原出完整的真相&a…

VLLM:虛擬大型語言模型(Virtual Large Language Model)

VLLM&#xff1a;虛擬大型語言模型&#xff08;Virtual Large Language Model&#xff09; VLLM指的是一種基于云計算的大型語言模型的虛擬實現。它通常是指那些由多個服務器組成的分布式計算環境中的復雜機器學習模型&#xff0c;這些模型能夠處理和理解大量的文本數據。VLLM的…

Springboot+Vue登錄、注冊功能(含驗證碼)(后端!)

我們首先寫一個接口&#xff0c;叫login&#xff01;然后對傳入一個user&#xff0c;因為我們前端肯定是要傳過來一個user&#xff0c;然后我們后端返回一個user&#xff0c;因為我們要根據這個去校驗&#xff01;我們還引入了一個hutool的一個東西&#xff0c;在pom文件里面引…

馮 ? 諾依曼體系結構

馮 ? 諾依曼體系結構 一、馮 ? 諾依曼體系結構推導階段 1&#xff1a;初始計算機體系結構&#xff08;僅輸入、運算、輸出&#xff09;階段 2&#xff1a;加入控制功能&#xff0c;初步形成 CPU 概念階段 3&#xff1a;性能瓶頸與引入內存階段 4&#xff1a;最終馮諾依曼體系…

Python print() 打印多個變量時,可變對象和不可變對象的區別

先來看這段代碼&#xff1a; tmp [] print(tmp, tmp.append(1), tmp)輸出&#xff1a; [1] None [1]并不是一些人認為的 [] None [1] 這是因為列表是可變對象&#xff0c;print()打印前會先計算出所有結果&#xff0c;最后再打印出來&#xff0c;中間在列表中添加了1&#…

【數學 線性代數】差分約束

前言 C算法與數據結構 本博文代碼打包下載 什么是差分約束 x系列是變量&#xff0c;y系列是常量&#xff0c;差分系統由若干如下不等式組成。 x1-x2 < y1 x2-x3 < y2 ? \cdots ? 可能有負環的最短路 個人習慣&#xff1a;如果存在a指向b的邊&#xff0c;則a是b的…

AutoGen :使用 Swarm 構建自治型多智能體團隊

??????本人承接各類AI相關應用開發項目(包括但不限于大模型微調、RAG、AI智能體、NLP、機器學習算法、運籌優化算法、數據分析EDA等) !!!?????? 有意愿請私信!!!AutoGen 的 AgentChat 模塊提供了一種強大的方法來構建多智能體協作系統。 在之前的文章中,我們探討了…

2025人工智能“落地生花”:這六大領域正掀起顛覆性革命

——從醫療到養老&#xff0c;一場“AI”的全民狂歡正在上演 2025年的春天&#xff0c;全球科技界的熱搜被一個中國AI大模型“霸榜”——DeepSeek。從春晚的機器人熱舞到政務系統的“數字員工上崗”&#xff0c;從醫療診斷到工業煉鋼&#xff0c;這場始于春節的技術海嘯&#…

第27周JavaSpringboot git初識

Git 課程筆記 一、Git 的介紹 1. Git 的誕生背景 Git 是 Linux 內核的作者 Linus Torvalds 為了更好地管理 Linux 內核開發而創建的版本控制系統。在 Linux 內核開發初期&#xff0c;由于開發者眾多&#xff0c;協作成本很高&#xff0c;后來使用了 BitKeeper 工具來輔助協作…

藍耘智算|從靜態到動態:探索Maas平臺海螺AI圖片生成視頻功能的強大能力

文章目錄 &#x1f44f;一、技術介紹&#x1f44f;二、平臺注冊&#x1f44f;三、功能體驗&#x1f44f;四、總結 隨著人工智能技術的快速發展&#xff0c;視頻處理和生成技術已經成為了眾多行業關注的熱點。最近&#xff0c;我有機會體驗了藍耘智算平臺的Maas平海螺AI視頻產品…

解決從deepseek接口獲取的流式響應輸出到前端都是undefined的問題

你的前端 EventSource 代碼遇到了 undefined 連續輸出 的問題&#xff0c;通常是因為&#xff1a; AI 返回的內容被拆成了單個字符&#xff0c;導致前端 JSON.parse(event.data).content 獲取到的是單個字符&#xff0c;而 undefined 可能是因為某些數據塊沒有 content 字段。…

VLLM專題(二十七)—使用 Kubernetes

在Kubernetes上部署vLLM是一種可擴展且高效的方式來服務機器學習模型。本指南將引導您使用原生Kubernetes部署vLLM。 此外,您還可以使用以下任意一種方式將vLLM部署到Kubernetes: HelmInftyAI/llmazKServekubernetes-sigs/lwsmeta-llama/llama-stacksubstratusai/kubeaivllm…

前綴和 之 哈希表 之 和 的奇偶與倍數

文章目錄 930.和相同的二元子數組523.連續的子數組和 求解連續子數組的和的問題&#xff0c;常常會使用到這個前綴和的思路&#xff0c;當然當數組存在單調性的時候&#xff0c;可以考慮使用不定長滑動窗口&#xff0c;在這里解釋一下&#xff0c;何為數組的和存在這個單調性&a…

Docker Compose 和 Kubernetes(K8s)對比

Docker Compose 和 Kubernetes&#xff08;K8s&#xff09;在某些方面有相似的功能&#xff0c;但它們的 核心用途和適用場景不同。以下是它們的主要區別和聯系&#xff1a; 1. Docker Compose 和 Kubernetes 的區別 對比項Docker ComposeKubernetes&#xff08;K8s&#xff0…

晶藝代理,100V3.5A高耐壓LA1823完全替換MP9487--啟燁科技有限公司

晶藝品牌LA1823是異步降壓轉換器&#xff0c;COT控制&#xff0c;PFM工作模式, 150KHz/ 250KHz/ 450KHz &#xff0c;開關頻率可調節&#xff0c;輸入電壓4.5~100V&#xff0c;2A平均電流&#xff0c;峰值電流3.5A&#xff0c;采用ESOP8封裝。 晶藝LA1823的特性&#xff1a; 4.…

PLC控制柜在技術創新驅動中功能演進 尤勁恩科技

在智能制造體系中&#xff0c;PLC控制柜不僅承擔著傳統設備控制的基礎功能&#xff0c;更通過工業以太網、PROFIBUS等現場總線技術&#xff0c;構建起分布式控制系統&#xff08;DCS&#xff09;。這種拓撲結構使生產線具備實時數據采集、遠程監控和智能決策能力&#xff0c;顯…