2024级新生数组字符串专题题解
一、题解:
1.A-[NOIP2005]校门外的树_24级新生数组字符串训练题· (nowcoder.com)
这题常见的解法有两种:
第一种是这道题我们可以直接按照题目意思枚举
#include<bits/stdc++.h>
#define int long long
using namespace std;int road[10010];signed main()
{int l,m;cin>>l>>m;for(int i=1;i<=m;i++){int l,r;cin>>l>>r;for(int i=l;i<=r;i++)road[i]=1;}int ans=0;for(int i=0;i<=l;i++)if(!road[i])ans++;cout<<ans;return 0;
}
第二种用了差分算法,这个算法与前缀和算法互逆关于算法的知识可以看一下这个视频:
STUACM-算法入门-前缀和与差分(含二维)_哔哩哔哩_bilibili
代码如下:
#include<algorithm>
#include<iostream>
#include<cstring>
#include<vector>
#include<map>
using namespace std;
typedef long long ll;const int N=200010;
int a[N],b[N];void insert(int x,int y)
{b[x]--;b[y+1]++;
}void solve()
{int n,k;cin>>n>>k;while(k--){int x,y;cin>>x>>y;insert(x,y);}int ans=0;for(int i=1;i<=n;i++)b[i]+=b[i-1];for(int i=0;i<=n;i++)if(b[i]<0)ans++;cout<<n+1-ans<<endl;
}int main()
{int _;_=1;while(_--){solve();}return 0;
}
2、B-比较月亮大小_24级新生数组字符串训练题· (nowcoder.com)
如果只有一天的话只能判断0和15这两个特殊元素,其他的都不能判断,如果有两天以上的话只用看最后两天可以了(这种情况只有14,15需要特判)。代码如下:
#include<iostream>
using namespace std;int temp[1000];int main()
{int n;cin>>n;for(int i=1;i<=n;i++)cin>>temp[i];if(n<=1){if(temp[n]==15)cout<<"DOWN"<<endl;else if(temp[n]==0)cout<<"UP"<<endl;else cout<<-1<<endl;}else if(temp[n]==15&&temp[n-1]==14)cout<<"DOWN"<<endl;else if(temp[n]>temp[n-1])cout<<"UP"<<endl;else if(temp[n]<temp[n-1])cout<<"DOWN"<<endl;return 0;
}
3、C-数列下标_24级新生数组字符串训练题· (nowcoder.com)
方法一:按照题目意思模拟,用数组存储答案;
#include<bits/stdc++.h>
#define int long long
using namespace std;int a[10010],b[10010];signed main()
{int n;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=n;i++){int temp=0;//判断是否有满足条件的数for(int j=i;j<=n;j++){if(a[j]>a[i]){b[i]=j;break;}}}for(int i=1;i<=n;i++)cout<<b[i]<<" ";return 0;
}
方法二:可以用单调栈的方法写,有兴趣的同学可以自己去了解。
4、D-求逆序数_24级新生数组字符串训练题· (nowcoder.com)
本题根据数据范围判断可以有两种解法,第一种是根据题目暴力枚举O(n^2);
二是利用归并排序的特性求得O(nlogn);
第二种做法采用了分治的思想,非常经典,首先看归并排序的流程:
1.划分区间 [l,mid] ,[ mid+1,r];
2.递归排序(不断减小问题的规模)
3.归并,将左右两个区间合二为一;
一个逆序对是指一对数,其中前面的元素严格大于后面的数;那么根据归并排序的过程我们可以将逆序对分成三类:
1.两个数都在左边
2.两个数都在右边
3.两个数分别在左右两边
其实质就是计算第三种逆序对,因为左右两边的逆序对随着递归最终都会分解成第三种情况。

