Pro

Luogu3072

Sol

这题的话,我就把我的想做当做反例给说一下。

错误想法:很容易的发现,一个不规则的图形,我们可以通过转换为规则的矩形来求周长,可以平移一些边来求得,但是存在反例。

如图,蓝色为草堆。如果我们按照边平移转换为规则的矩形求得话,答案就是161616,但我们会发现,那块空白的区域的两条边没有算进去,所以正确答案应该是181818。

正解:既然只有一个联通块,那么我们就可以搜索,直接深搜,唯一需要注意的点就是中间的空白部分,用judjudjud函数判断。

Code

#include<iostream>
#include<cstdio>
#include<set>
using namespace std;set< pair < int,int > >s , vis;
int n , ans;int jud(int x , int y) {for(int i=-1;i<=1;i++)for(int j=-1;j<=1;j++)   if(s.count(make_pair(x+i,y+j))==1)return 0;return 1;
}void dfs(int x , int y) {if(s.count(make_pair(x,y))) {ans++;return ;}if(vis.count(make_pair(x,y)))return ;vis.insert(make_pair(x,y));if(jud(x,y))return ;dfs(x+1 , y);dfs(x-1 , y);dfs(x , y+1);dfs(x , y-1);
}int main() {scanf("%d",&n);for(int i=1; i<=n; i++) {int x , y;scanf("%d%d",&x,&y);s.insert(make_pair(x,y));}pair<int,int>st = *s.begin();dfs(st.first-1 , st.second-1);printf("%d",ans);return 0;
}

[USACO13FEB]Perimeter【DFS / 深搜】相关推荐

  1. 2020 年百度之星·程序设计大赛 - 初赛一 GPA DFS深搜

    problem GPA Accepts: 1554 Submissions: 3947 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...

  2. [hihocoder] #1716 : 继承顺位(dfs深搜)

    时间限制: 10000ms 单点时限: 1000ms 内存限制: 256MB 描述 H国的国王有很多王子,这些王子各自也都有很多王孙,王孙又各自有很多后代-- 总之,H国王族的族谱形成了一棵以国王为根 ...

  3. 部分和(dfs深搜回溯法)

    问题描述 给定整数序列a1,a2,.,an,判断是否可以从中选出若干数,使它们的和恰好为k, 1<=n<=20 -10^8<=ai<=10^8 -10^8<=k<= ...

  4. dfs深搜--八皇后问题

    题目描述 一个如下的 6×66 \times 66×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用 ...

  5. 数独游戏(dfs深搜)

    问题描述 如下所示,玩家需要根据9*9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个色九宫内的数字均含1-9,不重复 数独的答案都是唯一的,所以,多个解也称为无解 本图的数字 ...

  6. 【DFS深搜】四色问题

    题目 问题描述: 设有图4-11所示地图,每个区域代表一个省,区域中的数字代表省的编号,今将每个省涂上红(R),兰(B),黄(Y),白(W)四种颜色之一,使相邻的省份不同颜色,且第一种颜色必须填1. ...

  7. DFS深搜与BFS广搜专题

    一般搜索算法的流程框架 DFS和BFS与一般搜索流程的关系 如果一般搜索算法流程4使用的是stack栈结构(先进后出,后进先出)那么就会越搜越深.即,DFS,DFS只保存当前一条路径,其目的是枚举出所 ...

  8. zzuli oj 2532: 婷婷是土豪 DFS深搜

    2532: 婷婷是土豪 题目描述 众所周知婷婷是我们组大土豪,组里找他借钱和还钱的都有一大堆,借钱的太多了,每天晚上他都要抱怨没钱了. 每天早上,找婷婷借钱的都排成一条长队,假设还钱的有m个,借钱的有 ...

  9. DFS(深搜)算法解析

    图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系.对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示. 图可以分为有向图和无向图,一般用G=(V,E)来表示图. ...

最新文章

  1. 转:一个简单的基于WEB的QTP自动化测试框架-SAFFRON
  2. 深入分析Java Web技术内幕(二)
  3. OpenCV支持向量机SVM对线性不可分数据的处理
  4. 题目 1083: Hello, world!
  5. RedHat Linux AS4 LAMP经典网站搭建实例
  6. docker jdk mysql_docker部署springboot前后端分离项目(jdk+jar包+mysql+redis+nginx)(示例代码)...
  7. 答复审稿人的10条简易法则,你都学会了吗?
  8. 谷歌云试图抢占SAP软件云市场;企业上云迎来“黄金时代”;IBM和SAP帮助金融机构加快采用云技术……...
  9. libvirt- Virsh 所有命令详单
  10. java怎么安装_Java桌面应用程序篇:发展历史以及程序的应用
  11. 第23章 排序算法(包括merge等)
  12. linux 下idea 启动tomcat报JMX 1099错误解决办法
  13. 软件测试佣金问题等价类,测试用例设计白皮书--等价类划分方法
  14. Oracle EBS流程之--PO ER Model
  15. 无头像不社交:浅析“头像设置”功能
  16. cdr导出pdf是html的,CorelDraw 文件导出PDF CDR页码插件 忽略视图及颜色样式补丁
  17. 由人类进化想到软件的作用
  18. 开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台...
  19. 简单聊聊,我是如何零成本,推广海外游戏~
  20. 处理器协同机制其三C++内存顺序与栅栏(及依赖性读屏障)

热门文章

  1. 树形$dp$学习笔记
  2. python 之发送邮件服务[原著] 海瑞博客
  3. L_01 网络字节顺序
  4. github 中redisPhpAdmin redis 可视化界面
  5. 「造个轮子」——设计 HTTP 请求全局上下文
  6. 03_ Flume采集(监听)目录到HDFS案例
  7. Bzoj1007 [HNOI2008]水平可见直线
  8. MJRefresh实现刷新(使用它的Block方法)
  9. oracle中的多表连接
  10. Linq学习比较第2篇