Codeforces Round 1027 (Div. 3)

A. Square Year

在這里插入圖片描述
在這里插入圖片描述

題目大意

給你一個四個字符的字符串,代表一個數字s
問是否存在a,b兩個數字,使得 ( a + b ) 2 = s (a+b)^2=s (a+b)2=s

思路

如果s是奇數或不能被開根號一定不行
設sq為s開根號后的結果
將sq一分為2,考慮sq/2有沒有余數的情況

// Author: zengyz
// 2025-06-26 15:53#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{string s;cin >> s;int num = 0;for (int i = 0; i < s.size(); i++){num *= 10;num += s[i] - '0';}int sq = sqrt(num);// cout<<sq<<endl;if (sq * sq != num){cout << -1 << endl;}else{if (sq % 2 == 0)cout << sq / 2 << " " << sq / 2 << endl;elsecout << sq / 2 << " " << sq / 2 + 1 << endl;}return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

B. Not Quite a Palindromic String

在這里插入圖片描述
在這里插入圖片描述

題目大意

給你一個01串,串s長度為n(偶數)
一對索引為好的如果 s i = s n ? i + 1 s_i=s_{n-i+1} si?=sn?i+1?,
給你k,問在任意重排串s的情況下,是否存在k對好的索引

思路

求出能夠湊成的最大值和最小值,設有cnt0個0,cnt1個1,最大值為相同的對著放,即 ( c n t 0 + c n t 1 ) / 2 (cnt0+cnt1)/2 (cnt0+cnt1)/2
最小值就是0101插著放,無可避免會有它們的差值/2個好的索引
另外k-最小值一定要是偶數,因為每次翻轉01會多出兩對好的索引

// Author: zengyz
// 2025-06-26 15:58#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{int n, k;cin >> n >> k;string s;cin >> s;int cnt1 = 0, cnt0 = 0;for (int i = 0; i < n; i++){if (s[i] == '0')cnt0++;elsecnt1++;}if (cnt0 < cnt1)swap(cnt0, cnt1);int maxx = cnt0 / 2 + cnt1 / 2;int minn = (cnt0 - cnt1) / 2;if (minn <= k && k <= maxx){if((k-minn)%2==0)cout << "YES" << endl;else cout<<"NO"<<endl;return;}cout << "NO" << endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

C. Need More Arrays

在這里插入圖片描述
在這里插入圖片描述

題目大意

給你一個數組an,你可以移除數組中任意多個數,在你移除完后,
如果 a i + 1 < a i + 1 a_i+1<a_{i+1} ai?+1<ai+1? ,那么 a i + 1 a_{i+1} ai+1?會新開一個數組
問an最多會分成多少數組

思路

用idx記錄一下上一個分出去的數組,最優解肯定是每個數組就一個元素,方便下一個分新的數組,然后繼續遍歷數組,找到下一個滿足條件的數,將其賦值為idx

//Author: zengyz
//2025-06-26 16:12#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{int n;cin>>n;vector<int> a(n);for(auto &x:a)cin>>x;int idx=0;int cnt=1;for(int i=1;i<n;i++){if(a[idx]+1<a[i]){cnt++;idx=i;}}cout<<cnt<<endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while(_T --) {solve();}return 0;
}

D. Come a Little Closer

在這里插入圖片描述
在這里插入圖片描述

題目大意

在一個1e9*1e9的平面上有n個妖怪,每個妖怪有自己的xy坐標,你可以最多移動一個妖怪,問能覆蓋所有妖怪的最小矩形是多大

思路

按x和y坐標進行排序,每次忽略第一個和最后一個元素(因為他們一定在最外面)
將剩下的元素求行坐標和縱坐標的最小最大值,將他們設成矩陣的長寬
如果算出來的矩陣=n-1,那么就得再多開一行或者一列,取一下最小值
四種情況取最小值即可

