BZOJ.1024.[SCOI2009]生日快樂(記憶化搜索)

題目鏈接

搜索,枚舉切的n-1刀。
對于長n寬m要切x刀,可以劃分為若干個 長n'寬m'要切x'刀 的子問題,對所有子問題的答案取max 對所有子問題的方案取min 就是當前狀態答案。
這顯然是會有很多重復狀態的,用map記憶化(長寬都是double)。
每一刀會將當前分成兩份。比如當前是橫著切,枚舉上邊再切i刀(分成i+1份)(下邊就再切x-1-i刀),由m不變,有 \(n'*m=n*m*(i+1)/(x+1)\),可以得到n'。同理可以得到每種切法的n',m'。
double可以用pair<LL.LL>表示最簡分數,不用也沒太大問題吧。

總結:1.劃分子問題;記憶化。
2.按切成塊數劃分面積。(肯定是啊)

//824kb 56ms
#include <map>
#include <cstdio>
#include <algorithm>
#define mp std::make_pair
#define pr std::pair<double,double>
//typedef Status std::pair<pr,int>std::map<pr,double> f[10];
std::map<pr,double>::iterator it;double DFS(double n,double m,int x)
{if(!x) return std::max(n,m)/std::min(n,m);if((it=f[x].find(mp(n,m)))!=f[x].end()) return it->second;double res=1e15, nn=n/(x+1), mm=m/(x+1);for(int i=0; i<x; ++i)//剩余可切次數為x-1(注意這就是一次) res=std::min(res,std::max(DFS((i+1)*nn,m,i),DFS((x-i)*nn,m,x-1-i))),//x是刀數,別混了。res=std::min(res,std::max(DFS(n,(i+1)*mm,i),DFS(n,(x-i)*mm,x-1-i)));f[x][mp(n,m)]=f[x][mp(m,n)]=res;return res;
}int main()
{int n,m,x; scanf("%d%d%d",&n,&m,&x);
//  double Ans=DFS(n,m,x-1);//一樣 printf("%.6lf",DFS(n,m,x-1));return 0;
}

轉載于:https://www.cnblogs.com/SovietPower/p/8976556.html

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

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

相關文章

kfc流程管理炸薯條幾秒_炸薯條成為數據科學的最后前沿

kfc流程管理炸薯條幾秒In February, our Data Science team had an argument about which restaurant we went to made the best French Fry.2月&#xff0c;我們的數據科學團隊對我們去哪家餐廳做得最好的炸薯條產生了爭議。 We decided to make it a competition throughout…

XSS理解與防御

一、說明 我說我不理解為什么別人做得出來我做不出來&#xff0c;比如這里要說的XSS我覺得很多人就不了解其定義和原理的&#xff0c;在不了解定義和原理的背景下他們可以拿站&#xff0c;這讓人怎么理解呢。那時我最怕兩個問題&#xff0c;第一個是題目做得怎么樣第二個是你能…

Java大數

轉自&#xff1a;https://www.cnblogs.com/zufezzt/p/4794271.html import java.util.*; import java.math.*; public class Main{public static void main(String args[]){Scanner cin new Scanner(System.in);BigInteger a, b;//以文件EOF結束while (cin.hasNext()){a cin.…

2027. 轉換字符串的最少操作次數

2027. 轉換字符串的最少操作次數 給你一個字符串 s &#xff0c;由 n 個字符組成&#xff0c;每個字符不是 ‘X’ 就是 ‘O’ 。 一次 操作 定義為從 s 中選出 三個連續字符 并將選中的每個字符都轉換為 ‘O’ 。注意&#xff0c;如果字符已經是 ‘O’ &#xff0c;只需要保持…

bigquery_到Google bigquery的sql查詢模板,它將您的報告提升到另一個層次

bigqueryIn this post, we’re sharing report templates that you can build with SQL queries to Google BigQuery data.在本文中&#xff0c;我們將分享您可以使用SQL查詢為Google BigQuery數據構建的報告模板。 First, you’ll find out about what you can calculate wit…

分類樹/裝袋法/隨機森林算法的R語言實現

原文首發于簡書于[2018.06.12] 本文是我自己動手用R語言寫的實現分類樹的代碼&#xff0c;以及在此基礎上寫的袋裝法&#xff08;bagging&#xff09;和隨機森林&#xff08;random forest&#xff09;的算法實現。全文的結構是&#xff1a; 分類樹 基本知識predginisplitrules…

數據科學學習心得_學習數據科學時如何保持動力

數據科學學習心得When trying to learn anything all by yourself, it is easy to lose motivation and get thrown off track.嘗試自己學習所有東西時&#xff0c;很容易失去動力并偏離軌道。 In this article, I will provide you with some tips that I used to stay focus…

用php當作cat使用

今天&#xff0c;本來是想敲 node test.js 執行一下&#xff0c;test.js文件&#xff0c;結果 慣性的敲成了 php test.js, 原文輸出了 test.js的內容。 突然覺得&#xff0c;這東西 感覺好像是 cat 命令&#xff0c;嘿嘿&#xff0c;以后要是ubuntu 上沒裝 cat &#xff0c; …

建信01. 間隔刪除鏈表結點

建信01. 間隔刪除鏈表結點 給你一個鏈表的頭結點 head&#xff0c;每隔一個結點刪除另一個結點&#xff08;要求保留頭結點&#xff09;。 請返回最終鏈表的頭結點。 示例 1&#xff1a; 輸入&#xff1a;head [1,2,3,4] 輸出: [1,3] 解釋&#xff1a; 藍色結點為刪除的結點…

python安裝Crypto:NomodulenamedCrypto.Cipher

python 安裝Crypto時出現的錯誤:NomodulenamedCrypto.Cipher 首先直接pip install Crypto 這時會在lib/site-packages/ 文件夾下生成crypto文件夾&#xff0c;將其重命名為Crypto ...然而這個文件夾下沒有Cipher模塊&#xff0c;還需要pip安裝一個pycrypto&#xff0c;不過wind…

python多項式回歸_在python中實現多項式回歸

python多項式回歸Video Link影片連結 You can view the code used in this Episode here: SampleCode您可以在此處查看 此劇 集中使用的代碼&#xff1a; SampleCode 導入我們的數據 (Importing our Data) The first step is to import our data into python.第一步是將我們的…

Uboot 命令是如何被使用的?

有什么問題請 發郵件至syyxyoutlook.com, 歡迎交流~ 在uboot代碼中命令的模式是這個樣子&#xff1a; 這樣是如何和命令行交互的呢&#xff1f; 在command.h 中, 我們可以看到如下宏定義 將其拆分出來&#xff1a; #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ U_…

2029. 石子游戲 IX

2029. 石子游戲 IX Alice 和 Bob 再次設計了一款新的石子游戲。現有一行 n 個石子&#xff0c;每個石子都有一個關聯的數字表示它的價值。給你一個整數數組 stones &#xff0c;其中 stones[i] 是第 i 個石子的價值。 Alice 和 Bob 輪流進行自己的回合&#xff0c;Alice 先手…

大數據可視化應用_在數據可視化中應用種族平等意識

大數據可視化應用The following post is a summarized version of the article accepted to the 2020 Visualization for Communication workshop as part of the 2020 IEEE VIS conference to be held in October 2020. The full paper has been published as an OSF Preprint…

Windows10電腦系統時間校準

有時候新安裝電腦系統&#xff0c;系統時間不對&#xff0c;需要主動去校準系統時間。1、點擊時間 2、日期和時間設置 3、其他日期、時間和區域設置 4、設置時間和日期 5、Internet 時間 6、點擊立即更新&#xff0c;如果更新失敗就查電腦是否已聯網&#xff0c;重試點擊立即更…

webpack問題

Cannot find module webpack/lib/node/NodeTemplatePlugin 全局&#xff1a;npm i webpack -g npm link webpack --save-dev 轉載于:https://www.cnblogs.com/doing123/p/8994269.html

397. 整數替換

397. 整數替換 給定一個正整數 n &#xff0c;你可以做如下操作&#xff1a; 如果 n 是偶數&#xff0c;則用 n / 2替換 n 。 如果 n 是奇數&#xff0c;則可以用 n 1或n - 1替換 n 。 n 變為 1 所需的最小替換次數是多少&#xff1f; 示例 1&#xff1a; 輸入&#xff1a;…

pd種知道每個數據的類型_每個數據科學家都應該知道的5個概念

pd種知道每個數據的類型意見 (Opinion) 目錄 (Table of Contents) Introduction 介紹 Multicollinearity 多重共線性 One-Hot Encoding 一站式編碼 Sampling 采樣 Error Metrics 錯誤指標 Storytelling 評書 Summary 摘要 介紹 (Introduction) I have written about common ski…

td

單元格td設置padding&#xff0c;而不能設置margin。轉載于:https://www.cnblogs.com/fpcbk/p/9617629.html

清除浮動的幾大方法

對于剛接觸到html的一些人經常會用到浮動布局&#xff0c;但對于浮動的使用和清除浮動來說是大為頭痛的&#xff0c;在這里介紹幾個關于清除浮動的的方法。如果你說你要的就是浮動為什么要清除浮動的話&#xff0c;我就真的無言以對了&#xff0c;那你就當我沒說。 關于我們在布…