当前位置: 首页 > news >正文

蓝桥刷题总结1

 数组三角形

题目描述

上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。

路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。

输入描述

输入的第一行包含一个整数 (1≤N≤100)N (1≤N≤100),表示三角形的行数。

下面的 N 行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。

输出描述

输出一个整数,表示答案。

输入输出样例

示例

输入

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

输出

27

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

题解:

        1.这个题目最开始想的就是dfs算法,但是超时了,后来就想到了多态规划的题目。

         2.但是这里有一个要注意的点就是向左下走的次数与向右下走的次数相差不能超过 1,通过纸上模拟,可以得出是偶数行的时候,有两个值可能是最大值,是奇数行的时候,有一个值是最大值。不管是偶数行还是奇数行,最大值都是在行中间的位置

#include<iostream>
#include<math.h>
using namespace std;
int n,m[109][109],t[109][109];
int main() {cin>>n;for(int i=1; i<=n; i++) {for(int j=1; j<=i; j++) {cin>>m[i][j];}}t[1][1]=m[1][1];for(int i=2;i<=n;i++){for(int j=1;j<=i;j++){t[i][j]=max(t[i-1][j],t[i-1][j-1])+m[i][j];}}if(n%2==0){//偶数行cout<<max(t[n][(n+1)/2],t[n][(n+2)/2]);}else{//奇数行cout<<t[n][(n+1)/2];    }return 0;
}

 排序

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。

在冒泡排序中,每次只能交换相邻的两个元素。

小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符, 则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。

例如,对于字符串 lan 排序,只需要 1 次交换。对于字符串 qiao 排序,总共需要 4 次交换。

小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要 100100 次交 换,可是他忘了吧这个字符串记下来,现在找不到了。

请帮助小蓝找一个只包含小写英文字母且没有字母重复出现的字符串,对 该串的字符排序,正好需要 100100 次交换。如果可能找到多个,请告诉小蓝最短的那个。如果最短的仍然有多个,请告诉小蓝字典序最小的那个。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

 题解:

        1.冒泡排序的n个数最多的排序次数是n*(n-1)/2次,通过计算n最小值为15,15*14=105;

        2.105-100=5,只需把第6个字母往后移到第1位即可,即jonmlkihgfedcba。

#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
int main() {cout<<"jonmlkihgfedcba";return 0;
}

跑步锻炼

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小蓝每天都锻炼身体。

正常情况下,小蓝每天跑 11 千米。如果某天是周一或者月初(11 日),为了激励自己,小蓝要跑 22 千米。如果同时是周一或月初,小蓝也是跑 22 千米。

小蓝跑步已经坚持了很长时间,从 20002000 年 11 月 11 日周六(含)到 20202020 年 1010 月 11 日周四(含)。请问这段时间小蓝总共跑步多少千米?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

代码

#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
int mouth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main() {int day=5,sign=0,sum=0;for(int i=2000;i<=2020;i++){//闰年的处理 if((i%4==0&&i%100!=0)||(i%400==0)){mouth[2]=29;}else{mouth[2]=28;}int t = i!=2020? 12: 10;for(int j=1;j<=t;j++){for(int k=1;k<=mouth[j];k++){if(i==2020&&j==10&&k==2){sign=1;break;}day++;sum+=1;if(k==1){//判断是不是月初sum+=1;}if(day==8){//判断是不是星期一day=1;if(k!=1){sum+=1;}}}if(sign==1)break;} if(sign==1)break;} cout<<sum;return 0;
}

http://www.lryc.cn/news/39748.html

相关文章:

  • 淘宝商品详情数据接口 关键字搜索接口 请求代码分享
  • 【数据结构】链表OJ(二)
  • Linux系统搭建FTP服务器
  • MySQL数据同步到 Redis 缓存的几种方法
  • 2023年网络安全比赛--CMS网站渗透中职组(超详细)
  • 【蓝桥杯集训·每日一题】AcWing 4309. 消灭老鼠
  • FPGA实现CSI-2 解码MIPI视频 2line 720P分辨率 OV5647采集 提供工程源码和技术支持
  • JS面试题收集(持续更新好中...)
  • 2023携程面试题
  • CANoe中使用CAPL函数接口调用Vflash文件
  • 三天吃透计算机网络面试八股文
  • shp数据添加wkt字段并导出成csv,leaflet绘制使用
  • Java——二叉树的最近公共祖先及二叉搜索树介绍
  • Stable Diffusion加chilloutmixni真人图片生成模型,AI绘图杀疯了
  • Matplotlib 绘图实用大全
  • MyBatis源码用了哪些设计模式?
  • 【16.整数转罗马数字】
  • 前端小技巧
  • Servlet2.0
  • 【c++】继承
  • minio安装配置和使用(二)客户端安装
  • 【如何使用Arduino设置GRBL和控制CNC机床】
  • 项目测试——博客系统
  • 【C习题】经典数组与指针面试题(万字)
  • 【ArcGIS Pro二次开发】(13):ProWindow的用法
  • HTML/CSS/JS 基本语法
  • 对于从事芯片行业的人来说,有哪些知识是需要储备的?
  • 测试场景设计
  • 《重构》增强代码可读性
  • 数据分析自学路线