Fire Net
dfs
題目大意
現在有一個N*N的地圖,地圖上有一些圍牆。你的任務是在沒有圍牆的空白地方建儘可能多的炮臺。
假設炮臺可以向“上下左右”四個方向發射子彈,子彈可以穿越任何距離並可在途中摧毀一個另一個炮臺。而牆壁結構堅固,可以阻止子彈。
現在你的目標是儘可能多地在地圖中設定炮臺,並且保證炮臺不會互相摧毀。
題目思路
對於每一個點遍歷,如果可以放置就作一個標記,如果不能放置就繼續遍歷下一個點。直到所有與點都被遍歷。
#include<stdio.h>
int n,i,j,ans;
char s[5][5];
int c_put(int n,int m)
{
for(i=n-1;i>=0;i--)
{
if(s[i][m]=='O')
return 0;
if(s[i][m]=='X')
break;
}
for(j=m-1;j>=0;j--)
{
if(s[n][j]=='O')
return 0;
if(s[n][j]=='X')
break;
}
return 1;
}
void dfs(int k,int num)
{
int x,y;
if(k==n*n)
{
if(num>ans)
ans=num;
return ;
}
else
{
x=k/n;
y=k%n;
if(s[x][y]=='.'&&c_put(x,y))
{
s[x][y]='O';
dfs(k+1,num+1);
s[x][y]='.';
}
dfs(k+1,num);
}
}
int main()
{
while(~scanf("%d",&n)&&n)
{
ans=0;
for(i=0;i<n;i++)
{
getchar();
for(j=0;j<n;j++)
scanf("%c",&s[i][j]);
}
dfs(0,0);
printf("%d\n",ans);
}
}
相關文章
- UVA11624-Fire!
- UVA11624 Fire!【BFS】
- python製作命令列工具——firePython命令列
- 題解:CF1119D Frets On Fire
- FZU2150 Fire Game【BFS+暴力】GAM
- 巧用Google Fire簡化Python命令列程式GoPython命令列
- CI和CD之間的真正區別 -Fire CI
- 《Free Fire》在拉丁美洲、東南亞、印度賺瘋了
- 亞馬遜釋出Fire TV Cube:機頂盒+智慧音響亞馬遜
- Win10系統下無法識別Kindle Fire如何解決Win10
- 流利閱讀 2019.4.17 The Guardian view on the Notre Dame fire: we share France’s terrible lossView
- 亞馬遜:Fire TV平臺月活躍使用者超3400萬亞馬遜
- Garena Free Fire成為在美國最賺錢的吃雞遊戲遊戲
- SensorTower:2019年Q1《Garena Free Fire》收入9000萬美元 新增玩家7300萬
- Salesforce Integration 概覽(三) Remote Process Invocation—Fire and Forget(遠端程式呼叫-發後即棄)SalesforceREM
- 《Garena Free Fire》Q1創歷史新高,收入9000萬美元,新增玩家7300萬
- 探索 Python 來反補 JavaScript,帶你 Cross Fire —— JS 資料型別的奧祕PythonJavaScriptROSJS資料型別
- Fire Emblem Heroes是怎樣從1000萬使用者中賺取1億美元的
- .NET平臺系列22:.NET Core/.NET5/.NET6 對比 .NET FrameworkFramework
- 2019全球APP年終盤點:《PUBG MOBILE》年收入超13億美元,《Free Fire》下載APP
- 從《Free fire》看拉美本地化營銷,立即報名“贏戰拉美市場”分享會
- 回顧.NET系列:Framework、Net Core、Net 過往Framework
- .NET平臺系列23:.NET Core/.NET5/.NET6 和 .NET Framework 的選擇建議Framework
- .net 5+ 知新:【2】 .Net Framework 、.Net 、 .NET Standard的概念與區別Framework
- 做透新興市場多吸金!財報公佈《Free Fire》累計收入破70億元
- 歐美出海秀:《湯姆貓》新遊橫掃歐美 Free Fire躋身美國前十
- [.NET大牛之路 001] .NET 其名
- .NET科普:.NET簡史、.NET Standard以及C#和.NET Framework之間的關係C#Framework
- VS2022 安裝.NET 3.5/.NET 4/.NET 4.5/.NET 4.5.1目標包的方法
- .NET平臺系列26:在 Windows 上安裝 .NET Core/.NET5/.NET6Windows
- .NET平臺系列27:在 Linux 上安裝 .NET Core/.NET5/.NET6Linux
- 亞馬遜的Fire流媒體播放器和智慧電視的銷售額突破2億亞馬遜播放器
- 月收入超3200萬元,《Free Fire》捅破巴西天花板!8大重點市場收入PK
- .Net Core(.Net6)建立grpcRPC
- 關於 .NET Core(.NET Core 指南)
- .NET Core/.NET之Stream簡介
- .NET平臺系列9 .NET Core 3.0 / .NET Core 3.1 詳解
- .NET平臺系列24:從.NET Framework遷移到.NET Core/.NET5的技術指南Framework