吃水果(貪心)

文章目錄

  • 題目描述
    • 輸入格式
    • 輸出格式
    • 樣例輸入
    • 樣例輸出
    • 提交鏈接
    • 提示
  • 解析
  • 參考代碼

題目描述

最近米咔買了 n n n 個蘋果和 m m m 個香蕉,他每天可以選擇吃掉一個蘋果和一個香蕉(必須都吃一個,即如果其中一種水果的數量為 0 0 0,則他不能進行這個操作),或者使用魔法將某一種水果的數量翻倍。

現在米咔想吃西瓜了,但是他的主人賽小息不讓他買新水果,除非蘋果和香蕉沒有了,即數量都是 0 0 0 了。

現在米咔想知道,最少用多少天他可以吃光蘋果和香蕉。

可以證明的是,一定存在一種方案可以讓米咔在若干天后吃光蘋果和香蕉。

輸入格式

第一行一個正整數 T ( T ≤ 100 ) T(T≤100) T(T100),代表數據組數。

接下來 T T T 行每行兩個正整數 n , m ( n , m ≤ 100000 ) n,m(n,m ≤100000) nm(nm100000)

輸出格式

T T T 行,每行一個正整數代表答案。

樣例輸入

3
1 1
1 2
2 5

樣例輸出

1
3
7

提交鏈接

吃水果

提示

對于第三組測試樣例 ( 2 , 5 ) (2,5) 2,5,第一天令 n n n 翻倍變成 ( 4 , 5 ) (4,5) 4,5,接下來連續吃三天水果變成 ( 1 , 2 ) (1,2) 1,2,第五天令 n n n 翻倍變成 ( 2 , 2 ) (2,2) 2,2,接下來連續吃兩天水果,在第七天時吃光蘋果和香蕉。

解析

💡關鍵觀察點是:

  • 每次吃水果操作減少 ( 1 , 1 ) (1,1) (1,1),所以最終蘋果和香蕉數量必須相等才能吃光。

  • 你可以通過對某一邊翻倍,使兩者變得相等(或接近),然后吃掉。

? 主要策略
我們想辦法讓兩個數盡量相等且盡量大,然后每天消耗 ( 1 , 1 ) (1,1) (1,1)。每次操作要么吃掉一對水果,要么對少的那個翻倍,讓它追上多的那個。

參考代碼

#include <bits/stdc++.h>
using namespace std;int main()
{int t, n, m;cin >> t;   //t組樣例while (t--){cin >> n >> m;int cnt = 0;  //統計答案if(n > m)swap(n , m);while(n != m){if(n * 2 <= m)     //小的那個可以翻倍n *= 2 , cnt++;elsen-- , m-- , cnt++;     //當前這一天吃(1,1)}cnt += n;   //跳出while循環的條件為n==m,最終吃n天全部減小到0cout << cnt << endl;}return 0;
}

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

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

相關文章

【FAQ】HarmonyOS SDK 閉源開放能力 —Account Kit(4)

1.問題描述&#xff1a; LoginWithHuaweiIDButton不支持深色模式下定制文字和loading樣式&#xff1f; 解決方案&#xff1a; LoginWithHuaweiIDButtonParams 中的有個supportDarkMode屬性&#xff0c;設置為true后&#xff0c;需要自行響應系統的變化&#xff0c;見文檔&am…

【C語言】指針詳解(接)

前言&#xff1a; 文接上章&#xff0c;在上章節講解了部分指針知識點&#xff0c;在本章節為大家繼續提供。 六指針與字符串&#xff1a;C 語言字符串的本質 在 C 語言中&#xff0c;字符串實際上是一個以\0結尾的字符數組。字符串常量本質上是指向字符數組首元素的指針&…

第5講、Odoo 18 CLI 模塊源碼全解讀

Odoo 作為一款強大的企業級開源 ERP 系統&#xff0c;其命令行工具&#xff08;CLI&#xff09;為開發者和運維人員提供了極大的便利。Odoo 18 的 odoo/cli 目錄&#xff0c;正是這些命令行工具的核心實現地。本文將結合源碼&#xff0c;詳細解讀每個 CLI 文件的功能與實現機制…

如何將 PDF 文件中的文本提取為 YAML(教程)

這篇博客文章將向你展示如何將 PDF 轉換為 YAML&#xff0c;通過提取帶有結構標簽的標記內容來實現。 什么是結構化 PDF&#xff1f; 一些 PDF 文件包含結構化內容&#xff0c;也稱為帶標簽&#xff08;tagged&#xff09;或標記內容&#xff08;marked content&#xff09;&…

銀發團扎堆本地游,“微度假”模式如何盤活銀發旅游市場?

? 銀發微度假&#xff0c;席卷江浙滬 作者 | AgeClub呂嬈煒 前言 均價200-300元的兩天一夜微度假產品&#xff0c;正在中老年客群中走紅。 “我們屬于酒店直營&#xff0c;沒有中間商賺差價&#xff0c;老年人乘坐地鐵到目的地站&#xff0c;會有大巴負責接送&#xff0c;半…

蘋果iOS應用ipa文件進行簽名后無法連接網絡,我們該怎么解決

蘋果iOS應用ipa文件在經過簽名處理后&#xff0c;如果發現無法連接網絡&#xff0c;這可能會給用戶帶來極大的不便。為了解決這一問題&#xff0c;可以采取一系列的排查和解決步驟&#xff0c;以確保應用能夠順利地訪問互聯網。 首先&#xff0c;確保你的設備已經連接到一個穩…

