2019年第十届蓝桥杯c++A组java/c++组题解
#include<iostream>
#include<vector>
using namespace std;
vector <int > vec;
long long sum;
int main(){
for(int i=;i<=;i++){
int cnt=;
int a[]={,,,};
int t=i;
while(t){
a[cnt]=t%;
t/=;
cnt++;
}
for(int j=;j<cnt;j++){
if(a[j]==||a[j]==||a[j]==||a[j]==){
vec.push_back(i);
break;
}
}
}
for(vector<int>::iterator it = vec.begin(); it != vec.end(); it++){
sum+=(*it)*(*it);
}
cout<<sum;
return ;
}
思路是将1到2019的所有数字的每一位存到a数组里,然后比较它的每一位看有没有2,0,1,9;如果有就插入到队列里面。
然后将队列中每个元素的平方存到sum里再输出。
第二题
#include<iostream>
using namespace std;
int main(){
int d;
int a=,b=,c=;
for(int i=;i<=;i++){
d=(a+b+c)%;
a=b%;
b=c%;
c=d%;
}
cout<<d;
}
这个就是要注意模10000来避免超范围。
第3题
解法1
#include <iostream>
#include <string>
#include <queue> using namespace std; string ss[];
int maze[][];
int dir[][] = { { , }, { , - }, { , }, { -, } };
char letter[] = { 'D', 'L', 'R', 'U' };
int cnt = ;
bool vis[][]; struct node
{
int x;
int y;
string s;
int step;
node(int xx, int yy, string ss, int st)
{
x = xx;
y = yy;
s = ss;
step = st;
}
}; bool in(int x, int y)
{
if (x < && x >= && y < && y >= )
{
return true;
}
return false;
} void bfs(int x, int y, string s, int step)
{
queue<node> q;
q.push(node(x, y, s, step));
while (!q.empty())
{
node now = q.front();
q.pop(); vis[now.x][now.y] = true; if (now.x == && now.y == )
{
if (now.step < cnt)
{
cnt = now.step;
cout << now.step << " : " << now.s << endl; }
continue;
} for (int i = ; i < ; i++)
{
int tx = now.x + dir[i][];
int ty = now.y + dir[i][]; if (maze[tx][ty] != && !vis[tx][ty] && in(tx, ty))
{
q.push(node(tx, ty, now.s + letter[i], now.step + ));
}
}
}
} int main()
{
for (int i = ; i < ; i++)
{
cin >> ss[i];
} for (int i = ; i < ; i++)
{
for (int j = ; j < ; j++)
{
maze[i][j] = (ss[i][j] - '');
}
} int step = ;
string s = "";
bfs(, , s, step); system("pause");
return ;
}
解法2:yxc做的
#include <cstring>
#include <iostream>
#include <algorithm>
#include <set>
#include <queue> using namespace std;
const int N = ;
int n, m;
string g[N];
int dist[N][N];
int dx[] = {, , , -}, dy[] = {, -, , };
char dir[] = {'D', 'L', 'R', 'U'}; void bfs()
{
queue<pair<int,int>> q;
memset(dist, -, sizeof dist);
dist[n - ][m - ] = ;
q.push({n - , m - });
while (q.size())
{
auto t = q.front();
q.pop();
for (int i = ; i < ; i ++ )
{
int x = t.first + dx[i], y = t.second + dy[i];
if (x >= && x < n && y >= && y < m && dist[x][y] == - && g[x][y] == '')
{
dist[x][y] = dist[t.first][t.second] + ;
q.push({x, y});
}
}
}
}
int main()
{
cin >> n >> m;
for (int i = ; i < n; i ++ ) cin >> g[i];
bfs();
cout << dist[][] << endl;
int x = , y = ;
string res;
while (x != n - || y != m - )
{
for (int i = ; i < ; i ++ )
{
int nx = x + dx[i], ny = y + dy[i];
if (nx >= && nx < n && ny >= && ny < m && g[nx][ny] == '')
{
if (dist[x][y] == + dist[nx][ny])
{
x = nx, y = ny;
res += dir[i];
break;
}
}
}
}
cout << res << endl;
return ;
}
#include<iostream>
#include<queue>
using namespace std;
char ma[][];
bool visit[][];
int dx[] = {, , , -};
int dy[] = {, -, , };
char d[] = {'D', 'L', 'R', 'U'};
int main() {
int n, m;
cin >> n >> m;
for (int i = ; i <= n; i++) {
for (int j = ; j <= m; j++) {
cin >> ma[i][j];
}
}
queue<pair<int,int> > que;
queue<string> step; //记录路径
visit[][] = true;
que.push(make_pair(, ));
step.push("");
while(!que.empty()) {
pair<int, int> top = que.front();
int x = top.first;
int y = top.second;
string s = step.front();
que.pop();
step.pop();
if (x == n && y == m) {
cout << s.length() << endl;
cout << s;
break;
}
for (int i = ; i < ; i++) {
int tx = x + dx[i];
int ty = y + dy[i];
string tem = s;
if (visit[tx][ty] == true || ma[tx][ty] == '' || tx < || tx > n || ty < || ty > m) {
continue;
}
tem = tem + d[i];
visit[tx][ty] = true;
step.push(tem);
que.push(make_pair(tx,ty));
}
}
return ;
}
这题就是每周都找最大的。
第一周49 48 47 46 3个数 就是46
第二周45 44 43 42 3个数 就是42
第三周41 40 39 38 3个数 就是38
所以每周最大的都是-4;4,5,6,7周最大的中位数分别为34,30,26,22;
然后7周的就是22,26,30,34,38,42,46;
所以答案就是34
2019年第十届蓝桥杯c++A组java/c++组题解的更多相关文章
- 2019年第十届蓝桥杯【C++省赛B组】
试题 A: 组队 本题总分:5 分 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容.每位球员担任 1 号位至 5 号位时的评分如下表所示.请你计算首发阵容 ...
- 2019年第十届蓝桥杯省赛总结(JavaA组)
//update3.28:省一rank4,莫名进了国赛好神奇.. 记yzm10第一次体验A组(纯粹瞎水). 早闻山东的JavaA组神仙打架,进国赛都成了奢望(往年只有五个名额),因此抱着做分母的心态来 ...
- 2019年第十届蓝桥杯国赛总结(JavaA组)
JavaA组国二,可以报销了~ JA死亡之组可不是盖的,rank12的排名还是拿不到国一啊(只有五个.. 出成绩的一刻波澜不惊,毕竟去年有国一了不慌哈哈哈 不过对我来说这个结果还算意料之外吧,毕竟大三 ...
- 2019年第十届蓝桥杯【C++省赛B组】D、E、G、H、I题解
这场有几道题目思路,在之前比赛中遇到过 D. 数的分解 #枚举 题意 将\(2019\)分解成\(3\)个各不相同的正整数之和,并且每个正整数都不包含数字\(2\)和\(4\),一共有多少种分解方法? ...
- 2019年第十届蓝桥杯C/C++程序设计本科B组省赛 E迷宫
试题 E: 迷宫 本题总分: 分 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 的为障碍,标记为 的为可 以通行的地方. 迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它 ...
- 2019年第十届蓝桥杯省赛-迷宫(BFS/Excel大法)
这题用dfs搜不出来,需要使用bfs并记录路径,设置好方向顺序跑就ok 正解类似:POJ-3984 迷宫问题 然而毕竟是暴力杯,我们的原则是代码能省就省(懒癌晚期 于是乎网上便出现了形形色色的题解,笔 ...
- 2019年第十届蓝桥杯省赛-糖果(一维状压dp)
看到20的数据量很容易想到状压dp. 开1<<20大小的数组来记录状态,枚举n个糖包,将其放入不同状态中(类似01背包思想) 时间复杂度O(n*(2^20)). import java.u ...
- 第十届蓝桥杯2019年C/C++ 大学B组省赛试题
2019年第十届蓝桥杯大赛软件类省赛C/C++大学B组 试题 A:组队 本题总分:5分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1号位至 5号位各一名球员, 组成球队的首发阵容. 每位球 ...
- 2019第十届蓝桥杯C++B组题解(赛后重写的,不确保答案正确性,仅供参考)
先说一下这次的感受吧,我们考场比较乱,开始比赛了,还有的电脑有故障,(向这些人发出同情),第一次认真参加比赛,真正比赛的时候感觉没有那么正式,很乱,各种小问题,(例如博主就没找到题目在哪里,找到后又不 ...
随机推荐
- c语言进制转化
#include <stdio.h> // 进制转化 int main(void) { ; ; int i3 = 0x32C; printf( printf( printf("十 ...
- CSS3布局样式
CSS3多列布局columns 为了能在Web页面中方便实现类似报纸.杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module) ...
- 搭建JUnit环境
1.下载 JUnit,这里用JUnit 4.7 下载链接: http://pan.baidu.com/s/1c23n7LQ 密码: i18e 2.可以直接 build path 引入:也可以创建 Us ...
- WebService小例子———
WebService学习(刚开始) ———————————————————————————————————————————————————————————————————— WebService:跨平 ...
- spring框架入门day01
struts:web层,比较简单(ValueStack值栈,拦截器) hibernate:dao层,知识点杂 spring:service层,重要,讲多少用多少 --> [了解] spring ...
- FlexPaper实现文档在线浏览(附源码)
园子里也有关于FlexPaper的文章,但都不怎么详细. 没有较全的参数说明.就连官方网站都没有.没法,最后只得将swf文件反编译后查看了源码才将里面的参数全部弄出来. 好了,废话不多说,开始正题. ...
- python、数据分析师、算法工程师的学习计划
1.前言 最近(2018.4.1)在百忙之中开通了博客,希望能够把自己所学所想沉淀下来,这篇是我开始系统学习python,成为数据分析师和算法工程师之路的计划,望有志于为同样目标奋斗的数据猿一起交流和 ...
- 如何查找Authorization object在哪些ABAP代码里使用到
使用事务码SUIM: 双击where-Used List->Authorization Objects->In Programs: 输入要查找的Authorization Object名称 ...
- IOS 蓝牙(GameKit、Core Bluetooth)
GameKit的蓝牙开发注意 ● 只能用于iOS设备之间的连接 ● 只能用于同一个应用程序之间的连接 ● 最好别利用蓝牙发送比较大的数据 /* 关于蓝牙的数据传输 1. 一次性传送,没有中间方法,所 ...
- Spring3+Struts2+Hibernate4+Mybatis整合的一个maven例子
说明: 1.用了maven去搞这个demo,懒得去导jar包... 2.这个demo用了spring去做Ioc,事务的aop:用了struts2去做“MVC”(没有用到任何UI技术,有点对不起这个MV ...