2015安徽省赛 I.梯田
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.梯田的更多相关文章
- 2015安徽省赛 G.你来擒孟获
http://xcacm.hfut.edu.cn/problem.php?id=1211 SPFA模板题目 最短路变种,从起点终点各找一次最短路相加 #include<iostream> ...
- 2015安徽省赛 H.数7
http://xcacm.hfut.edu.cn/problem.php?id=1212 模拟大发 #include<iostream> #include<cstdio> #i ...
- 2015安徽省赛 J.镜像树
http://xcacm.hfut.edu.cn/problem.php?id=1214 乱搞题 数组+结构体 递归遍历 #include<iostream> #include<cs ...
- 2015安徽省赛 F.多重部分和问题
题目描述 有n种不同大小的数字,每种各个.判断是否可以从这些数字之中选出若干使它们的和恰好为K. 输入 首先是一个正整数T(1<=T<=100) 接下来是T组数据 每组数据第一行是一个正整 ...
- 2015安徽省赛 D.锐雯上单不给就送
题目描述 <英雄联盟>(简称LOL)是由美国Riot Games开发,腾讯游戏运营的英雄对战网游.<英雄联盟>除了即时战略.团队作战外,还拥有特色的英雄.自动匹配的战网平台,包 ...
- 2015安徽省赛 C.LU的困惑
题目描述 Master LU 非常喜欢数学,现在有个问题:在二维空间上一共有n个点,LU每连接两个点,就会确定一条直线,对应有一个斜率.现在LU把平面内所有点中任意两点连线,得到的斜率放入一个集合中( ...
- 2015安徽省赛 B.求和
题目描述 对于正整数n,k,我们定义这样一个函数f,它满足如下规律 现在给出n和k,你的任务就是要计算f(n,k)的值. 输入 首先是一个整数T,表示有T组数据 接下来每组数据是n和k(1<=n ...
- 2015安徽省赛 A.First Blood
题目描述 盖伦是个小学一年级的学生,在一次数学课的时候,老师给他们出了一个难题: 老师给了一个正整数 n,需要在不大于n的范围内选择三个正整数(可以是相同的),使它们三个的最小公倍数尽可能的大.盖伦很 ...
- NOI 2015 滞后赛解题报告
报同步赛的时候出了些意外.于是仅仅能做一做"滞后赛"了2333 DAY1 T1离线+离散化搞,对于相等的部分直接并查集,不等部分查看是否在同一并查集中就可以,code: #incl ...
随机推荐
- Runner站立会议01
开会时间:9.10-9.30 地点:二教 今天做了什么:学了文本输入,button按钮,界面转换(意图) 遇到什么困难:界面转换时,出现问题,没有正常跳转 明天打所作什么:解决今天遇到的问题,学了第二 ...
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【四】——实现模型工厂,依赖注入以及格式配置
系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在上一篇中,我们已经初步开始使用Web Api了,但同时出现了一些很多不足之处,本章我们就着 ...
- Python标准库:内置函数hasattr(object, name)
Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...
- hdu 5878 I Count Two Three (2016 ACM/ICPC Asia Regional Qingdao Online 1001)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5878 题目大意: 给出一个数n ,求一个数X, X>=n. X 满足一个条件 X= 2^a*3^ ...
- 后台程序员的HTTP缓存
1.后端程序员只需要关注请求头: if-None-Match //上一次response头中的ETag的值. 响应头: Etag //是URL的Entity Tag,用于标示URL对象是否改变,区分不 ...
- MacPorts安装32位动态库
http://superuser.com/questions/63198/install-32-bits-ports-on-snow-leopard
- js 滚动加载iframe框中内容
var isIE6 = !!window.ActiveXObject&&!window.XMLHttpRequest; //滚动加载 var scrollLoad =function( ...
- Occlusion Culling
遮挡剔除 http://www.bjbkws.com/online/1092/ unity遮挡剔除(应用) http://www.unitymanual.com/thread-37302-1-1.ht ...
- python mysql
mysql Linux 安装mysql: apt-get install mysql-server 安装python-mysql模块:apt-get install python-mysqldb Wi ...
- linuxMint install shuruma
http://my.oschina.net/u/1446273/blog/306053 http://blog.sina.com.cn/s/blog_5d406a1b0101jlgn.html htt ...