MySQL 中 ROW_NUMBER() 函數詳解

MySQL 中 ROW_NUMBER() 函數詳解 ROW_NUMBER() 是 SQL 窗口函數中的一種&#xff0c;用于為查詢結果集中的每一行分配一個??唯一的連續序號??。與 RANK() 和 DENSE_RANK() 不同&#xff0c;ROW_NUMBER() 不會處理重復值&#xff0c;即使排序字段值相同&#xff0c;也會嚴格…

Leetcode百題斬-二叉樹

二叉樹作為經典面試系列&#xff0c;那么當然要來看看。總計14道題&#xff0c;包含大量的簡單題&#xff0c;說明這確實是個比較基礎的專題。快速過快速過。 先構造一個二叉樹數據結構。 public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode…

Asp.Net Core 如何配置在Swagger中帶JWT報文頭

文章目錄 前言一、配置方法二、使用1、運行應用程序并導航到 /swagger2、點擊右上角的 Authorize 按鈕。3、輸入 JWT 令牌&#xff0c;格式為 Bearer your_jwt_token。4、后續請求將自動攜帶 Authorization 頭。 三、注意事項總結 前言 配置Swagger支持JWT 一、配置方法 在 …

MySQL 定時邏輯備份

文章目錄 配置密碼編寫備份腳本配置權限定時任務配置檢查效果如果不想保留明文密碼手工配置備份密碼修改備份命令 配置密碼 cat >> /root/.my.cnf <<"EOF" [client] userroot passwordYourPassword EOF編寫備份腳本 cat > /usr/local/bin/mysql_dum…

在qt中使用c++實現與Twincat3 PLC變量通信

這是一個只針對新手的教程&#xff0c;下載安裝就不說了&#xff0c;我下的是TC31-Full-Setup.3.1.4024.66.exe是這個版本&#xff0c;其他版本應該問題不大。 先創建一個項目 選中SYSTEM&#xff0c;在右側點擊Choose Target&#xff08;接下來界面跟我不一樣沒關系&#xf…

云原生微服務devops項目管理英文表述詳解

文章目錄 1.云原生CNCF trail map云原生技術棧路線圖 2. 微服務單體應用與微服務應用架構區別GraphQLKey differences: GraphQL and REST 3.容器化&編排dockerKubernetesContainers and ContainerizationContainer Basics 4. DevOps & CI/CDTerms and Definitions 5.Ag…

pyside 使用pyinstaller導出exe(含ui文件)

第一步&#xff1a;首先確保安裝好pyinstall&#xff0c;終端運行 pyinstaller -w main.py 生成兩個文件夾 打開exe文件報錯&#xff0c;問題是ui文件找不到 第二步&#xff1a;將ui文件復制到exe所在文件夾&#xff0c;打開成功 ![在這里插入圖片描述](https://i-blog.csdni…

kerberos在無痕瀏覽器 獲取用戶信息失敗 如何判斷是否無痕瀏覽器

kerberos在無痕瀏覽器 獲取用戶信息失敗 如何判斷是否無痕瀏覽器 js 代碼 其他地方用直接導入js getCurrentUserId 這是自己后端獲取 域賬號地址 我是成功返回200 //true普通瀏覽器 fasle 無痕瀏覽器 export const checkBrowserMode async () > {try {const response a…

HTML 計算網頁的PPI

HTML 計算網頁的PPI vscode上安裝live server插件&#xff0c;可以實時看網頁預覽 有個疑問&#xff1a; 鴻蒙density是按照類別寫死的嗎&#xff0c;手機520dpi 折疊屏426dpi 平板360dpi <html lang"en" data - overlayscrollbars - initialize><header&…

華為OD機試真題——Boss的收入(分銷網絡提成計算)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳實現

2025 A卷 100分 題型 本專欄內全部題目均提供Java、python、JavaScript、C、C++、GO六種語言的最佳實現方式; 并且每種語言均涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、3個測試用例以及綜合分析; 本文收錄于專欄:《2025華為OD真題目錄+全流程解析+備考攻略+經驗分…

<el-date-picker>組件傳參時,選中時間和傳參偏差8小時

遇到一個bug&#xff0c;不仔細看&#xff0c;都不一定能發現&#xff0c;bug描述&#xff1a;我們有一個搜索框&#xff0c;里面有一個時間選擇器&#xff0c;當我使用<el-date-picker>時&#xff0c;我發現當我選擇時分秒之后&#xff0c;顯示都正常&#xff0c;但是當…

uni-app開發特殊社交APP

uni-app開發特殊社交APP 目錄 1.展示APP功能 2.展示項目結構 3.關于我的GitHub 引言 博主最近自己在GitHub上面上傳了一個關于社交軟件的項目&#xff08;該項目早已開發完畢&#xff09;, 這個社交軟件比較特殊, 被稱之為blind-date&#xff0c; blind-date 是基于 uni-…

深入研究Azure 容器網絡接口 (CNI) overlay

啟用cni overlay 在通過portal創建aks的時候,在networking配置上,選中下面的選項即可啟用。 通過CLI創建AKS 要創建具有 CNI 覆蓋網絡的 AKS 群集,需要在創建群集時指定 --network-plugin azure 和 --network-plugin-mode 覆蓋選項。 還需要指定 --pod-cidr 選項來定義群…