博愛路上種起了一棵棵的大樹,但是有一些地方的樹超過了負荷,有一些地方的樹的數量又不夠。
我們不妨把博愛路看做一條數軸,數軸有n個點,從1到n編號,第i個位置原來現在有ai棵樹,這個位置的需求是bi棵樹。ai,bi都是0到10的整數。由於你需要是這個位置的樹的數量保持平衡,所以你需要移除或者搬一些樹過來。
我們怎麼使樹的數量平衡呢?
首先,你可以從某個位置i移動一棵樹到位置j,這時,你需要的運費是|i-j|*z元。
其次,你可以從商店買一棵樹,需要支付x元,這時商店會把樹配送到任意位置。
還有就是,你可以叫別人收購在任意位置一棵樹,需要支付y元運費。
問使得樹的數量平衡最小需要支付多少錢?考慮往右移移的情況,要運走的點,可以花y的費用運走,為了將來可以反悔,我們把-花費-i*z扔進noneed的小根堆。到了需求的點我們可以查詢noneed看是否反悔,花費為最小值加i*z。
考慮左移的情況,只需在去最優值的時候相反地考慮即可。
#include
#include
#include
#include
#include
#define lf double
#define ll long long
#define min(a,b) ((a#define max(a,b) ((a>b)?a:b)
#define fo(i,j,k) for(int i=j;i<=k;i++)
#define fd(i,j,k) for(int i=j;i>=k;i--)
#define fr(i,j) for(int i=begin[j];i;i=next[i])
using
namespace
std;
intconst mxn=2*1e5+9,mxm=16*1e5+9,inf=1e9;
int n,x,y,z;
multiset
need,noneed;
int main()else tmp=x;
ans+=tmp;
need.insert(-i*z-tmp);}}
if(ai>bi)else tmp=y;
ans+=tmp;
noneed.insert(-i*z-tmp);}}
}printf("%lld",ans);
return
0;}
504 七進製數
題目描述 給定乙個整數,將其轉化為7進製,並以字串形式輸出。示例 1 輸入 100 輸出 202 示例 2 輸入 7 輸出 10 注意 輸入範圍是 1e7,1e7 方法1 主要思路 1 首先確定輸入值的絕對值,然後對絕對值使用 7 進行分解,將分解後的得到的字串,根據原來數字的正負,決定是否在字串的...
nginx http post請求返回504報錯
http post請求後,返回訊息碼為504 504錯誤代表閘道器超時 gateway timeout 是指伺服器作為閘道器或 但是沒有及時從上游伺服器收到請求。伺服器 不一定是 web 伺服器 正在作為乙個閘道器或 來完成客戶 如您的瀏覽器或我們的 checkupdown 機械人 訪問所需 的請求...
nginx tomcat報504超時錯誤
1.今天nginx tomcat報504超時錯誤?1.專案本地不用nginx訪問沒問題 2.今天以前訪問也沒問題 2.nginx配置的有問題了?1.我的nginx以及其他的比如mysql等,都是使用了oneinstack安裝的,預設都做了優化 2.搜尋了一大推 nginx 504 gateway t...