1066: [SCOI2007]蜥蜴
来源:互联网 发布:gta5捏脸数据清纯美女 编辑:程序博客网 时间:2024/04/28 18:47
#include<iostream>#include<cstring>#include<cstdio>#define inf 0x7fffffffusing namespace std;inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; }struct edge{int to,next,v;}e[50001];int r,c,d,cnt=1,ans,T=801,mp[21][21],mark[21][21],head[50001],h[50001];bool judge(int x1,int y1,int x2,int y2){ if(((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))<=(d*d)&&mp[x1][y1]&&mp[x2][y2])return 1; return 0;}void insert(int u,int v,int w){e[++cnt]=(edge){v,head[u],w};head[u]=cnt;e[++cnt]=(edge){u,head[v],0};head[v]=cnt;}inline bool bfs(){int q[50001],t=0,w=0;memset(h,-1,sizeof(h));h[0]=0;while(t<=w){int now=q[t++];for(int i=head[now];i;i=e[i].next){if(e[i].v&&h[e[i].to]==-1){h[e[i].to]=h[now]+1;q[++w]=e[i].to;}}}if(h[T]==-1)return 0;else return 1;}inline int dfs(int x,int f){if(x==T)return f;int rest,used=0;for(int i=head[x];i;i=e[i].next){if(e[i].v&&h[e[i].to]==h[x]+1){rest=f-used;rest=dfs(e[i].to,min(e[i].v,rest));e[i].v-=rest;e[i^1].v+=rest;used+=rest;if(used==f)return f;}}if(!used)h[x]=-1;return used;}void dinic(){while(bfs())ans-=dfs(0,inf);}int main(){r=read();c=read();d=read(); char ch[21]; for(int i=1;i<=r;i++){ scanf("%s",ch); for(int j=1;j<=c;j++) mp[i][j]=ch[j-1]-'0'; } int tot=0; for(int i=1;i<=r;i++) for(int j=1;j<=c;j++)mark[i][j]=++tot; for(int i=1;i<=r;i++){ scanf("%s",ch); for(int j=1;j<=c;j++) if(ch[j-1]=='L'){ insert(0,mark[i][j],1);ans++;} } for(int i=1;i<=d;i++) for(int j=d+1;j<=r-d;j++){ insert(mark[j][i]+400,801,inf); insert(mark[j][c-i+1]+400,801,inf); } for(int i=1;i<=d;i++) for(int j=1;j<=c;j++){ insert(mark[i][j]+400,801,inf); insert(mark[r-i+1][j]+400,801,inf); }for(int x1=1;x1<=r;x1++) for(int y1=1;y1<=c;y1++) for(int x2=x1-d;x2<=x1+d;x2++) for(int y2=y1-d;y2<=y1+d;y2++) if(judge(x1,y1,x2,y2)&&(x1!=x2||y1!=y2)) insert(mark[x1][y1]+400,mark[x2][y2],inf); for(int i=1;i<=r;i++) for(int j=1;j<=c;j++) if(mp[i][j])insert(mark[i][j],mark[i][j]+400,mp[i][j]);dinic();printf("%d",ans);return 0;}
0 0
- [BZOJ 1066][SCOI2007]蜥蜴
- 1066: [SCOI2007]蜥蜴
- BZOJ 1066: [SCOI2007]蜥蜴
- bzoj 1066: [SCOI2007]蜥蜴
- 1066: [SCOI2007]蜥蜴
- bzoj 1066: [SCOI2007]蜥蜴
- 蜥蜴[SCOI2007,BZOJ 1066]
- BZOJ 1066 [SCOI2007]蜥蜴
- [bzoj 1066][SCOI2007]蜥蜴
- 1066: [SCOI2007]蜥蜴
- bzoj 1066 [SCOI2007] 蜥蜴 题解
- 【SCOI2007】蜥蜴
- SCOI2007[蜥蜴]
- [SCOI2007]蜥蜴
- [SCOI2007]蜥蜴
- [SCOI2007]蜥蜴
- 【最大流】[SCOI2007]蜥蜴 BZOJ 1066
- BZOJ 1066 POJ 2711 [SCOI2007]蜥蜴
- 最少步数
- String
- CocoStudio在Cocos2d-x Lua项目中的应用--加载动画
- jsoup解析HTML DOM
- Raspberry - 修改crontab默认编辑器为vim
- 1066: [SCOI2007]蜥蜴
- 这是编译器的事情,还是反汇编器的事情
- iOS开发如何实现消息推送机制
- 140704
- php不安全函数列表
- 基于ADALINE网络的LMS算法识别手写数字1和2
- 应用开发者指南_index
- MFC中的CListCtrl添加右键菜单消息响应实例分析
- js实现动态获取系统时间,显示到页面上