不解釋
#include using namespace std;
#define ll long long
#define rep( i , a , b ) for ( int i = a ; i <= b ; ++ i )
#define clr( a , x ) memset ( a , x , sizeof (a) );
#define re freopen("1.in","r",stdin);
#define we freopen("1.out","w",stdout);
#define mod 10009
#define bug(x) cout<<#x<<":"<<(x)int s;
int ans[21],vis[21];
int tol;
void dfs(int u,int cnt)
}while(cin>>s,s)
return 0;
}
此題巨坑,題意也很難看懂。
1.從(0,0)點走到(n,m),四個方向(或者不走),每次走或不走都消耗1能量,求最少消耗。
2.有很多炮台,在各自的x,y處向某個方向間隔t秒發一次速度為v的炮,炮打到其他炮台就消失(炮消失但炮塔不消失),炮炮之間可以穿越,人不能碰到炮台。
3.炮台的攻擊只在炮終點的同一時刻起效,即可以想象為炮是從拋物線那樣飛下來的,只有在同一點同一時刻才起效果。
坑點在哪呢?在座標系。按照它的座標系而言,輸入的炮台x,y是要反過來的(難怪看別人部落格都是n和m跟題目的反過來)我只反了輸入的炮台xy就行了。
陣列要開bool,開int會mle。
解:正常bfs,難點在判斷某點某時刻是否會被炮打中。看起來是動態圖,但可以通過預處理變成靜態,即我們是知道哪些點在哪些時刻是危險的。
兩個for迴圈,外層為同條線的座標(範圍是碰到其他炮台或者座標上下限),內層為時間,比如:
if(pao[i].dir == 'e')
}int curtime = 1;
for(int j = x+v;j<=stop;j+=v,curtime++)
}}
#include using namespace std;
#define ll long long
#define rep( i , a , b ) for ( int i = a ; i <= b ; ++ i )
#define clr( a , x ) memset ( a , x , sizeof (a) );
#define re freopen("1.in","r",stdin);
#define we freopen("1.out","w",stdout);
#define mod 10009
#define bug(x) cout<<#x<<":"<<(x)<= 0 && x <= n)
if(y >= 0 && y <= m)
return true;
return false;
}bool fire[maxn][maxn][1002]; //該點該時刻是否危險
bool cast[maxn][maxn];
void init()
}int curtime = 1;
for(int j = x+v;j<=stop;j+=v,curtime++)
}}else if(pao[i].dir == 'w')
}int curtime = 1;
for(int j = x-v;j>=stop;j-=v,curtime++)
}}else if(pao[i].dir == 'n')
}int curtime = 1;
for(int j = y-v;j>=stop;j-=v,curtime++)
}}else if(pao[i].dir == 's')
}int curtime = 1;
for(int j = y+v;j<=stop;j+=v,curtime++)}}
}}int bfs()
}return -1;
}int main()
if(cast[n][m])
init();
int ans = bfs();
if(ans == -1)
cout<<"bad luck!"<
3D逃亡 簡單搜素練習2
poj2251 bfs 3d 解題報告 1.題意簡單,就是個3d的搜尋,從s到e輸出距離。依照題意不妨bfs搜尋。那好,搜尋退出條件是當前狀態非法,或者到達e。2.狀態?直接map l r c 就好了。為了方便輸入,故使用map l r c 而非 r c l 依照題意,很容易看出不需要定義乙個標記陣...
深度搜素 搜尋巢狀
搜尋問題,擴充套件節點的時候會iterate乙個link集合,一般就是乙個for 迴圈,但有的時候,這個集合並不能直接得到,而是另乙個搜尋問題,比如n個數分k組問題的一種解法是 問題分成k個步驟,每個步驟確定乙個組,具體乙個組可分的方案的candidate集合就不是直接可以用for來iterate的...
檔案的搜素命令
是通過path環境變數到該路徑內查詢可執行檔案,因此基本功能是尋找可執行的檔案查詢可執行檔案 查詢命令路徑 查詢命令別名 b 只查詢二進位制檔案 m 只查詢在說明檔案manual路徑下的檔案 依賴於事先構建好的索引庫,定時更新索引庫 updatedb 查詢速度快,模糊查詢 b 只匹配路徑中的基名 c...