// Author: zengyz
// 2025-06-26 16:14#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{int n;cin >> n;vector<pair<int, int>> v(n), u(n);auto cmp1 = [&](pair<int, int> &a, pair<int, int> &b) -> bool{return a.first < b.first;};auto cmp2 = [&](pair<int, int> &a, pair<int, int> &b) -> bool{return a.second < b.second;};for (int i = 0; i < n; i++){cin >> v[i].first >> v[i].second;u[i].first = v[i].first, u[i].second = v[i].second;}sort(v.begin(), v.end(),cmp1);sort(u.begin(), u.end(),cmp2);if (n == 1 || n == 2){cout << n << endl;return;}ll ans = 1e18;auto calc = [&](auto &&calc, vector<pair<int, int>> &f, int l, int r) -> ll{long long idxi = 2e9, idyi = 2e9, idxa = 0, idya = 0;for (int i = l; i < r; i++){ll _x = f[i].first, _y = f[i].second;idxi = min(idxi, _x);idxa = max(idxa, _x);idyi = min(idyi, _y);idya = max(idya, _y);}ll res = (idxa - idxi + 1) * (idya - idyi + 1);if (res == n - 1)res += min(idxa - idxi + 1, idya - idyi + 1);return res;};ans = min(ans, calc(calc, v, 0, n - 1));ans = min(ans, calc(calc, v, 1, n));ans = min(ans, calc(calc, u, 0, n - 1));ans = min(ans, calc(calc, u, 1, n));cout << ans << endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

E. Kirei Attacks the Estate

在這里插入圖片描述
在這里插入圖片描述

題目大意

給你一棵樹,根節點為1
定義一個點的威脅值為 a i ? a p i + a p p i ? . . . a_i-a_{p_i}+a_{p_{p_i}}-... ai??api??+appi????...,其中 p i p_i pi?為i到根節點(1)的父結點
問每個點的最大威脅值為多少

思路

設每個點當前的最大值f1和最小值f2,用dfs開始從根節點1開始遍歷,取最小值的原因是當前的最小值對于子節點來說可能會使威脅值變大(若最小值為負數),使用dfs為當前節點的子節點先初始化最大值為max(0ll,max(-f1[now],-f2[now]));最小值為min(-f1[now],-f2[now]);(now為當前節點)
最后對每一個點取最大值f1即可

// Author: zengyz
// 2025-06-26 16:54#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{int n;cin >> n;vector<ll> a(n + 1), ans(n + 1), f1(n + 1), f2(n + 1);vector<vector<ll>> son(n + 1);for (int i = 1; i <= n; i++){cin >> a[i];}for (int i = 1; i < n; i++){int u, v;cin >> v >> u;son[v].push_back(u);son[u].push_back(v);}auto dfs = [&](auto &&dfs, int now, int fa) -> void{f1[now] += a[now];f2[now] += a[now];// cout<<now<<" "<<f1[now]<<" "<<f2[now]<<endl;for (auto v : son[now]){if (v == fa)continue;f1[v] = max(0ll, max(-f1[now], -f2[now]));f2[v] = min(-f1[now], -f2[now]);dfs(dfs, v, now);}};dfs(dfs, 1, -1);for (int i = 1; i <= n; i++)cout << f1[i] << " ";cout << endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

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

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

相關文章

時序數據庫IoTDB的架構、安裝啟動方法與數據模式總結

一、IoTDB的架構 IoTDB的架構主要分為三個部分&#xff1a; ?時序文件&#xff08;Tsfile&#xff09;?&#xff1a; 專為時序數據設計的文件存儲格式。支持高效的壓縮和查詢性能。可獨立使用&#xff0c;并可通過TsFileSync工具同步至HDFS進行大數據處理。 ?數據庫引擎?…

ArrayList和LinkedList詳解

在Java后端開發中&#xff0c;集合框架是我們日常編程不可或缺的工具&#xff0c;它為數據存儲和操作提供了豐富的實現方式。作為Java集合框架中最常用的兩種List實現&#xff0c;ArrayList和LinkedList各自具有獨特的特性和適用場景。 1. 基本概念 1.1 ArrayList的定義與特性…

