传送门

题目大意:n*n的网格,每个网格是一个房间

都关着灯,只有(1,1)开着灯,且(x,y)有着(z,k)房间灯的开关。

问从(1,1)开始走最多点开几盏灯。

题解:搜索+骗分。

劳资的骗分天下无敌,劳资的骗分世界第一

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<vector>
#define N 102
using namespace std; int n,m,ans=,js; int vis[N][N],b[N][N],ok[N][N]; int mx[]={,,-,},
my[]={,,,-}; struct node{
int x,y;
}; struct T{
int x,y;
}; queue<T>q; vector<node>a[N][N]; void bfs(){
T c;c.x=;c.y=;q.push(c);
vis[][]=true;b[][]=true;
while(!q.empty()){
T now=q.front();q.pop();js++;
if(js==n*n*)return; //遍历了这么多遍应该灯应该都开了吧。
int xx=now.x,yy=now.y;
for(int i=;i<a[xx][yy].size();i++){
node g=a[xx][yy][i];
if(b[g.x][g.y]==)ans++;
b[g.x][g.y]=true;
}
for(int i=;i<;i++){
int nx=xx+mx[i],ny=yy+my[i];
if(nx<||nx>n||ny<||ny>n||vis[nx][ny]||b[nx][ny]==) continue;
vis[nx][ny]=true;
T tmp;tmp.x=nx;tmp.y=ny;
q.push(tmp);
}
q.push(now);
}
} int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++){
int x,y,nx,ny;
scanf("%d%d%d%d",&x,&y,&nx,&ny);
node t;t.x=nx;t.y=ny;
a[x][y].push_back(t);
}
bfs();
printf("%d\n",ans);
return ;
}

AC

骗分归骗分正解还是要学的

每点开一盏灯,看这盏灯的上下左右是否被点开灯了

有被点开的就开始搜这个点。

洛谷 P2828 Switching on the Lights(开关灯)的更多相关文章

  1. 洛谷P2828 Switching on the Lights(开关灯)

    P2828 Switching on the Lights(开关灯) 题目背景 来源:usaco-2015-dec Farm John 最近新建了一批巨大的牛棚.这些牛棚构成了一个N*N的矩形网络.( ...

  2. 搜索【洛谷P2845】 [USACO15DEC]Switching on the Lights 开关灯

    P2845 [USACO15DEC]Switching on the Lights 开关灯 题目背景 来源:usaco-2015-dec Farm John 最近新建了一批巨大的牛棚.这些牛棚构成了一 ...

  3. Luogu P2845 [USACO15DEC]Switching on the Lights 开关灯(bfs)

    P2845 [USACO15DEC]Switching on the Lights 开关灯 题意 题目背景 来源:usaco-2015-dec \(Farm\ John\)最近新建了一批巨大的牛棚.这 ...

  4. P2845 [USACO15DEC]Switching on the Lights 开关灯

    题目背景 来源:usaco-2015-dec Farm John 最近新建了一批巨大的牛棚.这些牛棚构成了一个N*N的矩形网络.(1<n<100) 然而bessie十分怕黑,他想计算可以把 ...

  5. luogu P2828 Switching on the Lights(开关灯)

    题目背景 来源:usaco-2015-dec Farm John 最近新建了一批巨大的牛棚.这些牛棚构成了一个N*N的矩形网络.(1<n<100) 然而bessie十分怕黑,他想计算可以把 ...

  6. 「Luogu P2845 [USACO15DEC]Switching on the Lights 开关灯」

    USACO的又一道搜索题 前置芝士 BFS(DFS)遍历:用来搜索.(因为BFS好写,本文以BFS为准还不是因为作者懒) 链式前向星,本题的数据比较水,所以邻接表也可以写,但是链式前向星它不香吗. 具 ...

  7. 洛谷P2845-Switching on the Lights 开关灯

    Problem 洛谷P2845-Switching on the Lights 开关灯 Accept: 154    Submit: 499Time Limit: 1000 mSec    Memor ...

  8. COCI2017-2018#3 Dojave || 洛谷P4443

    题目传送门............................................................................................... ...

  9. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

随机推荐

  1. UML中的组合、聚合、关联、继承、实现、依赖

    转自:http://justsee.iteye.com/blog/808799 UML定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合. 继承 指的是一个类(称为子类.子接口)继承另外的一个类 ...

  2. Oracle登录被拒绝; 权限不足或用户名/口令无效

    第一步: 打开CMD命令窗,输入如下命令:sqlplus "/as sysdba",回车 第二步: 输入命令:alter user sys identified by Orcl12 ...

  3. jqPaginator分页(ajax用法和form表单提交用法)

    一般使用方法 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  4. (3) iOS开发之UI处理-UIView篇

    在UIView作为许多子控件的容器的时候,首先我们需要动态的计算出UIView下的所有子控件的高度,并布局排列好,然后我们还要把作为容器的UIView的高度调整到刚好包裹着所有子控件,不会过矮,也不会 ...

  5. Ansible 小手册系列 十三(Jinja2)

    用于playbook中的jinja 2过滤器 更改数据格式,其结果是字符串 {{ some_variable | to_json }} {{ some_variable | to_yaml }} 对于 ...

  6. office套件

    一.PDF模块 使用PyPDF2模块 pip install PyPDF2 1.1 从PDF读取数据 直接读取,并打印出来.但是这种打印存在一个问题,不能中文字符 import PyPDF2 impo ...

  7. 《Effective C++》第4章 设计与声明(1)-读书笔记

    章节回顾: <Effective C++>第1章 让自己习惯C++-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(1)-读书笔记 <Effecti ...

  8. NI FPGA板卡程序设计概述

    NI公司提到了三种不同应用开发环境ADE:http://www.ni.com/white-paper/5956/zhs/ LabVIEW是NI公司主推的ADE,采用G语言(图像化语言),支持力度最大 ...

  9. 产生num个不重复的随机数组

    createDiffRandom : function (from,to,num) { // 产生num个不重复的随机数组 var arr=[],json={}; // 随机数数组 , 标记json对 ...

  10. java Map 的学习

    一.常用API: clear() 从 Map 中删除所有映射 remove(Object key) 从 Map 中删除键和关联的值 put(Object key, Object value) 将指定值 ...