Educational Codeforces Round 179 (Rated for Div. 2)(A-E)

題目鏈接:Dashboard - Educational Codeforces Round 179 (Rated for Div. 2) - Codeforces

A. Energy Crystals

思路

貪心地模擬一下過程很容易就看出來了,每次變成盡可能大的數

1 1 0 -> 1 1 3 -> 3 3 5 -> 5 5 11....我們只需要關注最大的數直到它大于等于x然后再進行兩步操作將剩余的倆數變成x

代碼

void solve(){int x;cin>>x;int ct=0;int now=1;while(now<x){ct++;now=now*2+1;}cout<<ct*2+3<<"\n";
}

B. Fibonacci Cubes

思路

因為是斐波那契數,我們能夠發現只有兩種擺放方式是合法的,

1.最大的放在底部,其余的放在最大的上面(可以證明這是能夠放下的)此類方法要求l與w必須>=x,h要>=x+y,其中x為最大正方體的邊長,y為次大的

2.最大的和次大的都放在底部,其余的都放在次大的上面,這樣我們的h只需要>=x即可,l和h必須都>=x且至少有一個是>=x+y的

代碼

#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int N=2e5+10;
const int inf=1e18;
const int mod=998244353;void solve(){int n,m;cin>>n>>m;vector<int> dp(n+10);dp[1]=1;dp[2]=2;for(int i=3;i<=n;i++){dp[i]=dp[i-1]+dp[i-2];}int x=dp[n];int y=dp[n-1];vector<int> ans(m+10,0);for(int i=1;i<=m;i++){int w,l,h;cin>>w>>l>>h;if(w>=x&&l>=x&&h>=(x+y)){ans[i]=1;}if(w>=x&&l>=x&&h>=x&&(w-x>=y||l-x>=y)){ans[i]=1;}}for(int i=1;i<=m;i++){cout<<ans[i];}cout<<"\n";
}
signed main() {vcoistntcout<<fixed<<setprecision(2);int _=1;cin>>_;while(_--) solve();return 0;
}

C. Equal Values

思路

直接帶有貪心的思想暴力枚舉一下就可以了,有一連串相同的數一定是選左端和右端

代碼

void solve(){int n;cin>>n;vi a(n+10);for(int i=1;i<=n;i++){cin>>a[i];}int i=1;int ans=inf;while(i<=n){int ti=i;while((ti+1)<=n&&a[ti+1]==a[i]){ti++;}ans=min(ans,(i-1)*a[i]+(n-ti)*a[ti]);i=ti+1;}cout<<ans<<"\n";
}

D. Creating a Schedule

思路

貪心,首先兩個教室可以供兩個小組來進行,一個小組:x? y x y x y 另一個:y x y x y x

我們按照教室的層數排序,每兩個小組選擇剩余兩端點的兩個教室然后移除(可以用雙指針實現)

注意奇數時最后一個小組要單獨處理

代碼

#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int N=2e5+10;
const int inf=1e18;
const int mod=998244353;bool cmp(int x,int y){return x/100>y/100;
}void solve(){int n,m;cin>>n>>m;vi a(m+10);for(int i=1;i<=m;i++){cin>>a[i];}sort(a.begin()+1,a.begin()+1+m,cmp);int l=1,r=m;for(int i=2;i<=n;i+=2){for(int j=1;j<=3;j++){cout<<a[l]<<" "<<a[r]<<" ";}cout<<"\n";for(int j=1;j<=3;j++){cout<<a[r]<<" "<<a[l]<<" ";}cout<<"\n";l++;r--;}if(n%2){for(int i=1;i<=3;i++){cout<<a[l]<<" "<<a[r]<<" ";}cout<<"\n";}
}
signed main() {vcoistntcout<<fixed<<setprecision(2);int _=1;cin>>_;while(_--) solve();return 0;
}

E. Changing the String

思路

貪心

因為在執行操作的時候我們可以選擇什么也不做,所以可以先將所有操作給統計出來(注意是有順序的),然后再遍歷字符串看能否將其變小

1.當s[i]=='a'時,我們是不需要進行操作的因為a已經是最小了

2.當s[i]=='b'時,如果當前b->a的操作有剩余,將其變成a

否則,看是否能夠完成操作b->c->a (注意此時要求b->c操作需要在c->a操作之前)

3.當s[i]=='c'時

首先我們需要看c->a操作是否有剩余,將其變成a。其次看c->b->a是否有,最后再看c->b

代碼