警惕微軟Entra ID風險:訪客賬戶存在隱蔽的權限提升策略

訪客用戶訂閱權限漏洞解析 微軟Entra ID的訂閱管理存在訪問控制缺陷&#xff0c;允許訪客用戶在受邀租戶中創建和轉移訂閱&#xff0c;同時保留對這些訂閱的完全所有權。訪客用戶只需具備在源租戶創建訂閱的權限&#xff0c;以及受邀成為外部租戶訪客的身份即可實施此操作。這…

EEG分類攻略2-Welch 周期圖

在EEG信號處理的上下文中&#xff0c;使用Welch方法來估算信號的功率譜密度&#xff08;Power Spectral Density, PSD&#xff09;是一種常見的做法。你的代碼片段是利用**scipy.signal.welch**函數來進行功率譜密度估算&#xff0c;并且涉及到一些關鍵的參數和步驟。讓我們逐步…

開疆智能CCLinkIE轉ModbusTCP網關連接脈沖計數器配置案例

本案例是三菱PLC通過CCLinkIE轉ModbusTCP網關連接脈沖計數器的配置案例&#xff0c;具體配置如下。 配置過程&#xff1a; 首先設置從站通訊參數 主要設置IP地址&#xff0c;工作模式以及端口號&#xff08;Modbus默認502&#xff09; 找到通訊點表&#xff0c;找到需要讀寫的…

gRPC 使用(python 版本)

.proto 文件 .proto 文件 是 gRPC 和 Protocol Buffers 的接口定義文件&#xff0c;它描述了&#xff1a; 要傳遞什么數據&#xff08;也就是消息體 message&#xff09;。要暴露什么接口&#xff08;也就是服務 service 和它們的 方法&#xff09;。 也就是一份規范文件&am…

VMware安裝

勾選【增強型鍵盤驅動程序】 #后期虛擬機用鼠標鍵盤比較好用 VMware創建主機Windows2 選擇類型配置【自定義】 安裝客戶機操作系統【稍后安裝操作系統】 客戶機操作系統【Microsoft Windows】,版本選Windows最高版本 【固件類型】默認UEFI 【處理器配置】選1個處理…

【沉浸式解決問題】微服務子模塊引入公共模塊的依賴后無法bean未注入

目錄 一、問題描述二、場景還原三、原因分析四、解決方案五、拓展知識參考文獻 一、問題描述 在微服務項目中的公共模塊進行了Mybatis Plus配置&#xff0c;創建了配置類并添加了Configuration注解&#xff0c;其他模塊引入該模塊后不生效 我這里是在Mybatis Plus公共模塊中注…

SQL進階:CASE表達式

目錄 1、用一條SQL語句進行不同條件的統計 建表語句&#xff08;MySQL8&#xff09;&#xff1a; 錄入數據&#xff1a; *按性別統計SQL 輸出結果&#xff08;行列轉換&#xff09; 2、在UPDATE語句里進行條件分支 建表語句&#xff08;MySQL8&#xff09;&#xff1a;…

哪四款AI工具讓3D人物手辦制作如此簡單?

在當今數字化時代&#xff0c;AI技術的飛速發展為我們的生活帶來了諸多便利和驚喜。其中&#xff0c;AI生成3D人物手辦工具的出現&#xff0c;讓我們能夠輕松地將自己的創意和想象轉化為實體手辦&#xff0c;滿足了眾多手辦愛好者的個性化需求。今天&#xff0c;我將為大家推薦…

Docker高級管理--Dockerfile鏡像制作

目錄 一:Docker 鏡像管理 1:Docker 鏡像結構 2:Dockerfile介紹 二:Dockerfile 語法基礎 1:基礎指令 2:環境設置指令 3:文件操作指令 4:執行命令指令 5:網絡和暴露端口指令 6.容器掛載指令 三&#xff1a;dockerfile案例 1.構建nginx容器 一:Docker 鏡像管理 Docker…

