ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:182.45KB ,
资源ID:8040102      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8040102.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(蓝桥杯省赛赛前集训题共题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

蓝桥杯省赛赛前集训题共题.docx

1、蓝桥杯省赛赛前集训题共题 SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#蓝桥杯省赛赛前集训题共题第1题:星系炸弹(2015年省赛C/C+B组第2题)在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。每个炸弹都可以设定多少天之后爆炸。比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19请严格按照格式书写。不能出现其它文字或符号。

2、结果:2017-08-05解决方法:用Excel拖这个题会了的同学们把上课讲过的,课件上的,其他几道Excel拖动题都做一遍。第2题:(2015年校内选拔赛C/C+B组第3题)如果x的x次幂结果为10(参见【图】),你能计算出x的近似值吗显然,这个值是介于2和3之间的一个数字。请把x的值计算到小数后6位(四舍五入),并填写这个小数值。注意:只填写一个小数,不要写任何多余的符号或说明。#include #include #include using namespace std;int main() double x; for(x=2;x=3;x+=1e-7) if (abs(pow(x,x)-1

3、0)1e-6) coutfixedsetprecision(6)x; return 0;答案:其他类似题:ALGO-23一元三次方程求解第3题(全排列)注意:全排列必考!全排列必考!全排列必考!重要的事要说三遍!李白打酒(2014年省赛本科B组第3题)话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。? 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理

4、的次序。像这样的答案一共有多少呢请你计算出所有可能方案的个数(包含题目给出的)。答案:14解法1:next_permutation的解法#include#includeusing namespace std;int main() int p15=1,1,1,1,1,2,2,2,2,2,2,2,2,2,2;/十六进制转十进制 .当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 .我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)输入为3个整数w m n,空格

5、分开,都在1到10000范围内w为排号宽度,m,n为待计算的楼号。要求输出一个整数,表示m n 两楼间最短移动距离。例如:用户输入:6 8 2则,程序应该输出:4再例如:用户输入:4 7 20则,程序应该输出:5有同学居然说,前面7题做了一个小时。第8题做了2个小时没做出来。掌握了求余运算课件里的单变量矩阵坐标转双变量的方法,就很容易了#include #include using namespace std;int main() int w,m,n; int i,j;所填字母只允许是A,B,C,D,E,F 中的某一个。2. 每行的6个小格中,所填写的字母不能重复。3. 每列的6个小格中,所填

6、写的字母不能重复。4. 每个分组(参见图中不同颜色表示)包含的6个小格中,所填写的字母不能重复。为了表示上的方便,我们用下面的6阶方阵来表示图对应的分组情况(组号为05):000011022013221113243333244455445555 用下面的数据表示其已有字母的填写情况:02C03B05A20D35E53F 很明显,第一列表示行号,第二列表示列号,第三列表示填写的字母。行号、列号都从0开始计算。 一种可行的填写方案(此题刚好答案唯一)为:E F C B D AA C E D F BD A B E C FF B D C A EB D F A E CC E A F B D你的任务是:编

7、写程序,对一般的拉丁方块问题求解,如果多解,要求找到所有解。【输入、输出格式要求】 用户首先输入6行数据,表示拉丁方块的分组情况。 接着用户输入一个整数n (n36), 表示接下来的数据行数 接着输入n行数据,每行表示一个预先填写的字母。 程序则输出所有可能的解(各个解间的顺序不重要)。 每个解占用7行。 即,先输出一个整数,表示该解的序号(从1开始),接着输出一个6x6的字母方阵,表示该解。 解的字母之间用空格分开。 如果找不到任何满足条件的解,则输出“无解”例如:用户输入:000011022013221113243333244455445555602C03B05A20D35E53F 则程序

8、输出:1E F C B D AA C E D F BD A B E C FF B D C A EB D F A E CC E A F B D再如,用户输入:001111002113022243022443544433555553704B05A13D14C24E50C51A 则程序输出:1D C E F B AE F A D C BA B F C E DB E D A F CF D C B A EC A B E D F2D C E F B AE F A D C BA D F B E CB E C A F DF B D C A EC A B E D F3D C F E B AA E B D C F

