思路:用dfs 会爆栈,巨坑,要用bfs。

#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int,int>
#define piii pair<int, pair<int,int> > using namespace std; const int N = + ;
const int M = + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + ;
const double eps = 1e-; int n, ans1, ans2, s[N][N], mx[N][N], mn[N][N];
int dx[] = {, -, , , , , -, -};
int dy[] = {, , , -, , -, , -}; bool vis[N][N]; bool bfs1(int sx, int sy) {
queue<pii> que;
vis[sx][sy] = true; que.push(mk(sx, sy)); bool flag = true;
while(!que.empty()) {
pii u = que.front(), v;
que.pop();
if(mx[u.fi][u.se] > s[u.fi][u.se]) {
flag = false;
} for(int i = ; i < ; i++) {
v.fi = u.fi + dx[i];
v.se = u.se + dy[i];
if(v.fi < || v.fi > n || v.se < || v.se > n || vis[v.fi][v.se] || s[v.fi][v.se] != s[u.fi][u.se])
continue;
vis[v.fi][v.se] = true;
que.push(v);
}
}
return flag;
} bool bfs2(int sx, int sy) {
queue<pii> que;
vis[sx][sy] = true; que.push(mk(sx, sy)); bool flag = true;
while(!que.empty()) {
pii u = que.front(), v;
que.pop();
if(mn[u.fi][u.se] < s[u.fi][u.se]) {
flag = false;
} for(int i = ; i < ; i++) {
v.fi = u.fi + dx[i];
v.se = u.se + dy[i];
if(v.fi < || v.fi > n || v.se < || v.se > n || vis[v.fi][v.se] || s[v.fi][v.se] != s[u.fi][u.se])
continue;
vis[v.fi][v.se] = true;
que.push(v);
}
} return flag;
} int main() {
scanf("%d", &n);
for(int i = ; i <= n; i++) {
for(int j = ; j <= n; j++) {
scanf("%d", &s[i][j]);
mx[i][j] = mn[i][j] = s[i][j];
}
} for(int i = ; i <= n; i++) {
for(int j = ; j <= n; j++) {
for(int k = ; k < ; k++) {
int x = i + dx[k];
int y = j + dy[k];
if(x < || x > n || y < || y > n)
continue; mx[i][j] = max(mx[i][j], s[x][y]);
mn[i][j] = min(mn[i][j], s[x][y]);
}
}
} ans1 = , ans2 = ;
for(int i = ; i <= n; i++) {
for(int j = ; j <= n; j++) {
if(!vis[i][j]) {
ans1 += bfs1(i, j);
}
}
} memset(vis, false, sizeof(vis)); for(int i = ; i <= n; i++) {
for(int j = ; j <= n; j++) {
if(!vis[i][j]) {
ans2 += bfs2(i, j);
}
}
} printf("%d %d\n", ans1, ans2);
return ;
}

bzoj 1102的更多相关文章

  1. [原博客] POI系列(2)

    正规.严谨.精妙. -POI bzoj 1098 : [POI2007]办公楼biu 如果把互相有手机号的建边得到一个无向图,那么这个图的补图的连通分量个数就是答案了.因为互相没手机号的必然在同一个连 ...

  2. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  3. BZOJ 3275: Number

    3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discus ...

  4. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

  5. bzoj 4610 Ceiling Functi

    bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...

  6. BZOJ 题目整理

    bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...

  7. 【sdoi2013】森林 BZOJ 3123

    Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...

  8. 【清华集训】楼房重建 BZOJ 2957

    Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...

  9. 【splay】文艺平衡树 BZOJ 3223

    Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3  ...

随机推荐

  1. ubuntu 16 server 安装lnmp所需依赖

    安装 1.nginx build-essential libc6 libpcre3 libpcre3-dev libssl-dev zliblg zliblg-dev lab-base 依赖库: ap ...

  2. Linux系统之路——如何在CentOS7.2安装MySQL

    一.Mysql 各个版本区别:1.MySQL Community Server 社区版本,开源免费,但不提供官方技术支持.2.MySQL Enterprise Edition 企业版本,需付费,可以试 ...

  3. Qt ------ CSS 长度单位

    1.         css相对长度单位 Ø         em          元素的字体高度 Ø         ex           字体x的高度 Ø         px        ...

  4. 有向图博弈+出度的结合 Codeforces Round #406 (Div. 2) C

    http://codeforces.com/contest/787/problem/C 题目大意:有一个长度为n的环,第1个位置是黑洞,其他都是星球.已知在星球上(不含第一个黑洞)有一位神.有两个人, ...

  5. ASP.NET Session详解笔记

    (一) 描述 当用户在 Web 应用程序中导航 ASP.NET 页时,ASP.NET 会话状态使您能够存储和检索用户的值.HTTP 是一种无状态协议.这意味着 Web 服务器会将针对页面的每个 HTT ...

  6. js 给指定ID赋值

    js 给指定ID赋值 <script language="javascript" type="text/javascript"> document. ...

  7. Go语言 8 反射

    文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ Go学习群:415660935 8.1概念和作用 Reflection(反射)在计算 ...

  8. 可能是是最全的Springboot基础视频分享,告别无视频可学

    一头扎进SpringBoot视频教程 SpringBoot入门 2017年-张志君老师-SpringBoot(新增) 欢迎关注我的微信公众号:"Java面试通关手册" 回复关键字& ...

  9. perl6 单线程破解phpmyadmin脚本

    use HTTP::UserAgent; my $ua = HTTP::UserAgent.new; my $url = 'http://localhost/phpMyAdmin/index.php' ...

  10. ISG2018 web题Writeup

    0x01.命令注入 这题可以使用burpsuite扫出来,但是可能需要测一下. 得知payload为:i%7cecho%20gzavvlsv9c%20q9szmriaiy%7c%7ca%20%23'% ...