2018第九届蓝桥杯B组决赛(国赛)第.二,九题(DFS)题解:激光样式,全球变暖

 插一句 :第一题  :直接拿笔算就可以的,没啥技术含量

标题:换零钞


x星球的钞票的面额只有:100元,5元,2元,1元,共4种。
小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱。
小明有点强迫症,他坚持要求200元换出的零钞中2元的张数刚好是1元的张数的10倍,
剩下的当然都是5元面额的。


银行的工作人员有点为难,你能帮助算出:在满足小明要求的前提下,最少要换给他多少张钞票吗?
(5元,2元,1元面额的必须都有,不能是0)

注意,需要提交的是一个整数,不要填写任何多余的内容。

第二题 :观察发现这其实就是一个fib数列(看其他代码 好高大上,还要用DFS 我来个简单的)

第二题

标题:激光样式


x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。
安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!
国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?


显然,如果只有3台机器,一共可以成5种样式,即:
全都关上(sorry, 此时无声胜有声,这也算一种)
开一台,共3种
开两台,只1种


30台就不好算了,国王只好请你帮忙了。


要求提交一个整数,表示30台激光器能形成的样式种数。

注意,只提交一个整数,不要填写任何多余的内容。

#include<bits/stdc++.h>
int main()
{
	long long c,a,b;
	a=2;
	b=3;
	for(int i=3;i<31;++i){
		c=a+b;
		a=b;
		b=c;
	}
	printf("%lld\n",c);
 } 

 第九题 我用的是DFS

 

标题:全球变暖
你有一张某海域NxN像素的照片,"."表示海洋、"#"表示陆地,如下所示:
.......
.##....
.##....
....##.
..####.
...###.
.......
其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。 
由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。 
例如上图中的海域未来会变成如下样子:
.......
.......
.......
.......
....#..
.......
.......
请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。 
【输入格式】
第一行包含一个整数N。  (1 <= N <= 1000)  
以下N行N列代表一张海域照片。 
照片保证第1行、第1列、第N行、第N列的像素都是海洋。 
【输出格式】
一个整数表示答案。
【输入样例】

.......
.##....
.##....
....##.
..####.
...###.
....... 
【输出样例】

资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗  < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
注意:
main函数需要返回0;
只使用ANSI C/ANSI C++ 标准;
不要调用依赖于编译环境或操作系统的特殊函数。
所有依赖的函数必须明确地在源文件中 #include <xxx>
不能通过工程设置而省略常用头文件。
提交程序时,注意选择所期望的语言类型和编译器类型。

#include<bits/stdc++.h>
#define MAX 1010
char mp[MAX][MAX];
int vis[MAX][MAX];
int n,cou;
int dir[4][2]={1,0,0,1,-1,0,0,-1};//右 下  左 上 

bool in(int x,int y)
{
	if(x>=n || x<0 || y>=n || y<0 )
	return false;
	return true;
}

void dfs(int x,int y)
{
	vis[x][y]=1;
	for(int i=0;i<4;++i)
	{
		int nx = x+ dir[i][0];
		int ny = y+dir[i][1];
		if(in(nx,ny) && !vis[nx][ny])//我的程序不好的就是 无法直接筛选掉mp[x][y]='.'的点 不然会进不去这个if语句里面,ans一直为0
		{
			vis[nx][ny]=1;
			
			if(mp[nx][ny]=='#'&&mp[nx+1][ny]=='#' && mp[nx-1][ny]=='#'&&mp[nx][ny-1]=='#'&&mp[nx][ny+1]=='#')
			cou++;
			dfs(nx,ny);
		}
	} 
	
 } 

int main()
{
	scanf("%d",&n);
	for(int i=0;i<n;++i)
	    scanf("%s",mp[i]);

	memset(vis,0,sizeof(vis));	
	cou=0;
	dfs(0,0);//z注意这两条语句顺序不能错
	
	printf("%d",cou);	
		
	return 0;
 } 

我觉得 其实就做题来说 直接for循环遍历一遍mp,把 符合条件if(mp[nx][ny]=='#'&&mp[nx+1][ny]=='#' && mp[nx-1][ny]=='#'&&mp[nx][ny-1]=='#'&&mp[nx][ny+1]=='#') ans++ (O(n^2))就可以了 能拿到一部分得分  (至于能不能拿满分 就不知道了)

2018年决赛 C/C++大学B组
考生须知:
考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。
考试时间为4小时。时间截止后,提交答案无效。
在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。
选手可浏览自己已经提交的答案。被浏览的答案允许拷贝。
对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。
选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它方式提交的答案无效。
试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。
结果填空题:
要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。
答案直接通过网页提交即可。不要书写多余的内容。
代码填空题:
要求选手在弄清给定代码工作原理的基础上,填写缺失的代码,使得程序逻辑正确。
所填写的代码不超过一条语句(即中间不能出现分号)。
把答案(仅填空处的答案,不包括题面已存在的代码或符号)直接通过网页提交。
不要书写多余的内容(比如注释)。
使用ANSI C/ANSI C++ 标准,不要依赖操作系统或编译器提供的特殊函数。
程序设计题目:
要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。
要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库,但不能使用MFC或ATL等非ANSI C++标准的类库。例如,不能使用CString类型(属于MFC类库)。
注意: main函数必须返回0
注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。
所有源码必须在同一文件中。调试通过后,拷贝提交。
提交时,注意选择所期望的编译器类型。

结果填空 (满分11分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。相关的参考文件在同一目录中。
不限解决问题的方式或工具,只要求结果。
只能通过浏览器提交答案。

结果填空 (满分35分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。相关的参考文件在同一目录中。
要求参见前一题。

代码填空 (满分27分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。相关的参考文件在同一目录中。
填写的代码必须符合ANSI C/C++ 标准。
代码不能只对题面特殊数据有效,应当具有通用性。
不要填写多余内容(如:题面上已存在的代码或符号)。
只能通过浏览器提交答案。

程序设计(满分45分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。相关的参考文件在同一目录中。
在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。
仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如:“请您输入xx数据:”。
建议仔细阅读示例,不要想当然!
处理完一个用例的数据后,立即退出(return 0),不要循环等待下一个用例的输入。
程序必须使用标准输入、标准输出,以便于机器评卷时重定向。
要求选手给出的解答完全符合ANSI C/C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库,但不能使用MFC或ATL等非ANSI C++标准的类库。例如,不能使用CString类型(属于MFC类库)。
注意: main函数结尾需要return 0
注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
提交时,注意选择所期望的编译器类型。

程序设计(满分77分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。相关的参考文件在同一目录中。
要求参见前一题。

 程序设计(满分105分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。相关的参考文件在同一目录中。
要求参见前一题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值