#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int N=2e5+10;
const int inf=1e18;
const int mod=998244353;void solve(){int n,q;cin>>n>>q;string s;cin>>s;int ct1=0;  //b->aint ct2=0;  //b->cint ct3=0;  //c->aint ct4=0;  //c->bint ct5=0;  //在b->c前面有的基礎上c->a  b->c->aint ct6=0;  //在c->b前面有的基礎上b->a  c->b->afor(int i=1;i<=q;i++){char x,y;cin>>x>>y;if(x=='a') continue;if(x=='b'&&y=='a') ct1++;if(x=='b'&&y=='c') ct2++;if(x=='c'&&y=='a') ct3++;if(x=='c'&&y=='b') ct4++;if(x=='c'&&y=='a'){if(ct5<ct2) ct5++;}if(x=='b'&&y=='a'){if(ct6<ct4) ct6++;}}for(int i=0;i<n;i++){if(s[i]=='b'){if(ct1){ct1--;s[i]='a';}else{if(ct5&&ct2&&ct3){ct5--;ct2--;ct3--;s[i]='a';}}}else if(s[i]=='c'){if(ct3){ct3--;s[i]='a';}else{if(ct6&&ct4&&ct1){ct6--;ct4--;ct1--;s[i]='a';}else if(ct4){ct4--;s[i]='b';}}}}cout<<s<<"\n";
}
signed main() {vcoistntcout<<fixed<<setprecision(2);int _=1;cin>>_;while(_--) solve();return 0;
}

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

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

相關文章

React Native開發鴻蒙運動健康類應用的項目實踐記錄

??項目名稱??&#xff1a;HarmonyFitness - 基于React Native的鴻蒙運動健康應用 ??技術棧??&#xff1a;React Native 0.72.5 TypeScript HarmonyOS API ArkTS原生模塊 一、環境搭建與項目初始化 ??雙環境配置?? ??React Native環境??&#xff1a; npx re…

Linux --UDP套接字實現簡單的網絡聊天室

一、Server端的實現 1.1、服務端的初始化 ①、創建套接字&#xff1a; 創建套接字接口&#xff1a; #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int socket(int domain, int type, int protocol); //1. 這是一個創建套接字的接…

Eureka 高可用集群搭建實戰:服務注冊與發現的底層原理與避坑指南

引言&#xff1a;為什么 Eureka 依然是存量系統的核心&#xff1f; 盡管 Nacos 等新注冊中心崛起&#xff0c;但金融、電力等保守行業仍有大量系統運行在 Eureka 上。理解其高可用設計與自我保護機制&#xff0c;是保障分布式系統穩定的必修課。本文將手把手帶你搭建生產級 Eur…

Spring Boot應用開發實戰

Spring Boot應用開發實戰&#xff1a;從零到生產級項目的深度指南 在當今Java生態中&#xff0c;Spring Boot已占據絕對主導地位——據統計&#xff0c;超過75%的新Java項目選擇Spring Boot作為開發框架。本文將帶您從零開始&#xff0c;深入探索Spring Boot的核心精髓&#xf…

yum更換阿里云的鏡像源

步驟 1&#xff1a;備份原有源配置&#xff08;重要&#xff01;&#xff09; sudo mkdir /etc/yum.repos.d/backup sudo mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/backup/步驟 2&#xff1a;下載阿里云源配置 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https:…

【算法訓練營Day06】哈希表part2

文章目錄 四數相加贖金信三數之和四數之和 四數相加 題目鏈接&#xff1a;454. 四數相加 II 這個題注意它只需要給出次數&#xff0c;而不是元組。所以我們可以分治。將前兩個數組的加和情況使用map存儲起來&#xff0c;再將后兩個數組的加和情況使用map存儲起來&#xff0c;ke…

JS手寫代碼篇---手寫apply方法

11、手寫apply方法 apply方法的作用&#xff1a; apply 是一個函數的方法&#xff0c;它允許你調用一個函數&#xff0c;同時將函數的 this 值設置為指定的值&#xff0c;并將函數的參數作為數組&#xff08;或類數組對象&#xff09;傳遞給該函數。 與call的區別&#xff1…

冪等性:保障系統穩定的關鍵設計

冪等性&#xff08;Idempotence&#xff09; 是計算機科學和分布式系統中的核心概念&#xff0c;指同一操作重復執行多次所產生的效果與執行一次的效果相同。這一特性對系統容錯性、數據一致性至關重要&#xff0c;尤其在網絡通信&#xff08;如HTTP&#xff09;和數據庫設計中…

electron定時任務,打印內存占用情況

// 監聽更新 function winUpdate(){// 每次執行完后重新設置定時器try {// 獲取當前時間并格式化為易讀的字符串const now new Date();const timeString now.toLocaleString();console.log(當前時間: ${timeString});// 記錄內存使用情況&#xff08;可選&#xff09;const m…

華為手機開機卡在Huawei界面不動怎么辦?

