算是套路的貪心,因為給出資料是有序的,先將相鄰的搞成線段存進堆裡,每次取出乙個最小的值,加到總值中,並改變左右的鍊錶值,並將左右線段值存入當前位置作為撤銷操作。
#include
#include
#include
#define mk(a,b) make_pair(a,b)
using
namespace
std;
const
int inf=0x3f3f3f3f;
inline
void read(int &tmk)
const
int n=100005;
typedef pair pii;
priority_queuevector
,greater> q;
int n,m;
int e[n],pre[n],nxt[n];
int main()
int ans=0;
for (i=2;i<=n;i++) q.push(mk(e[i],i));
pre[2]=0,nxt[n]=0;
for (i=1;i<=m;i++)
printf("%d\n",ans);
return
0;}
BZOJ 1150 資料備份
1150 ctsc2007 資料備份backup time limit 10 sec memory limit 162 mb submit 1480 solved 592 submit status discuss description 你在一家 it 公司為大型寫字樓或辦公樓 offices 的...
資料備份BZOJ1150
題幹在這 bzoj1150 我們注意到選取的一定是相鄰的邊,那我們先求出兩兩之間相隔的距離d i 可知如果我們選了d i 那麼我們就不能選d i 1 和d i 1 我們每次找到乙個最小的值d i 並把d i d i 1 和d i 1 刪去 我們又要保留選d i 1 和d i 1 的可能性,所以再在原...
BZOJ 1150 資料備份
你在一家 it 公司為大型寫字樓或辦公樓 offices 的計算機資料做備份。然而資料備份的工作是枯燥乏味 的,因此你想設計乙個系統讓不同的辦公樓彼此之間互相備份,而你則坐在家中盡享計算機遊戲的樂趣。已知辦公 樓都位於同一條街上。你決定給這些辦公樓配對 兩個一組 每一對辦公樓可以通過在這兩個建築物之...