HDU5697 刷題計劃 dp+最小乘積生成樹

分析:就是不斷遞歸尋找靠近邊界的最優解

學習博客(必須先看這個):

1:http://www.cnblogs.com/autsky-jadek/p/3959446.html

2:http://blog.csdn.net/u013849646/article/details/51524748

注:這里用的最小乘積生成樹的思想,和dp結合

???? 每次找滿足條件的最優的點,只不過BZOJ裸題的滿足條件是形成一棵樹

???? 這個題是大于m,生成樹借用最小生成樹進行求解最優,大于m用dp進行求解最優

#include <stdio.h>
#include <algorithm>
using namespace std;
const int N = 8e2+5;
typedef long long LL;
struct point{int x, y;point(int x=0,int y=0):x(x),y(y){}point operator -(const point &rhs)const{return point(x-rhs.x,y-rhs.y);}point operator +(const point &rhs)const{return point(x+rhs.x,y+rhs.y);}
};
LL cross(point a,point b){return 1ll*a.x*b.y-1ll*a.y*b.x;
}
int n,m,sum;
int a[N],b[N],c[N];
point p[N];
LL dp[N],f[N],ans;
point get(){p[0]=point(0,0),dp[0]=0;for(int i=1;i<=sum;++i)dp[i]=1LL<<60;for(int i=1;i<=n;++i){for(int j=sum;j>=a[i];--j){if(dp[j]>dp[j-a[i]]+f[i]){dp[j]=dp[j-a[i]]+f[i];p[j]=p[j-a[i]]+point(b[i],c[i]); }}}int ret=m;LL tot=1LL*p[ret].x*p[ret].y;for(int i=m+1;i<=sum;++i){if(dp[i]<dp[ret]||dp[i]==dp[ret]&&1ll*p[i].x*p[i].y<tot)ret=i,tot=1ll*p[i].x*p[i].y;}ans=min(ans,tot);return p[ret];
}
void solve(point A,point B){for(int i=1;i<=n;++i)f[i]=1ll*c[i]*(B.x-A.x)+1ll*b[i]*(A.y-B.y);point C=get();if(cross(B-A,C-A)>=0)return;solve(A,C);solve(C,B);
}
int main(){while(~scanf("%d%d",&n,&m)){sum=0;for(int i=1;i<=n;++i){scanf("%d%d%d",&a[i],&b[i],&c[i]);sum+=a[i];}ans=1LL<<60;for(int i=1;i<=n;++i)f[i]=b[i];point A=get();for(int i=1;i<=n;++i)f[i]=c[i];point B=get();solve(A,B);printf("%I64d\n",ans);}return 0;
}
View Code

?

轉載于:https://www.cnblogs.com/shuguangzw/p/5634463.html

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

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

相關文章

pos加盟申請php_ThinkPHP萬能表單程序源碼 報名預約加盟申請調查表單程序源碼

平臺聲明&#xff1a;本商品由平臺商家發布&#xff0c;如果本商品源碼侵犯了您的利益請在上方價格右側或聯系平臺客服舉報。微信表單-實現各行業的報名、預約、加盟申請、問卷調查等應用01.自定義表單模型(自定義字段支持字符串、數字、單選、多選、下拉、日歷、時間、郵件、省…

分析Java中的三種不同變量的區別

1、首先分析Java中的三種不同變量的區別&#xff0c;如下表所示 概念默認值其他類變量 也叫靜態變量&#xff0c;是類中獨立于方法之外的變量 用static 修飾 有默認初始值&#xff0c;系統自動初始化。 如boolean默認為false. 可以被public&#xff0c;protect&#xff0c;pr…

分享我常用的5個免費的在線 SQL 數據庫環境,簡直太方便了!

大今天給大家分享幾個在線的免費 SQL 運行環境&#xff0c;也就是在線數據庫。這些網站可以幫助我們快速運行一些 SQL 語句的測試或者驗證&#xff0c;同時還可以在網絡上進行分享&#xff0c;關鍵不需要自己安裝數據庫。SQL FiddleSQL Fiddle 提供了 MySQL、Oracle、PostgreSQ…

python刷題用leet_GitHub - Yolymaker/leetcode-python: 利用python分類刷leetcode題目

leetcode分類高效刷題 leetcode是一個很好的學習算法的一個online judge的網站&#xff0c;通過刷題能夠快速提升自己的算法能力。但是令大家都頭疼的就是&#xff0c;怎么能夠高效的通過leetcode刷題掌握算法的做題技巧&#xff0c;并且順利通過面試。 刷題的時候千萬不要懷疑…

36歲 計算機博士,36歲考博士

博士生在學習期間&#xff0c;須在國內外核心期刊上正式發表與學位論文緊密相關(構成學位論文的主要組成部分)的學術論文且積分必須在6分(含6分)以上方可申請授予學位。以上發表的論文應以**大學商學院為第一署名單位&#xff0c;博士生為第一作者或導師為第一作者、博士生為第…

OPTIMIZE TABLE

INNODB 不支持mysql> OPTIMIZE TABLE t; ----------------------------------------------------------------------------------------------- | Table | Op | Msg_type | Msg_text | ------------------…

r語言 面板數據回歸_R語言_018回歸

回歸分析是統計學的核心。它其實是一個廣義的概念&#xff0c;指那些用一個或多個預測變量來預測響應變量的方法。通常&#xff0c;回歸分析可以用來挑選與響應變量相關的解釋變量&#xff0c;可以描述兩者的關系&#xff0c;也可以生成一個等式&#xff0c;通過解釋變量來預測…

Integer對象范圍(-128-127)之間(Integer. valueOf()方法)