數字時代的“靈魂”之爭:虛擬人形象的著作權困局與破局之道

首席數據官高鵬律師數字經濟團隊創作&#xff0c;AI輔助。 一、虛擬人的“數字生命”&#xff1a;一場關于“靈魂”的商業博弈 當一個虛擬偶像的“眼神”被復刻成千萬個相似的數字面孔&#xff0c;當一段虛擬主播的“聲音”被拆解為可交易的數據碎片——我們正在見證一個“數…

小型CI/CD搭建(TODO)

1 方案 因為是在國內&#xff0c;所以gitbub Actions&#xff0c;??Azure DevOps?這些就直接拜拜了。 目前主流的大概是三種&#xff1a; 1 阿里云效/騰訊云CODING 2 GitLab CE GitLab Runner 3 Gitee Jenkins deepeseek比較了一下如下&#xff1a; 阿里云效 vs Git…

Android Studio flutter項目運行、打包時間太長

Android Studio&#xff1a;Android Studio Meerkat Feature Drop | 2024.3.2 Patch 1 flutter Sdk&#xff1a;3.29.3 系統&#xff1a;windows flutter sdk從2.10.5升級到3.29.3&#xff0c;但是Flutter 3.16開始新增了使用 Gradle聲明式 plugins {} 塊&#xff0c;gradle文…

【OpenGL學習】(六)圖形添加紋理

文章目錄 【OpenGL學習】&#xff08;六&#xff09;圖形添加紋理紋理環繞紋理過濾紋理顏色與頂點顏色混合 OpenGL紋理介紹&#xff1a;https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 【OpenGL學習】&#xff08;六&#xff09;圖形添加紋理 項目…

allure安裝

一、安裝java 需要安裝java環境&#xff0c;不安裝的話在運行前會報錯下列問題&#xff08;前提是安裝了allure未安裝java&#xff09; 1.官網地址&#xff1a;https://www.oracle.com/ 2.點擊”Download Java“ 3.選擇JDK正式版本&#xff08;需要jdk1.8&#xff09; 4.選擇W…

SpringBoot基于JavaWeb的城鄉居民基本醫療信息管理系統

概述 一個基于SpringBoot框架開發的JavaWeb醫療信息管理系統&#xff0c;采用了現代化的技術架構&#xff0c;功能全面&#xff0c;非常適合作為學習項目或二次開發的基礎。 主要內容 該系統主要包含以下核心功能模塊&#xff1a; ??用戶管理模塊?? 實現管理員、醫生、…

SQL變量聲明與賦值 分支 循環

– 變量 分支 循環 – declare 變量名 數據類型 – declare 關鍵字&#xff0c;作用聲明變量 – 變量名&#xff1a;以開頭 – 數據類型&#xff1a;數據庫中支持的數據類型&#xff1a;int varchar(n) text char(n) nvarchar(n) nchar(n) declare name varchar(255)– 定義多…

AWS S3 可觀測性最佳實踐

AWS S3 介紹 AWS S3&#xff08;Amazon Simple Storage Service&#xff09;是一種可擴展的對象存儲服務&#xff0c;提供高可用性、持久性和安全性。它允許用戶存儲和檢索任意數量的數據&#xff0c;并通過簡單的 Web 服務接口訪問這些數據。S3 支持多種存儲類別&#xff0c;…

Ubuntu下布署mediasoup-demo

一、引言 mediasoup是一個強大的SFU架構的WebRTC流媒體服務器&#xff0c;憑借其多功能性、高性能和可擴展性&#xff0c;mediasoup成為構建多方視頻會議和實時流媒體應用程序的完美選擇。它具有聯播、SVC、傳輸BWE和更多尖端功能。本文介紹了mediasoup-demo在Ubuntu下的布署。…