遇到華為手機卡在啟動界面&#xff08;如HUAWEI Logo界面&#xff09;的情況&#xff0c;可依次嘗試以下解決方案&#xff0c;按操作復雜度和風險由低到高排序&#xff1a; &#x1f527; 一、強制重啟&#xff08;優先嘗試&#xff09; 1.通用方法? 長按 ?電源鍵 音量下鍵?…

Python爬蟲之數據提取

本章節主要會去學習在爬蟲中的如何去解析數據的方法&#xff0c;要學習的內容有&#xff1a; 響應數據的分類結構化數據如何提取非結構化數據如何提取正則表達式的語法以及使用jsonpath解析嵌套層次比較復雜的json數據XPath語法在Python代碼中借助lxml模塊使用XPath語法提取非…

并行智算MaaS云平臺:打造你的專屬AI助手,開啟智能生活新紀元

目錄 引言&#xff1a;AI助手&#xff0c;未來生活的必備伙伴 并行智算云&#xff1a;大模型API的卓越平臺 實戰指南&#xff1a;調用并行智算云API打造個人AI助手 3.1 準備工作 3.2 API調用示例 3.3 本地智能AI系統搭建 3.4 高級功能實現 并行智算云的優勢 4.1 性能卓越…

三維坐標轉換

如果坐標(x,y,z)->(y,-z,-x)可以使用坐標系&#xff1a; import mathdef mat_vec_mult(matrix, vector):"""將 3x3 矩陣與 3x1 向量相乘。參數&#xff1a;matrix: 3x3 的旋轉矩陣vector: 3x1 的向量返回&#xff1a;3x1 的結果向量"""resul…

【C++高級主題】虛繼承

目錄 一、菱形繼承&#xff1a;虛繼承的 “導火索” 1.1 菱形繼承的結構與問題 1.2 菱形繼承的核心矛盾&#xff1a;多份基類實例 1.3 菱形繼承的具體問題&#xff1a;二義性與數據冗余 二、虛繼承的語法與核心目標 2.1 虛繼承的聲明方式 2.2 虛繼承的核心目標 三、虛繼…

什么是分布式鎖?幾種分布式鎖分別是怎么實現的?

一&#xff1a;分布式鎖實現思路 1.1 基本原理與實現方式 &#xff08;1&#xff09;分布式鎖的實現方式 &#xff08;2&#xff09;基于Redis的分布式鎖 獲取鎖 長時間無人操作&#xff0c;使鎖自動過期 添加鎖與設置過期時間需原子性 釋放鎖 1.2 實例 &#xff08;1&…

Legal Query RAG(LQ-RAG):一種新的RAG框架用以減少RAG在法律領域的幻覺

人工智能正在迅速改變法律專業人士的工作方式——從起草合同到進行研究。但盡管大型語言模型&#xff08;LLM&#xff09;功能強大&#xff0c;它們在關鍵領域卻常常出錯&#xff1a;真實性。當人工智能在法律文件中“幻覺”出事實時&#xff0c;后果可能是嚴重的——問問那些無…

如何用AI高效運營1000+Tiktok矩陣賬號

在當今數字化的時代&#xff0c;Tiktok 矩陣賬號運營成為了眾多企業和個人追求流量與變現的重要手段。然而&#xff0c;面對眾多的賬號管理&#xff0c;如何高效運營成為了關鍵。此時&#xff0c;AI 工具的出現為我們提供了強有力的支持。 一、Tiktok 矩陣賬號的重要性 Tiktok…

數據結構與算法學習筆記(Acwing 提高課)----動態規劃·樹形DP

數據結構與算法學習筆記----動態規劃樹形DP author: 明月清了個風 first publish time: 2025.6.4 ps??樹形動態規劃&#xff08;樹形DP&#xff09;是處理樹結構問題的一種動態規劃方法&#xff0c;特征也很明顯&#xff0c;會有一個樹形結構&#xff0c;其實是DFS的優化。…

得物GO面試題及參考答案

動態規劃的概念是什么&#xff1f; 動態規劃&#xff08;Dynamic Programming, DP&#xff09;是一種通過將復雜問題分解為重疊子問題&#xff0c;并利用子問題的解來高效解決原問題的方法。其核心思想在于避免重復計算&#xff0c;通過存儲子問題的解&#xff08;通常使用表格…

掃地機產品--氣壓傳感器器件異常分析

掃地機產品–氣壓傳感器器件異常分析 文章目錄 掃地機產品--氣壓傳感器器件異常分析一.背景1?.1 **標準大氣壓的定義與數值**?二.分析故障2.1**萬用表如何測量二極管**2.2 不良氣壓傳感器的萬用表二極管擋位測量結果分析。2.3 不良氣壓傳感器的開蓋分析2.4 結論2.5 后續措施三…