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

2.1总结

还是一样水更一天,就随便做了几个题,有一个周期有点长,后面更一篇长的

随手刷的一道水题,就不往今天的行程单添了

问题:最大公约数

题解:题目太水了,就是求三个数,其中两组的最大公约数,在对这两个公约数求最大公约数,得解

#include <bits/stdc++.h>
using namespace std;int gcd(int a,int b)
{if(a%b==0)return b;elsereturn gcd(b,a%b);
}
int main()
{int x,y,z;scanf("%d%d%d",&x,&y,&z);int p=gcd(x,y);int q=gcd(x,z);int t=gcd(p,q);printf("%d",t);return 0;
}

 

问题一:二叉树的深度

 

题解,就是一个很简单的求深度的问题,没有太多复杂的,左孩子不为空就去深搜左孩子,右孩子不为空,就去搜索右孩子,在每次调用的时候都要进行比较,需要更新最大深度,最后输出就可以,很简单,直接看AC代码

#include<bits/stdc++.h>
using namespace std;
int f[1000005][3];//用f[i][0]去存储左孩子,f[i][1]去存储右孩子
int n,max1;
void dfs(int x,int d)//x代表第几个结点,d代表深度
{max1=max(max1,d);//更新最大值if(f[x][0]!=0)//先去搜索左子树{dfs(f[x][0],d+1);}if(f[x][1]!=0)//搜索右子树{dfs(f[x][1],d+1);}
}
int main()
{scanf("%d",&n);//输入有几个值for(int i=1;i<=n;i++){scanf("%d%d",&f[i][0],&f[i][1]);//输入每个结点的左结点和右结点}dfs(1,1);printf("%d",max1);//输出最大值return 0;
}

 问题二:淘汰赛

 

题解:这题其实其实可以相成思维性题目,既然要求亚军,且又是左右两个相邻的国家比,因此就可以将整个数组分成两部分,找出左半部分的最大值的下标,和右半部分的最大值的下标,比较两个下标指向的数,小的那个数的下标就是亚军的编号,直接看AC代码

#include <bits/stdc++.h>
using namespace std;
int n;
int s[200];
int main()
{scanf("%d",&n);int sum=1;for(int i=0;i<n;i++){sum*=2;}for(int i=1;i<=sum;i++){scanf("%d",&s[i]);}int z1=0,z2=sum/2+1;for(int i=1;i<=sum/2;i++){if(s[i]>s[z1])z1=i;}for(int i=sum/2+1;i<=sum;i++){if(s[i]>s[z2])z2=i;}if(s[z1]>s[z2])printf("%d",z2);elseprintf("%d",z1);return 0;
}

 问题三:电子表格

 

题解:类似于2进制,8进制,14进制的题目,这题没有任何算法,但是数据的恶心程度已经超过了你的想象。

A代表1,Z代表26,以此类推,所以你以为这就是简单的26进制题吗?NO,因为没有任何一个字母会去表示0,所以是一个隐藏的27进制的题目 (ps:确实有够抽象的,栽了一回)

#include<bits/stdc++.h>
using namespace std;char a[1000009];
char s[1000009];
int n,r,c,i,len;
int flag;
int main()
{scanf("%d",&n);while (n--){scanf("%s",a);len=strlen(a);r=0;c=0;if (a[0]=='R'&&isdigit(a[1])&&(strchr(a,'C')-a)>0)//这俩函数你应该懂isdigit,判断是否是十进制数字,strchr检查数组里面是否有Cflag=0;//用于处理R23C55——转成另外一种elseflag=1;if (flag){i=0;r=0;c=0;for (i=0; i<len; i++){if (isalpha(a[i]))c = 26*c+(a[i]-'A'+1);else if (isdigit(a[i])){if (r==0){printf("R");r=1;}printf("%c",a[i]);}}printf("C%d\n",c);}else{for (i=1; i<len; i++){if (i<strchr(a,'C')-a)r = 10*r+(a[i]-'0');else if (i>strchr(a,'C')-a)c = 10*c+(a[i]-'0');}i=0;while (c>0){s[i]=(c-1)%26+'A';if (c%26)c/=26;elsec=c/26-1;i++;}for (i=i-1;i>=0;i--)printf("%c",s[i]);printf("%d\n",r);}}return 0;
}

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

相关文章:

  • 探索Pyecharts:绘制多彩日历图的艺术与技巧
  • 响应标头Allow-Headers和Expose-Headers的区别和用法
  • <网络安全>《13 上网行为管理》
  • 安全通道堵塞识别摄像机
  • 2022 年全国职业院校技能大赛高职组云计算赛项试卷
  • Android开发中,Vue 3处理回退按键事件
  • three.js CSS3DRenderer、CSS3DSprite渲染HTML标签
  • 【BBF系列协议】TR369管理平台软件设计
  • 微信小程序 仿微信聊天界面
  • 中国社会科学院大学-新加坡社科大学 招生简章
  • js中继承的详解(一文读懂)
  • Android studio使用svg矢量图
  • 《Access Path Selectionin a Relational Database Management System》论文笔记
  • 【AI_Design】Midjourney学习笔记
  • 面试宝典之深谈JVM
  • idea配置tomcat
  • 【MyBatis】操作数据库——入门
  • 免费分享一套SpringBoot+Vue药店(药房)管理系统,帅呆了~~
  • 视频怎么加水印?分享两个简单的加水印的方法
  • Apache Commons Collection3.2.1反序列化分析(CC1)
  • MySQL入门篇(10)-聚合函数的应用
  • Vue3基本概念
  • 每日OJ题_算法_模拟①_力扣1576. 替换所有的问号
  • 杂题——试题 算法训练 区间最大和
  • (安卓)跳转应用市场APP详情页的方式
  • 亚信安全助力宁夏首个人工智能数据中心建成 铺设绿色算力安全底座
  • ASP.NET Core WebAPI_解决跨域问题(前端后端)
  • 保姆级的指针详解(超详细)
  • R-YOLO
  • Qt无边框窗口拖拽和阴影