題目大意:中文題。
演算法思路:這種思路確實對我來說很新穎,我也是看了解題報告才知道。說白了,二分最小值和最大值的差,如果這個差值能夠從起點走到終點,則說明這個差值是可行的,那我們就在減小,二分左半部分,否則二分右半部分。
#include#include#includeusing namespace std;
#define maxn 105
#define inf 0x3f3f3f3f
int n;
int a[maxn][maxn],dx[4]=,dy[4]=;
int min,max;
bool visited[maxn][maxn],ok;
void dfs(int x,int y,int left,int right)
for(int i=0;i<4;i++)
}return;
}bool isok(int k)
return false;
}int main()
}int l=0,r=max-min;
while(lprintf("%d\n",r);
}return 0;
}
NYOJ306 走迷宮 dfs 二分搜尋
dr.kong設計的機械人卡多非常愛玩,它常常偷偷跑出實驗室,在某個遊樂場玩之不疲。這天卡多又跑出來了,在sjtl遊樂場玩個不停,坐完碰碰車,又玩滑滑梯,這時卡多又走入乙個迷宮。整個迷宮是用乙個n n的方陣給出,方陣中單元格中填充了乙個整數,表示走到這個位置的難度。這個迷宮可以向上走,向下走,向右走...
nyoj306(二分 dfs 好題)
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 dr.kong設計的機械人卡多非常愛玩,它常常偷偷跑出實驗室,在某個遊樂場玩之不疲。這天卡多又跑出來了,在sjtl遊樂場玩個不停,坐完碰碰車,又玩滑滑梯,這時卡多又走入乙個迷宮。整個迷宮是 用乙個n n的方陣給出 方陣中 單元格...
NYOJ 306 走迷宮 二分 搜尋
題意 從 1,1 點到 n,n 找一條路徑 只能上下左右走 使路徑上最大點與最小點差值最小。思路分析 1 這題和我們以前做的迷宮題差別很大,以前做的一般就是求 最小步數或代價最小,乙個dfs或bfs即可,而此題是求最大點與最小點差。2 分析看出,一次dfs和bfs對我等弱菜來說顯然不可 大牛或許可以...