codevs 1615 資料備份

2021-08-10 10:20:57 字數 2601 閱讀 3069

題目描述 description

你在一家it 公司為大型寫字樓或辦公樓(offices)的計算機資料做備份。

然而資料備份的工作是枯燥乏味的,因此你想設計乙個系統讓不同的辦公樓彼此

之間互相備份,而你則坐在家中盡享計算機遊戲的樂趣。

已知辦公樓都位於同一條街上。你決定給這些辦公樓配對(兩個一組)。每

一對辦公樓可以通過在這兩個建築物之間鋪設網路電纜使得它們可以互相備份。

然而,網路電纜的費用很高。當地電信公司僅能為你提供k 條網路電纜,

這意味著你僅能為k 對辦公樓(或總計2k 個辦公樓)安排備份。任乙個辦公樓

都屬於唯一的配對組(換句話說,這2k 個辦公樓一定是相異的)。

此外,電信公司需按網路電纜的長度(公里數)收費。因而,你需要選擇這

k 對辦公樓使得電纜的總長度盡可能短。換句話說,你需要選擇這k 對辦公樓,

使得每一對辦公樓之間的距離之和(總距離)盡可能小。

下面給出乙個示例,假定你有5 個客戶,其辦公樓都在一條街上,如下圖所

示。這5 個辦公樓分別位於距離大街起點1km, 3km, 4km, 6km 和12km 處。電信

上例中最好的配對方案是將第1 個和第2 個辦公樓相連,第3 個和第4 個辦

公樓相連。這樣可按要求使用k=2 條電纜。第1 條電纜的長度是3km―1km =

2km,第2 條電纜的長度是6km―4km = 2 km。這種配對方案需要總長4km 的網

絡電纜,滿足距離之和最小的要求。

輸入描述 input description

輸入的第一行包含整數n 和k,其中n(2 ≤ n ≤100 000)表示辦公樓的數目,

k(1≤ k≤ n/2)表示可利用的網路電纜的數目。

接下來的n 行每行僅包含乙個整數(0≤ s ≤1000 000 000), 表示每個辦公樓

到大街起點處的距離。這些整數將按照從小到大的順序依次出現。

輸出描述 output description

輸出應由乙個正整數組成,給出將2k 個相異的辦公樓連成k 對所需的網路

電纜的最小總長度。

樣例輸入 sample input

5 2

1 3

4 6

12樣例輸出 sample output

4資料範圍及提示 data size & hint

30%的輸入資料滿足n≤20。

60%的輸入資料滿足n≤10 000。

【2017.11.5考試t1】

正解是貪心。

/*

輸入後排序

算出每條線段的長度 線段統一標號 將線段位置、1、長度放入小根堆

初始化鍊錶 鍊錶元素是邊

初始化邊界

堆頂依次彈出

彈出時順便計算堆頂線段相鄰兩條線段的長度-堆頂,放入堆,備用

如果能用到,說明加上堆頂相鄰的邊比加堆頂的邊更優 由於已經作差,所以相當於堆頂沒有加入答案

加入備用的答案時,將堆頂左邊相鄰的線段的左邊線段的nxt指向cnt,右邊同理

更新cnt的pre和nxt

*/#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn=1000000+10;

long

long pre[maxn],nxt[maxn];

long

long a[maxn],x[maxn];

bool vis[maxn];

long

long n,k;

struct node

;bool

operator

< (node a,node b)

priority_queueq;

int main()

); }

pre[0]=-1,nxt[cnt]=cnt+1;

x[0]=0x3f3f3f3f,x[cnt+1]=0x3f3f3f3f;

long

long tot=0,ans=0;

cnt++;

while(!q.empty())

printf("%lld\n",ans);

return

0;}

考試把資料範圍縮小了。dp可以過。

codevs只能45.聽說滾動一下就能60了?

#include

#include

#include

#include

using namespace std;

const int maxn=500000+5;

int a[maxn],x[maxn],dp[1000][1000][2];

int n,k;

int main()

}int ans;

ans=min(dp[n-1][k][0],dp[n-1][k][1]);

printf("%d\n",ans);

return 0;

}

Codevs1615資料備份

思路 方案一 o n k 的dp 只能得部分分。首先我們知道,只選擇相鄰的點構成線段,答案一定不會變差。因為若選擇跨點連線,我們必然可以用其中相鄰點構成的連線代替,且使得權值更小。那麼我們就只考慮相鄰點構成的線段如何選取。我們設dp i j 1 0 前i條線段選了j條線段是否選擇當前線段 包括在j內...

資料備份 Trilium 本地資料備份同步

預設的資料儲存位置 document.db 裡面包含了所有的筆記內容 config.ini 是軟體相關的設定,可以設定使用的埠,但是這個是歸屬於環境變數下面的,導致暫時不知道怎麼同時執行2個trilium backup 裡面是軟體自動備份的資料庫 log 日誌檔案 here s how the lo...

資料副本管理 資料完全備份 差異備份 增量備份介紹

為避免因自然災害等意外情況而導致的本地資料丟失情況,異地資料容災也是企業資料保護的一大常見命題。ucahe備份呢支援通過遠端複製技術,將本地資料同步到異地,實現異地資料保護。一站式的web管理,支援增量 差異,永久,定時,多副本等30多項功能列表,8項災備技術,3款產品,滿足企業不同場景的資料備份需...