博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj4395[Usaco2015 dec]Switching on the Lights*
阅读量:7098 次
发布时间:2019-06-28

本文共 1564 字,大约阅读时间需要 5 分钟。

题意:

n*n个房间,奶牛初始在(1,1),且只能在亮的房间里活动。每当奶牛经过一个房间,就可以打开这个房间里控制其它房间灯的开关。问奶牛最多可点亮多少个房间。n≤100。

题解:

因为只要一个房间灯亮了,它将一直亮着,所以可以做bfs,每次由队列中的节点扩展可以到的节点。然而这样做不行,因为可能之前尝试过不能到达的房间的灯可以在之后到达的房间里被打开。解决方法是不停做bfs,直到答案不再更新。

代码:

1 #include 
2 #include
3 #include
4 #include
5 #define inc(i,j,k) for(int i=j;i<=k;i++) 6 #define maxn 110 7 using namespace std; 8 9 inline int read(){10 char ch=getchar(); int f=1,x=0;11 while(ch<'0'||ch>'9'){
if(ch=='-')f=-1; ch=getchar();}12 while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();13 return f*x;14 }15 struct nd{
int x,y,n;}nds[maxn*200]; int g[maxn][maxn];16 int n,m,ans; bool lg[maxn][maxn],vis[maxn][maxn]; queue
>q;17 void bfs(int x,int y){18 while(!q.empty())q.pop(); memset(vis,0,sizeof(vis)); q.push(make_pair(x,y)); vis[x][y]=1;19 for(int i=g[x][y];i;i=nds[i].n)if(!lg[nds[i].x][nds[i].y])lg[nds[i].x][nds[i].y]=1,ans++;20 while(!q.empty()){21 int nowx=q.front().first,nowy=q.front().second; q.pop();22 if(nowx>1&&lg[nowx-1][nowy]&&!vis[nowx-1][nowy]){23 q.push(make_pair(nowx-1,nowy)); vis[nowx-1][nowy]=1;24 for(int i=g[nowx-1][nowy];i;i=nds[i].n)25 if(!lg[nds[i].x][nds[i].y])lg[nds[i].x][nds[i].y]=1,ans++;26 }27 if(nowx
1&&lg[nowx][nowy-1]&&!vis[nowx][nowy-1]){33 q.push(make_pair(nowx,nowy-1)); vis[nowx][nowy-1]=1;34 for(int i=g[nowx][nowy-1];i;i=nds[i].n)35 if(!lg[nds[i].x][nds[i].y])lg[nds[i].x][nds[i].y]=1,ans++;36 }37 if(nowy

 

20160908

转载于:https://www.cnblogs.com/YuanZiming/p/5875999.html

你可能感兴趣的文章
onvif开发之设备发现功能的实现--转
查看>>
虚拟机下linux迁移造成MAC地址异常处理办法
查看>>
数据库事务原子性、一致性是怎样实现的?[转]
查看>>
“营改增”后你该知道的…代开发票需要知道的16个事项
查看>>
arcgis10.1连接sqlserver数据库常见问题(转载)
查看>>
动态设置js的属性
查看>>
Fragment的setUserVisibleHint方法实现懒加载,但setUserVisibleHint 不起作用?
查看>>
@responsebody注解的作用就是让viewresolver不起作用,不返回视图名称而是直接返回的return object...
查看>>
lodash(二)对象+循环遍历+排序
查看>>
Eclipse快捷键大全
查看>>
Java -- 获取MAC地址
查看>>
Visual Prolog 的 Web 专家系统 (1)
查看>>
void 指针的转换
查看>>
再议Unity优化
查看>>
localhost兼容js不能用
查看>>
Makefile 10——打造更专业的编译环境-huge项目
查看>>
Create and Call HttpHandler in SharePoint
查看>>
pymysql.err.InternalError: (1054, "Unknown column 'None' in 'field list'")
查看>>
树莓派与window 10组成的物联网核心:让人失望
查看>>
Servlet的异常处理
查看>>