問題描述
有一款有趣的手機遊戲。棋盤上有n顆地雷,玩家需要至少掃掉其中的k顆雷。
每一步,玩家可以用手指在手機螢幕上劃一條直線,該直線經過的地雷都會被掃除掉。
問,最少需要劃幾次就能掃除k顆以上的地雷?
輸入格式
有兩組測試資料,對於每組資料:
第一行,乙個整數n,表示地雷的總數
第二含,乙個整數k,表示至少需要掃掉的雷數
接下來n行,每行兩個整數x和y,表示一顆地雷的座標。
輸出格式
兩行,每行乙個整數,表示對應資料的答案
樣例輸入4 4
1 11 2
2 12 29 7
1 12 2
1 33 1
3 34 1
4 24 3
4 5樣例輸出22
提示對於30%的資料, 1<=n<=8 , 1<=k<=n , -10000<=x,y<=10000
對於100%的資料,1<=n<=16 , 1<=k<=n , -10000<=x,y<=10000
【題目分析】
觀察題目,n最大為16,兩點確定一條直線,最多可畫出162條直線。
我們暴力列舉所有直線,統計出每條直線穿過的點數。
每條直線最多穿過16個點,我們用二進位制來實現狀態壓縮。
我們把n個點編號0到n - 1,用line[i][j]記錄編號i和j的點對應直線穿過的節點集合。
用結構體存下每乙個點的座標,
for(
叉乘−揹包dp
【傳送門】
小遊戲 掃雷
c語言實現的乙個簡單的掃雷遊戲 介面簡單,功能 首次踩雷的,會換雷。掃雷有九宮格擴撒 環境 vs2015 如下 game.h pragma once ifndef game h define game h define rows 11 define cols 11 define num 9 incl...
小遊戲 掃雷
實現乙個掃雷遊戲 1.設定兩個陣列 mine row col 表示布雷,show row col 顯示掃雷情況 顯示周圍有幾個雷 因為統計四周,邊緣位置不好實現,所以把二維陣列的行和列都加二,這樣無論是否在邊緣都可以當做一種情況來實現。2.初始化mine和show,show mine 0 3.set...
掃雷小遊戲
game.h 標頭檔案 ifndef game h define game h include include include include define row 12 define col 12 define count 10 棋盤中雷的總數 extern char show mine row ...