1.Integer. valueOf()方法的作用 Integer. valueOf()可以將基本類型int轉換為包裝類型Integer&#xff0c;或者將String轉換成Integer&#xff0c;String如果為Null或“”都會報錯 看下面代碼示例 取值為127時 取值為128時 為什么會是這樣呢&#xff1f; 首先&#xff0c;我們…

操作系統基礎:進程知識筆記(三)

1、死鎖概念知識 計算機中存在許多互斥資源&#xff08;打印機&#xff09;、軟件資源&#xff08;進程表、臨界區&#xff09;如果兩個進程同時調用打印機&#xff0c;或同時進入臨界區必然會出現問題。 死鎖&#xff1a;指兩個以上的進程互相要求對方已經占有的資源導致無法繼…

垂直梯形校正畫質損失多少_梯形校正功能是怎么實現的?其中可大有學問

梯形校正這個概念&#xff0c;想必大部分投影儀用戶早已耳熟能詳。所謂的梯形校正&#xff0c;指的是當我們的投影儀位置擺放不正時&#xff0c;投射出來的畫面會是一個梯形&#xff0c;這時候需要通過投影儀的梯形校正功能將畫面調整為可以正常觀看的矩形。雖然目前市場上的大…

操作系統基礎:存儲管理知識筆記(一)

1、存儲器基礎知識 存儲器管理的對象是主存或內存&#xff0c;存儲器是計算機系統中非常關鍵的資源&#xff0c;用來存放各種信息的主要場所。存 儲器管理功能主要包括&#xff1a;主存空間的分配和回收、提供主存利用率、擴充主存、主存信息的保護。 2、存儲器結構 存儲器結構…

asp點擊按鈕sql列求和_助你2020晉級互聯網大數據陣營(一):輕輕松松學SQL

毫不負責任的說&#xff0c;你和數據科學家最大的鴻溝&#xff0c;就差一個SQL語言&#xff1a;)入門后&#xff0c;后面的事情就簡單了為了幫大家盡快入門Hive SQL、學會提數和分析&#xff0c;實現在大數據領域大干一場的愿望&#xff0c;幫你準備好了數據&#xff0c;準備好…

冪等和高并發在電商系統中的使用

在Java web項目開發中&#xff0c;經常會聽到在做訂單系統中生成訂單的時候&#xff0c;要做冪等性控制和并發控制&#xff0c;特對此部分內容作出總結&#xff0c;在高并發場景下&#xff0c;代碼層面需要實現并發控制&#xff1b;但是冪等性&#xff0c;其實更多的是系統的接…

@transactional注解失效情況

先來了解一下Transactional注解事務的特性吧&#xff0c;可以更好排查問題 1、service類標簽(一般不建議在接口上)上添加Transactional&#xff0c;可以將整個類納入spring事務管理&#xff0c;在每個業務方法執行時都會開啟一個事務&#xff0c;不過這些事務采用相同的管理方…

計算機c盤隱藏了怎么辦,win7怎么隱藏c盤 win7c盤被隱藏了怎么解除

很多的電腦用戶擔心其他用戶在使用電腦時修改c盤中的重要文件&#xff0c;所以會將c盤設置為隱藏&#xff0c;那么大家知道在win7系統中怎么隱藏c盤嗎?方法很簡單&#xff0c;下面小編為大家帶來win7隱藏c盤的詳細教程&#xff0c;不知道怎么隱藏的朋友可以查看下面的教程學習…

操作系統基礎:存儲管理知識筆記(二)

一、分頁存儲管理 1、分頁存儲管理介紹 1.1 分頁原理 頁&#xff1a;將一個進程的地址空間劃分為若干個大小相等的區域稱為頁。 塊、頁框&#xff1a;主存空間劃分成與頁相同的若干個物理塊。 1.2 地址結構 分頁系統地址結構&#xff1a;前一部分為頁號&#xff1b;后一部分為頁…

人工智能 信道估計 深度學習_DEMO演示|基于IVP02D 人工智能工作站的深度學習引擎,實現人群熱力估計...

近年來&#xff0c;隨著深度學習在計算機視覺領域獲得廣泛應用&#xff0c;算法框架也日漸成熟&#xff0c;例如基于深度神經網絡的人群密度分析&#xff0c;通過自動學習能獲得更有效的人群特征&#xff0c;相較于傳統方法取得了一定的提高。AI小知識人群密度分析&#xff08;…

SPSS學習中涉及的統計知識

1、獨立性檢驗 2、方差分析中方差齊性檢驗 3、非參數檢驗 4、p-p圖 5、卡方檢驗&#xff1a;研究分類因變量與分類自變量的關系。獨立性檢驗 6、t檢驗&#xff1a;研究連續因變量與分類自變量的關系。 7、啞變量 總結&#xff1a; 因變量連續&#xff0c;自變量連續&#xff0c…

vscode kite插件_微軟發布 VS Code Python 插件 7 月更新

微軟發布了 7 月的 Visual Studio Code Python 擴展更新&#xff0c;此版本總共修復了 51 個問題&#xff0c;其中包括&#xff1a;支持新的語言服務器&#xff1a;PylanceGather 擴展將 Notebook 導出為 HTML 和 PDF調試器的反向連接支持新的語言服務器&#xff1a;PylancePyl…

360瀏覽器打不開微信的連接服務器,上午還能打開,下午360瀏覽器打不開微信公 – 手機愛問...

2011-08-27ie&#xff0c;搜狗&#xff0c;谷歌瀏覽器都打不開&#xff0c;說打不開ipad說服務器超時是新浪在更新設備嗎&#xff1f;一般你能進入愛問就可以進入郵箱&#xff0c;下面的方法看看(如果你是鐵通的可能是鐵通的問題)。可能是服務器故障引起的&#xff0c;請不要著…