方法二为基本归并排序算法
方法一代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;int a[10010];signed main()
{int n,ans=0;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){if(a[i]>a[j])ans++;}}cout<<ans;return 0;
}
方法二代码:
#include<iostream>
using namespace std;
int ans=0;int temp[2010],a[2022];void merge_sort(int q[],int l,int r)
{if(l>=r)return ;int mid=(l+r)>>1;merge_sort(q,l,mid);merge_sort(q,mid+1,r);int i=l,j=mid+1,k=0;while(i<=mid&&j<=r){if(q[i]>=q[j])ans+=mid-i+1,temp[k++]=q[j++];else temp[k++]=q[i++];}while(i<=mid)temp[k++]=q[i++];while(j<=r)temp[k++]=q[j++];for(int i=0,j=l;j<=r;j++,i++)q[j]=temp[i];
}int main()
{int n;cin>>n;for(int i=0;i<n;i++)cin>>a[i];merge_sort(a,0,n-1);cout<<ans<<endl;return 0;
}
5、E-[NOIP2015]扫雷游戏_24级新生数组字符串训练题· (nowcoder.com)
注意要判断八个方向
#include<algorithm>
#include<iostream>
#include<cstring>
#include<vector>
#include<map>
using namespace std;
typedef long long ll;const int N=110;
char f[N][N];int dx[]={-1,0,1,0,1,1,-1,-1},dy[]={0,1,0,-1,1,-1,1,-1};void check(int x,int y)
{int cnt=0;for(int i=0;i<8;i++){int xx=x+dx[i],yy=dy[i]+y;if(f[xx][yy]=='*')cnt++;}f[x][y]='0'+cnt;
}void solve()
{int a,b;cin>>a>>b;for(int i=1;i<=a;i++)for(int j=1;j<=b;j++)cin>>f[i][j];for(int i=1;i<=a;i++){ for(int j=1;j<=b;j++){if(f[i][j]!='*')check(i,j);printf("%c",f[i][j]);}cout<<endl;}
}int main()
{int _;_=1;while(_--){solve();}return 0;
}
6、A-[NOIP2008]笨小猴_24级新生数组字符串训练题 (nowcoder.com)
用数组记录所有出现过的字母的次数,排序得到答案,再判断质数(0不是质数)注意看清题目,只有是的时候输出答案,否则一律输出0;
#include<bits/stdc++.h>
#define int long long
using namespace std;int num[29];bool isprime(int x)
{if(!x||x==1)return false;for(int i=2;i<=x/i;i++){if(x%i==0)return false;}return true;
}signed main()
{string s;cin>>s;int maxn=0,minn=1e12;for(int i=0;i<s.size();i++){if(s[i]>='A'&&s[i]<='Z')s[i]+='a'-'A';num[s[i]-'a']++;}for(int i=0;i<=25;i++){maxn=max(maxn,num[i]);if(num[i])minn=min(minn,num[i]);}int ans=maxn-minn;if(!isprime(ans)) cout<<"No Answer"<<endl<<0;else cout<<"Lucky Word"<<endl<<ans;return 0;
}
7、B-数独合理吗?_24级新生数组字符串训练题 (nowcoder.com)
简单模拟,用一个数组记录数字出现的次数即可,记得每次检查前要初始化这个数组,代码如下:
#include<algorithm>
#include<iostream>
#include<cstring>
#include<vector>
#include<map>
using namespace std;
typedef long long ll;const int N=10;
int shu[N][N],ha[10];
bool flag1=1,flag2=1,flag3=1;void init()
{for(int i=1;i<=10;i++)ha[i]=0;
}bool check3(int x,int y)
{for(int i=x;i<=x+2;i++)for(int j=y;j<=y+2;j++){ha[shu[i][j]]++;if(ha[shu[i][j]]>1)return false;}return true;
}void check1()
{for(int i=1;i<=9;i++){init();for(int j=1;j<=9;j++){ha[shu[i][j]]++;if(ha[shu[i][j]]>1)flag1=false;}} for(int i=1;i<=9;i++){init();for(int j=1;j<=9;j++){ha[shu[j][i]]++;if(ha[shu[j][i]]>1)flag2=false;}}
}void check2()
{for(int i=1;i<=9;i+=3)for(int j=1;j<=9;j+=3){init();if(!check3(i,j))flag3=false;}
}void solve()
{for(int i=1;i<=9;i++)for(int j=1;j<=9;j++)cin>>shu[i][j];/*检查行和列*/check1();/*检查宫*/check2();if(flag1&&flag2&&flag3)cout<<"YES"<<endl;else cout<<"NO"<<endl;
}int main()
{int _;_=1;while(_--){solve();}return 0;
}
8、珂朵莉的假toptree (nowcoder.com)
c++有个to_string函数很方便
#include<bits/stdc++.h>
#define int long long
using namespace std;signed main()
{int n;cin>>n;string s="";int cnt=0;for(int i=1;i<=1000;i++){s+=to_string(i);}cout<<s[n-1];return 0;
}
9、D-[NOIP2012]Vigenère 密码_24级新生数组字符串训练题 (nowcoder.com)
首先按照题目初始化密码表,然后根据规则去翻译即可。代码如下:
#include<iostream>
#include<cstring>
using namespace std;
const int N=100010;char map[26][26];
char key[110],text[1010];void init()
{for(int i=0;i<26;i++){char base='A'+i;for(int j=0;j<26;j++){char now=base+j;if(now-'A'>=26)now-=26;map[i][j]=now;}}
}int main()
{init();cin>>key>>text;int l=strlen(key),ll=strlen(text);for(int i=0;i<ll;i++){char a=key[i%l];char b=text[i];if(a>='a'&&a<='z')a+='A'-'a';if(b>='a'&&b<='z')b+='A'-'a';char ans;for(int j=0;j<26;j++)if(map[j][a-'A']==b)ans=j+'A';if(text[i]>='a'&&text[i]<='z')ans+='a'-'A';printf("%c",ans);}return 0;
}
有兴趣的同学还可以去试一下这道题:潜伏者 (nowcoder.com)
10、E-上三角矩阵判定_24级新生数组字符串训练题 (nowcoder.com)
设行数为i,那么要满足题目意思的话只要每行前i-1个元素全为0即可,否则不满足条件。
#include<bits/stdc++.h>
using namespace std;int f[11][11];signed main()
{int n;cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>f[i][j];bool ff=1;for(int i=1;i<=n;i++)for(int j=1;j<=i-1;j++){if(f[i][j])ff=0;}if(ff)cout<<"YES";else cout<<"NO";return 0;
}
相关文章:
2024级新生数组字符串专题题解
一、题解: 1.A-[NOIP2005]校门外的树_24级新生数组字符串训练题 (nowcoder.com) 这题常见的解法有两种: 第一种是这道题我们可以直接按照题目意思枚举 #include<bits/stdc.h> #define int long long using namespace std;int road[10010];sig…...
C++学习 虚函数,容器
一、虚函数 虚函数是C中的一种函数,允许子类重写父类中的函数,以便在运行时通过基类指针或引用调用子类的函数实现。虚函数的主要作用是实现多态性,这使得基类指针或引用可以根据实际指向的对象类型调用不同的函数实现。具体用法 虚函数的声…...
MacTalk 测评通义灵码,如何实现“微信表情”小功能?
作者:池建强,墨问西东创始人 前段时间,我写了篇墨问研发团队放弃 GitHub Copilot 的文章,没想到留言区一些读者推荐我们试试通义灵码,说它效果很不错。我呢,一直没腾出时间折腾。 直到月中时,…...
Canvas Confetti - 免费开源的五彩纸屑飞舞特效的 JS 库,多用于在网页上实现欢乐庆祝的场景
今天看科技周刊看到的一个酷炫的动效库,使用简单,视觉效果很好,推荐给大家。 Canvas Confetti 是一个基于 JavaScript 的特效动画库,可以在网页界面上轻松地实现五彩纸屑飞舞的庆祝场景特效。这个特效库封装了几种酷炫的特效&…...
[数据集][目标检测]智慧牧场猪只检测数据集VOC+YOLO格式16245张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):16245 标注数量(xml文件个数):16245 标注数量(txt文件个数):16245 标…...
GS-SLAM论文阅读笔记--LoopSplat
介绍 这篇文章看标题是解决GS-SLAM回环检测的,GS-SLAM回环检测之前文章很少,但他对于SLAM又很重要,确实值得阅读一番。而且这些作者的学校又是很厉害的。 文章目录 介绍1.背景介绍2.关键内容2.1 Gaussian Splatting SLAM2.2 Gaussian Splat…...
Mysql数据库表结构迁移PostgreSQL
1、背景: 公司本来用的数据库都是mysql,为了国产化适配兼容pg和dm。dm提供了数据迁移工具,可以直接做数据迁移,生成脚本之后在其他环境执行。但是pg貌似没有工具能直接用。navicat由于版权问题公司也用不了。pgloader使用总是有问…...
店匠科技携手Stripe共谋电商支付新篇章
在全球电商行业蓬勃发展的背景下,支付环节作为交易闭环的核心,其重要性日益凸显。随着消费者对支付体验要求的不断提高,以及跨境电商的迅猛发展,支付市场正经历着前所未有的变革与挑战。在这一充满机遇与竞争的领域,店匠科技(Shoplazza)凭借其创新的嵌入式支付解决方案—— Sho…...
大众(奥迪)汽车继电器编号对照表
数字功能放大器零件编号1化油器进气歧管加热器40a1719063832燃油泵(CE1 MK1 Golf 和 Early Rocco/cabrio K-Jet,无转速限制器)-443906059A 321906059D/E3燃油泵(CE1 MK1 Golf 和 Early Rocco/cabrio K-Jet,无转速限制器)-4439060594安全带警告继电器5早期 MFA 时钟的换档…...
《佛脚闪卡watch》——Apple Watch上的高效学习助手
在快节奏的生活环境中,时间管理成为了学习成功的关键因素之一。**《佛脚闪卡watch》**是一款专为Apple Watch设计的应用程序,旨在帮助学生和自学者更高效地利用碎片时间进行学习。无论是等待公交、散步还是短暂休息,您都可以随时随地进行复习…...
六、桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,旨在将抽象与实现分离,使得两者可以独立变化。通过使用桥接模式,可以避免在多个维度上进行继承,降低代码的复杂度,从而提高系统的可扩展性。 组成…...
Vue eslint 语法检测问题
1. 修改 prettier 配置文件 确保你的项目中有 .prettierrc 配置文件,并在其中添加或修改 endOfLine 设置为 lf,确保统一使用 LF 换行符。 在 .prettierrc 文件中添加: {"endOfLine": "lf" }2. 修改 .editorconfig 文件…...
QT Creater实现国庆节主题项目【0基础完成版】
本文适用对象 想要学习qt creater的小白;想要学习c++制作软件的编程爱好者。可以先下载这篇博客绑定的资源,然后一边操作,一边学习,会更高效~0. 创建初始项目 一步步来操作吧,首先下载qt creter,之前发布过相关资源,大家直接查找下载,或者自行下载。 1. 初始代码 mai…...
Qt 加载 WPS 时提示要登录
项目中Qt加载word时 默认用wps打开word文档 程序一运行老是提示要立即登录 看着很烦 可以按下面的方法去掉这个烦人的东西 在下面的项目中新建字符串enableforceloginforfirstinstalldevice,值为false即可。...
vue3的el-tree的default-checked-keys无法勾选的问题解决
前言:有些树形控件是需要默认勾选的 但是请求后渲染不显示 刷新外部的key值也没有用 看了一下文档 我们使用自带的方法来解决 <el-treenode-key"id":data"state.parentMenuList":default-checked-keys"state.checkIdList":check-on-click-n…...
class 5: vue.js 3 v-model和表单输入
v-model是Vue.js 3中用于实现双向绑定的重要指令,双向绑定就是对于数据的修改会映射回UI组件上,同时对于UI组件上数据的变更也会映射回底层数据当中,v-model会根据控件的类型自动选取正确的方法来更新元素v-model底层实现的原理实际上是v-bin…...
了解一下HTTP 与 HTTPS 的区别
介绍: HTTP是超文本传输协议。规定了客户端(通常是浏览器)和服务器之间如何传输超文本,也就是包含链接的文本。通常使用TCP【1】/IP协议来传输数据,默认端口为80。 HTTPS是超文本传输安全协议,具有CA证书。…...
Opencv中的直方图(1)计算反向投影直方图函数calcBackProject()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算直方图的反向投影。 cv::calcBackProject 函数计算直方图的反向投影。也就是说,类似于 calcHist,在每个位置 (x, y)…...
VUE3项目的几种创建方式
文章目录 1.使用 Vue CLI (Vue Command Line Interface):2.使用 Create Vue App:3.使用 Vite:4.使用图形用户界面 (GUI):5.纯手工搭建6.基于模板创建: 1.使用 Vue CLI (Vue Command Line Interface): Vue CLI 是官方推荐的方式来快速搭建 Vue 项目的基础结构。命令:…...
VBA进行excel坐标转换
在Excel里利用坐标绘图时,可以比较容易想到采用数据透视表,但是数据透视表生成的图不可更改,因此本案例采用VBA进行坐标变换而不改变原始值来转换图像,即实现图像的左右翻转和上下翻转,如下图所示,选择map的…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...
