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 ...
随机推荐
- c++ operator
这篇博文是以前很久写的,贴在我的早期一个blog中,今天google一下,发现还真有不少人转载,可惜并不注明出处.那时觉得operator比较好玩.C++有时它的确是个耐玩的东东.operator它有 ...
- angularjs笔记(三)
AngularJS API 7.其他一些常用指令,布尔类型的指令也可以用表达式 (1).数组索引$index <!DOCTYPE html> <html> <head&g ...
- haproxy安装
最近一直在整理之前用过的东西,现在到haproxy了,安装如下: tar xf haproxy-1.4.27.tar.gz cd haproxy-1.4.27 make TARGET=linux26 ...
- 数据库备份与恢复(Mysql)
Mysql备份种类可以分为两种:完全备份和增量备份 完全备份:对某一个时间点上的所有数据或应用进行的一个完全复制. 增量备份:指在一次全备份上或上一次增量备份后,以后每次的备份只需备份与前次相比增加或 ...
- MinGW: TOO MANY SECTIONS issue
http://sourceforge.net/p/mingw-w64/mailman/mingw-w64-public/thread/509A38C6.6070807@doxos.eu/ MingGW ...
- 常用的MIME类型
.doc application/msword .docx application/vnd.openxmlformats-officedocument.wordprocessingml.d ...
- [CentOS]安装命令行终端Terminator工具
摘要 Terminator是一款跨平台的终端工具,使用的是 GPL 许可证,提供了很多高级的功能.它没有 Guake 和 Yakuake 那样光鲜,但绝对是一款重型武器.它提供的功能包括界面分块,将自 ...
- 【9-7】XML学习笔记01
Tips XML标签大小写敏感: XML文件一般使用国际化通用的编码“utf-8”,所以平时看到的XML文件的头部都会有这样的代码: <?xml version="1.0" ...
- 黄永成-thinkphp讲解-个人博客讲解25集
整个网站的根目录用blog你要跟别人说起,自己好识别的文件夹名字. 下面的项目名称 就不再重复的写了, 直接用App就好了. 网站访问: ...../index.php(入口文件)/Admin(模块名 ...
- 安装opensuse的笔记-重庆linux开源组织
mate: 伙伴 matey: 融洽的, 易于亲近的. get matey with sb. poison: a. 有毒的, n.毒药/毒酒v. 下毒, 破坏, 污染 slander [ 撕烂的~~] ...