如果能够实现,每个河边的城市对应的控制区域一定是一条线段。

所以直接bfs每个河边的城市,贪心线段的右端点

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int qx[500005],qy[500005],a[505][505],n,m,bo[505][505],ans;//队列一定要开大!!!!!!
bool flag[505],ff[505];
struct WATER{
int l,r;
WATER(){l=r=0x7fffffff;}
}ww[505];
void bfs(int xx){
int h=1,t=1,x,y;
qx[1]=1; qy[1]=xx;
bo[1][xx]=xx;
while(h<=t){
x=qx[h]; y=qy[h++];
if((x-1>0)&&(bo[x-1][y]!=xx)&&(a[x-1][y]<a[x][y])){qx[++t]=x-1;qy[t]=y;bo[x-1][y]=xx;}
if((x+1<=n)&&(bo[x+1][y]!=xx)&&(a[x+1][y]<a[x][y])){qx[++t]=x+1;qy[t]=y;bo[x+1][y]=xx;}
if((y-1>0)&&(bo[x][y-1]!=xx)&&(a[x][y-1]<a[x][y])){qx[++t]=x;qy[t]=y-1;bo[x][y-1]=xx;}
if((y+1<=m)&&(bo[x][y+1]!=xx)&&(a[x][y+1]<a[x][y])){qx[++t]=x;qy[t]=y+1;bo[x][y+1]=xx;}
}
}
bool cmp(WATER a,WATER b){
if(a.l==b.l) return a.r<b.r;
return a.l<b.l;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&a[i][j]);
for(int i=1;i<=m;i++){
if(a[1][i-1]<=a[1][i]&&a[1][i+1]<=a[1][i]){
bfs(i);
for(int j=1;j<=m;j++){
if(bo[n][j]==i){
flag[j]=1;
if(!ff[i]) ww[i].l=j,ff[i]=1;
ww[i].r=j;
}
}
}
}
for(int i=1;i<=m;i++)
if(!flag[i])
ans++;
if(ans){
printf("0\n%d\n",ans);
return 0;
}
sort(ww+1,ww+m+1,cmp);
int now=1,maxr=1,it=1,maxm=m;
for(int i=1;i<=m;i++)if(ww[i].l>m){maxm=i-1;break;}
while(now<m){
maxr=now+1;
for(int i=it;i<=maxm;i++){
if(ww[i].l>now+1) break;
if(ww[i].l<=now+1){
if(ww[i].r>=maxr){
maxr=ww[i].r;
it=i;
}
}
}
now=maxr; ans++;
}
printf("1\n%d\n",ans);
return 0;
}

noip2010 引水入城 bfs+贪心的更多相关文章

  1. vijos p1777 引水入城(bfs+贪心)

    引水入城   描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N行M列的矩形,其中每个格子都代表一座城市,每座城市都有一个海拔高度. 为了使 ...

  2. NOIP2010引水入城[BFS DFS 贪心]

    题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度. ...

  3. Luogu1514 NOIP2010 引水入城 BFS、贪心

    传送门 NOIP的题目都难以写精简题意 考虑最上面一排的某一个点对最下面一排的影响是什么样的,不难发现必须要是一段连续区间才能够符合题意. 如果不是一段连续区间,意味着中间某一段没有被覆盖的部分比周围 ...

  4. NOIP2010_T4_引水入城 bfs+贪心

    在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个 N 行 M 列的矩形,如上图所示,其中每个格子都代表一座城 市,每座城市都有一个海拔高度.为了使 ...

  5. luogu 1066 引水入城(bfs+贪心)

    90分,有一个点TLE.... 首先可以证明一个东西,如果从上面一排的某个点bfs一次到最下面一排的饮水点不是一个区间的话,那么最后一定所有饮水点不会被覆盖完的. 证明考虑反证法. 所以从上面一排的每 ...

  6. luogu1514 [NOIp2010]引水入城 (bfs+记忆化搜索)

    我们先bfs一下看看是否能到最底下的所有点 如果不能的话,直接把不能到的那几个数一数就行了 如果能的话: 可以发现(并不可以)某格能到达的最底下的格子一定是一个连续的区间 (因为如果不连续的话,我们先 ...

  7. 521. [NOIP2010] 引水入城 cogs

    521. [NOIP2010] 引水入城 ★★★   输入文件:flow.in   输出文件:flow.out   简单对比时间限制:1 s   内存限制:128 MB 在一个遥远的国度,一侧是风景秀 ...

  8. NOIP2010 引水入城

    4引水入城 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个 ...

  9. [NOIP2010] 引水入城 贪心 + 记忆化搜索

    ---题面--- 题解: 本蒟蒻并没有想到bfs的做法,,,, 只会dfs了 首先我们需要知道一个性质. 我们设k[i].l 为在i点建立水库可以支援到的最左边的城市,k[i].r为最右边的. 那么点 ...

随机推荐

  1. java多继承

    众所周知,java面向对象语言中只有单继承的编程语言,也许你会说,通过实现多个接口这种变通的方式达到多继承的目的.没错,你说的对,不过这并不是本片文章要说到的内容,本文要讲到的内容是java中实实在在 ...

  2. Python Selenium之异常处理

    自动化测试执行过程中,难免会有错误/异常出现,比如测试脚本没有发现对应元素,则会立刻抛出NoSuchElementException异常.这时不要怕,肯定是测试脚本或者测试环境哪里出错了!那如何处理才 ...

  3. 每天几分钟跟小猫学前端之node系列:用node实现最简单的爬虫

    先来段求分小视频: https://www.iesdouyin.com/share/video/6550631947750608142/?region=CN&mid=6550632036246 ...

  4. myBatis之入门示例

    1. myBatis目录结构: --src ---entity [POJO类] ---mappers [映射类] ----*Mapper.java [方法接口,相当于Dao] ----*Mapper. ...

  5. gdb命令中attach使用

    [测试程序] 我们先看看我们的测试程序: /* in eg1.c */ int wib(int no1, int no2) {         int result, diff;         di ...

  6. Neo4j安装后的密码修改

    首先默认用户名/密码是neo4j/neo4j. 在安全验证打开的时候,你访问服务器/db/data之类的地址可能会提示您以下信息: { "password_change" : &q ...

  7. mysql select column default value if is null

    mysql select column default value if is null SELECT `w`.`city` AS `city`, `w`.`city_en` AS `city_en` ...

  8. Ocelot中文文档-日志

    目前,Ocelot使用标准的日志记录接口ILoggerFactory/ILogger . 在IOcelotLogger / IOcelotLoggerFactory中提供了标准的asp.net cor ...

  9. [译文]Domain Driven Design Reference(二)—— 让模型起作用

    本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 其它本系列其它文章 ...

  10. (七):C++分布式实时应用框架 2.0

    C++分布式实时应用框架 2.0 技术交流合作QQ群:436466587 欢迎讨论交流 上一篇:(六):大型项目容器化改造 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同 ...