9、F D A C E BB F E A D CE B C F A DC A D B F E4D C F E B AB E A D C FA D C F E BF B E A D CE F B C A DC A D B F E5D C F E B AE F A D C BA B C F E DB E D A F CF D B C A EC A E B D F6D C F E B AE F A D C BA B D F E CB E C A F DF D B C A EC A E B D F7D C F E B AE F A D C BA D B F E CB E C A F DF B D C A

10、EC A E B D F8D C F E B AF E A D C BA D B C E FB F E A D CE B C F A DC A D B F E9D C F E B AF E A D C BA F C B E DB D E A F CE B D C A FC A B F D E#include using namespace std;char a66;/存放分组情况char c66;/存放数独int cnt;bool ok(int row,int col) int i,j; for(i=0;i6;i+)/检查行 if(crowi=crowcol&i!=col) return fa

11、lse; for(i=0;i6;i+)/检查列 if(cicol=crowcol&i!=row) return false; for(i=0;i6;i+)/检查同一区域 for(j=0;j6;j+) if(aij=arowcol&cij=crowcol&!(i=row&j=col) return false; return true;void sudoku(int idx) int i,j; char k; if(idx=36) cout+cntendl; for(i = 0; i 6; i+) for(j = 0; j 6; j+) coutcij; if(j!=5) cout ; cout

12、endl; return; int row = idx / 6; int col = idx % 6; if(crowcol=0) for(k=A;k=F;k+) crowcol=k;/填字母 if(ok(row,col) sudoku(idx+1);/如果不冲突,则继续递归填下一个 crowcol=0; else/遇到预先填好的字母 sudoku(idx+1);int main() int i,j,n; string s; for(i=0;iai; cinn; while(n-) cins; int x=s0-0; int y=s1-0; cxy=s2; sudoku(0); if(cnt=

13、0) cout无解endl; return 0;第14题(bfs算法)ADV-147 算法提高 学霸的迷宫问题描述学霸抢走了大家的作业,班长为了帮同学们找回 作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫。因为班长还有妹子要陪,磨 刀不误砍柴功,他为了节约时间,从线人那里搞到了迷宫的地图,准备提前计算最短的路线。可是他现在正向妹子解释这件事情,于是就委托你帮他找一条最短的路 线。输入格式第一行两个整数n, m,为迷宫的长宽。接下来n行,每行m个数,数之间没有间隔,为0或1中的一个。0表示这个格子可以通过,1表示不可以。假设

14、你现在已经在迷宫坐标(1,1)的地方,即 左上角,迷宫的出口在(n,m)。每次移动时只能向上下左右4个方向移动到另外一个可以通过的格子里,每次移动算一步。数据保证(1,1),(n,m)可 以通过。输出格式第一行一个数为需要的最少步数K。第二行K个字符,每个字符U,D,L,R,分别表示上下左右。如果有多条长度相同的最短路径,选择在此表示方法下字典序最小的一个。样例输入Input Sample 1:3 3001100110Input Sample 2:3 3000000000样例输出Output Sample 1:4RDRDOutput Sample 2:4DDRR数据规模和约定有20%的数据满足

15、:1=n,m=10有50%的数据满足:1=n,m=50有100%的数据满足:1=n,m=500。#include#includeusing namespace std;#define M 500 #define N 500 /上下左右UDLR,按字典序排是DLRU,即下左右上,所以d数组调整了一下 const int d2 = 1,0, 0,-1, 0,1, -1,0,;bool mazeMN;/位置点的状态,0表示通道,1表示墙bool visitedMN;/标志着该点是否被访问到了int m,n;/迷宫的实际行数和列数struct Point /结构体,表示位置点 int x,y;/位置点

16、的横纵坐标 ;Point preMN;/记录了到达本点前一步的那个点的坐标int step; string s=;void print_path(Point p)/递归打印路径 if=0&=0) return; Point q = pre; print_path(q); step+; if s+=D; else if s+=R; else s+=L;void bfs()/广度优先算法bfs queue Q;/定义队列Q Point p=0,0; visited00=true;/入口点被访问 (p);/入口点入队 while(!()/当队列不为空时 Point head=();/读队首元素 ();/队首元素出队 int x = ; int y = ; if(x=m-1 & y=n-1) /到达终点 print_path(head);/打印 return;/到达终点,停止bfs() for(int i=0; i=0 & r=0 & cmn; for(int i=0;im;i+) for(int j=0;jc; mazeij=c-0; bfs(); coutstependl; coutsendl; return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1