http://xcacm.hfut.edu.cn/problem.php?id=1213

set + 搜索

姐姐是用搜索+二分做的,效率要高很多

#include<iostream>
#include<cstdio>
#include<cstring>
#include<set>
using namespace std;
int x[]={ , ,-, };
int y[]={ ,-, , };
int lable[][],d[][];
int T,m,n,p,q,deepth=,cake=;
void dfs(int a,int b)
{
if(d[a][b]>deepth||a<||a>=m||b<||b>=n||lable[a][b]==){return;}
lable[a][b]=;
cake++;
for(int i=;i<;i++)
{
if(a+x[i]<||a+x[i]>=m||b+y[i]<||b+y[i]>=n){continue;}
dfs(a+x[i],b+y[i]);
}
return;
}
void solve()
{
int i,j;
for(i=; i<m; i++)
{
if(lable[i][]==)
{
continue;
}
dfs(i,);
}
for(i=; i<m; i++)
{
if(lable[i][n-]==)
{
continue;
}
dfs(i,n-);
}
for(j=; j<n; j++)
{
if(lable[][j]==)
{
continue;
}
dfs(,j);
}
for(j=; j<n; j++)
{
if(lable[m-][j]==)
{
continue;
}
dfs(m-,j);
}
} int main()
{
int i,j;
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d%d",&m,&n,&p,&q);
set<int>donser;
for(i=;i<m;i++)
{
for(j=;j<n;j++)
{
scanf("%d",&d[i][j]);
donser.insert(d[i][j]);
}
}
while()
{
deepth=*donser.begin();
solve();
donser.erase(deepth);
if(cake>=p&&cake<=q)
{
cout<<deepth<<endl;
cake=;
memset(lable,,sizeof(lable));
memset(d,,sizeof(d));
break;
}
if(donser.size()==||cake>q)
{
cout<<"-1"<<endl;
cake=;
memset(lable,,sizeof(lable));
memset(d,,sizeof(d));
break;
}
cake=;
memset(lable,,sizeof(lable));
}
}
return ;
}

2015安徽省赛 I.梯田的更多相关文章

  1. 2015安徽省赛 G.你来擒孟获

    http://xcacm.hfut.edu.cn/problem.php?id=1211 SPFA模板题目 最短路变种,从起点终点各找一次最短路相加 #include<iostream> ...

  2. 2015安徽省赛 H.数7

    http://xcacm.hfut.edu.cn/problem.php?id=1212 模拟大发 #include<iostream> #include<cstdio> #i ...

  3. 2015安徽省赛 J.镜像树

    http://xcacm.hfut.edu.cn/problem.php?id=1214 乱搞题 数组+结构体 递归遍历 #include<iostream> #include<cs ...

  4. 2015安徽省赛 F.多重部分和问题

    题目描述 有n种不同大小的数字,每种各个.判断是否可以从这些数字之中选出若干使它们的和恰好为K. 输入 首先是一个正整数T(1<=T<=100) 接下来是T组数据 每组数据第一行是一个正整 ...

  5. 2015安徽省赛 D.锐雯上单不给就送

    题目描述 <英雄联盟>(简称LOL)是由美国Riot Games开发,腾讯游戏运营的英雄对战网游.<英雄联盟>除了即时战略.团队作战外,还拥有特色的英雄.自动匹配的战网平台,包 ...

  6. 2015安徽省赛 C.LU的困惑

    题目描述 Master LU 非常喜欢数学,现在有个问题:在二维空间上一共有n个点,LU每连接两个点,就会确定一条直线,对应有一个斜率.现在LU把平面内所有点中任意两点连线,得到的斜率放入一个集合中( ...

  7. 2015安徽省赛 B.求和

    题目描述 对于正整数n,k,我们定义这样一个函数f,它满足如下规律 现在给出n和k,你的任务就是要计算f(n,k)的值. 输入 首先是一个整数T,表示有T组数据 接下来每组数据是n和k(1<=n ...

  8. 2015安徽省赛 A.First Blood

    题目描述 盖伦是个小学一年级的学生,在一次数学课的时候,老师给他们出了一个难题: 老师给了一个正整数 n,需要在不大于n的范围内选择三个正整数(可以是相同的),使它们三个的最小公倍数尽可能的大.盖伦很 ...

  9. NOI 2015 滞后赛解题报告

    报同步赛的时候出了些意外.于是仅仅能做一做"滞后赛"了2333 DAY1 T1离线+离散化搞,对于相等的部分直接并查集,不等部分查看是否在同一并查集中就可以,code: #incl ...

随机推荐

  1. Ztree的简单使用和后台交互的写法(二)

    针对Ztree的简单使用和后台交互的写法(一)中的树进行改进 1.增加节点的权限 由页面的当前用户,决定树的根节点 然后动态获取树的详细节点: 初始化函数为: function init(){ //初 ...

  2. OBJ Loader Source Code

    https://github.com/ChrisJansson/ObjLoader http://www.codeproject.com/Articles/798054/SimpleScene-d-s ...

  3. Object Graph Serialization

    http://coding-time.blogspot.com/2008/03/serialize-object-graph-to-xml-in-net.html http://trycatch.me ...

  4. CMake安装(linux)

    环境:CentOS6.5 1.下载网址: http://www.cmake.org/download/ (选择linux版本,编译安装) 2.安装 # tar zxvf cmake-.tar.gz # ...

  5. Exception Handling in ASP.NET Web API webapi异常处理

    原文:http://www.asp.net/web-api/overview/error-handling/exception-handling This article describes erro ...

  6. NopCommerce Url分析

    using System; using System.Web; using System.Web.Routing; using Nop.Core; using Nop.Core.Data; using ...

  7. centos 7.0 安装vim

    用的最小化 安装 看看跟VI命令有何区别 后面会记录使用经验 [root@localhost conf]# yum -y install vim 已加载插件:fastestmirror base | ...

  8. mysql 索引及其原理

    mysql 索引 KEY与INDEX的区别: KEY is something on the logical level, describes your table and database desi ...

  9. Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  10. MYSQL双主故障解决实例。

    根据报错得知,获取到的主库文件格式错误. 一.锁住主从正常的库 Mysql> flush tables with read lock; 锁表 unlock tables; 解锁 SHOW MAS ...