濟南學習 Day 2 T3 am

2022-02-11 20:47:59 字數 1494 閱讀 3712

【問題描述】

m× m的方陣上有n棵蔥,你要修一些柵欄把它們圍起來。乙個柵欄是一段

沿著網格建造的封閉圖形(即要圍成一圈) 。各個柵欄之間應該不相交、不重疊

且互相不包含。如果你最多修k個柵欄,那麼所有柵欄的長度之和最小是多少?

【輸入格式】

第一行三個整數m,k,n。

接下來n行每行兩個整數x,y代表某棵蔥的位置。

【輸出格式】

一行乙個整數代表答案。

【樣例輸入 1】

6 1 4

1 34 2

4 46 4

【樣例輸出 1】

18【樣例輸入 2】

6 2 4

1 34 2

4 46 4

【樣例輸出 2】

16【樣例解釋】

你猜樹上有啥。

1 #include2 #include3

using

namespace

std;

4const

int n=1e6+10;5

const

int m=20;6

intm,n,k,xx[m],yy[m];

7int

cost[n],s[m];

8int

tot,nowmask,answer,full;

9struct

rect

13 rect(int _x1,int _y1,int _x2,int

_y2)

20}a[n];

21void dfs(int cnt,int j,int

cost)

24 answer=min(answer,cost);return;25

}26if(cnt>=k||j>tot||cost>=answer) return;27

for(int i=j;i<=tot;i++)33}

34void dfs(int now,int cnt,int

res)

38if(res+(k-cnt)*4>=answer) return;39

for(int i=1;i<=cnt;i++)

45if(cnt50#define name "dan"

51int

main()63}

64}65}

66 nowmask=0

;67 dfs(0,1,0

);68 printf("%d"

,answer);69}

70else

81}

82 cost[i]=(mx-sx+1)*2+(my-sy+1)*2;83

}84 dfs(0,0,0

);85 printf("%d"

,answer);86}

87return0;

88 }

思路:搜尋,好好理解

濟南學習 Day 3 T2 am

看程式寫結果 program time limit 1000ms memory limit 64mb 題目描述 lyk 最近在準備 noip2017 的初賽,它最不擅長的就是看程式寫結果了,因此它拼命地 在練習。這次它拿到這樣的乙個程式 pascal readln n for i 1 to n do...

濟南學習 Day 3 T3 am

選數字 select time limit 3000ms memory limit 64mb 題目描述 lyk 找到了乙個 n m 的矩陣,這個矩陣上都填有一些數字,對於第 i 行第 j 列的位置上 的數為 ai,j。由於它 ak 了 noip2016 的初賽,最近顯得非常無聊,便想到了乙個方法自娛...

濟南學習 Day 5 T3 am

題目描述 眾所不知,rly現在不會玩西洋棋。但是,作為乙個oier,rly當然做過八皇后問題.在這裡再囉嗦幾句,皇后可以攻擊到同行同列同對角線,在 n n的棋盤中,擺放n個皇后使它們互相不能攻擊到,求不同的解的數量,這就是經典的n皇后問題。現在問題推廣n皇后問題,這個問題對你而言實 在是小菜一碟。但...