bzoj 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场【bfs】
2018-05-05 16:41
537 查看
不是严格小于是小于等于啊!!!!!不是严格小于是小于等于啊!!!!!不是严格小于是小于等于啊!!!!!
是我看不懂人话还是翻译不说人话= =
把所有格子按值排个序,bfs扩展打标记即可
#include<iostream> #include<cstdio> #include<algorithm> #include<queue> using namespace std; const int N=705,dx[]={-1,-1,-1,0,0,1,1,1},dy[]={-1,0,1,-1,1,-1,0,1}; int n,m,a ,ans,tot; bool v ; struct qwe { int x,y,w; qwe(int X=0,int Y=0,int W=0) { x=X,y=Y,w=W; } }p[N*N]; bool cmp(const qwe &a,const qwe &b) { return a.w>b.w; } int read() { int r=0,f=1; char p=getchar(); while(p>'9'||p<'0') { if(p=='-') f=-1; p=getchar(); } while(p>='0'&&p<='9') { r=r*10+p-48; p=getchar(); } return r*f; } inline bool ok(int x,int y,int pr) { return x>=1&&y>=1&&x<=n&&y<=m&&a[x][y]<=pr&&!v[x][y]; } void bfs(qwe s) { ans++; queue<qwe>q; q.push(s); v[s.x][s.y]=1; while(!q.empty()) { int x=q.front().x,y=q.front().y,w=q.front().w; q.pop(); for(int i=0;i<8;i++) if(ok(x+dx[i],y+dy[i],w)) v[x+dx[i]][y+dy[i]]=1,q.push(qwe(x+dx[i],y+dy[i],a[x+dx[i]][y+dy[i]])); } } int main() { n=read(),m=read(); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) a[i][j]=read(),p[++tot]=qwe(i,j,a[i][j]); sort(p+1,p+1+tot,cmp); for(int i=1;i<=tot;i++) if(!v[p[i].x][p[i].y]) bfs(p[i]); printf("%d\n",ans); return 0; }
相关文章推荐
- BZOJ_1619_[Usaco2008_Nov]_Guarding_the_Farm_保卫牧场_(模拟+bfs)
- BZOJ 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场
- [BZOJ] 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场
- 【BZOJ】1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场(dfs)
- bzoj1619【Usaco2008 Nov】Guarding the Farm 保卫牧场
- BZOJ 1619 USACO 2008 Nov Guarding the Farm 保卫牧场
- DFS-BZOJ-1619-[Usaco2008 Nov]Guarding the Farm 保卫牧场
- Bzoj 1619 [Usaco2008 Nov]Guarding the Farm 保卫牧场
- |BZOJ 1619|搜索|[Usaco2008 Nov]Guarding the Farm 保卫牧场
- bzoj1619[Usaco2008 Nov]Guarding the Farm 保卫牧场
- bzoj1619[Usaco2008 Nov]Guarding the Farm 保卫牧场
- bzoj 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场(DFS)
- 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场 搜索
- 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场
- 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场
- [Usaco2008 Nov]Guarding the Farm 保卫牧场[DFS]
- BZOJ1605 [Usaco2008 Open]Crisis on the Farm 牧场危机
- 麻烦的DP-BZOJ-1605-[Usaco2008 Open]Crisis on the Farm 牧场危机
- BZOJ 1605 [Usaco2008 Open]Crisis on the Farm 牧场危机 DP
- bzoj 1605: [Usaco2008 Open]Crisis on the Farm 牧场危机(DP)