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

课后作业-2025-09-21

题目:B4125 [语言月赛 202501] 知识竞赛

网址:https://www.luogu.com.cn/problem/B4125

思路:我们先把输入保存到二维数组a,然后我们得到总和最大的列,接着找到该列最大的值和最大值的个数。

知识点:二维数组,简单思维。

代码:

#include<bits/stdc++.h>
using namespace std;int a[55][55];
int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];	}	} int id,mx=0;for(int j=1;j<=m;j++){int s=0;for(int i=1;i<=n;i++){s+=a[i][j];}if(s>=mx){mx=s;id=j;}}mx=0;int cnt=0;for(int i=1;i<=n;i++){if(a[i][id]>mx){mx=a[i][id];cnt=1;}else if(mx==a[i][id]){cnt++;}}cout<<mx<<" "<<cnt;return 0;
}

题目:B2104 矩阵加法

网址:https://www.luogu.com.cn/problem/B2104

思路:我们先输入数据到a和b这两个二维数组,然后再输出每个位置元素相加的结果。

知识点:二维数组

代码:

#include<bits/stdc++.h>
using namespace std;int a[110][110],b[110][110];
int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)cin>>a[i][j];}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)cin>>b[i][j];}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cout<<a[i][j]+b[i][j]<<" ";}cout<<'\n';}return 0;
}

题目:文对称数

网址:https://ac.nowcoder.com/acm/contest/19305/1050

思路:我们从1到n枚举,先通过to_string函数获得整数i的字符串s,接着获得s的反转字符串t,然后判断s是否和t相等。

知识点:字符串,字符串反转,to_string函数。

代码:

#include<bits/stdc++.h>
using namespace std;int main(){int n;cin>>n;for(int i=1;i<=n;i++){string s=to_string(i);string t=s;reverse(t.begin(),t.end());if(s==t)cout<<i<<'\n';}return 0;
}

题目:BFS

网址:https://ac.nowcoder.com/acm/contest/19306/1036

思路:我们遍历一遍字符串,看是否存在"Bob"(忽略大小写)。

知识点:字符串,length()函数来获得字符串的长度,遍历字符串。

代码:

#include<bits/stdc++.h>
using namespace std;int main(){string s;int id=-1;cin>>s;int len=s.length();for(int i=0;i+2<len;i++){if((s[i]=='B'||s[i]=='b')&&(s[i+1]=='o'||s[i+1]=='O')&&(s[i+2]=='B'||s[i+2]=='b')){id=i;break;}}cout<<id;return 0;
}

题目:P11445 「ALFR Round 3」A 调皮的学生

网址:https://www.luogu.com.cn/problem/P11445

思路:我们定义一个cnt数组,cnt[i]代表第i位同学给老师评了多少次分数。按照题目的意思,如果cnt[i]不等于1,那么i这位同学就是调皮的同学。

知识点:桶方法

代码:

#include<bits/stdc++.h>
using namespace std;int cnt[110];
int main(){int n;cin>>n;int a=0;cin>>a;for(int i=1;i<=a;i++){int x;cin>>x;cnt[x]++;}int b=0;cin>>b;for(int i=1;i<=b;i++){int x;cin>>x;cnt[x]++;}int c=0;cin>>c;for(int i=1;i<=c;i++){int x;cin>>x;cnt[x]++;}int ans=0;for(int i=1;i<=n;i++){if(cnt[i]!=1)ans++;}cout<<ans;return 0;
}

题目:B4248 [语言月赛 202503] 数字棋盘

网址:https://www.luogu.com.cn/problem/B4248

思路:我们按照题目的意思模拟一下就行。

知识点:二维数组。

代码:

#include<bits/stdc++.h>
using namespace std;int dx[]={1,-1,0,0};
int dy[]={0,0,1,-1};
int a[1100][1100];
int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}int x,y;cin>>x>>y;int ans=0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(a[i][j]==x){int ok=0;for(int k=0;k<=3;k++){int xx=i+dx[k],yy=j+dy[k];if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&a[xx][yy]==y){ok=1;	}	}	ans+=ok;} }}cout<<ans;return 0;
}

题目:B3724 [语言月赛202303] Carrot Harvest G

网址:https://www.luogu.com.cn/problem/B3724

思路:我们枚举矩形的左上角的顶点(i,j)和右下角的顶点的位置(k,p),然后我们统计一下这个矩形里面萝卜的个数,同时呢这个矩形的面积为(k-i+1)*(p-j+1)

知识点:二维数组。

代码:

#include<bits/stdc++.h>
using namespace std;int a[23][23];
int main(){int n,m,tim;cin>>n>>m>>tim;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}int mn=1000000;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){for(int k=i;k<=n;k++){for(int p=j;p<=m;p++){int cnt=0;for(int L=i;L<=k;L++){for(int R=j;R<=p;R++){cnt+=a[L][R];}}if(cnt>=tim){mn=min(mn,(k-i+1)*(p-j+1));}}}}}cout<<mn;return 0;
}

题目:数位之和

网址:https://ac.nowcoder.com/acm/contest/19305/1051

思路:我们先对输入取一个绝对值,然后再通过while循环和整除取余的方式来获取数位之和。

知识点:while循环,整数取余

代码:

#include<bits/stdc++.h>
using namespace std;int main(){int n;cin>>n;if(n<0)n=-n;int ans=0;while(n){int t=n%10;ans+=t;n/=10;}cout<<ans;return 0;
}

题目:[NOIP2017]成绩

网址:https://ac.nowcoder.com/acm/contest/18839/1034

思路:按照题目的意思进行整数加法就行。

知识点:整数加法。

代码:

#include<bits/stdc++.h>
using namespace std;int main(){int a,b,c;cin>>a>>b>>c;int ans=0.2*a+0.3*b+0.5*c;cout<<ans;return 0;
}

题目:P1152 欢乐的跳

网址:https://www.luogu.com.cn/problem/P1152

思路:我们先获取相邻元素之间的差值,然后用vis数组来记录一下出现的次数。当1到(n-1)都出现一次的时候,那么就是"欢乐的跳"。

知识点:一维数组,桶标记法。

代码:

#include<bits/stdc++.h>
using namespace std;int a[1100],vis[1100];
int main(){int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=2;i<=n;i++){int x=abs(a[i]-a[i-1]);if(x>=1&&x<=n-1)vis[x]++;}for(int i=1;i<=n-1;i++){if(vis[i]!=1){cout<<"Not jolly";return 0;}}cout<<"Jolly";return 0;
}

http://www.dtcms.com/a/394428.html

相关文章:

  • 比 IDEA 容器自动化部署更轻量便捷的工具
  • 知识图谱技术对自然语言处理深层语义分析的影响与启示研究
  • Javase 高级技术 —— 01 反射
  • Linux 孤儿进程与进程的优先级和切换和调度
  • QML学习笔记(七)QML的基本数据类型
  • 基于51单片机电子钟闹钟12/24小时制LCD显示
  • 小程序开发全解析:从结构到API
  • 异步方法在C#中的使用
  • js时间戳转换日期格式 yyyy-mm-dd
  • 信号处理方法概述
  • 固定收益理论(五)债券投资归因模型
  • 【论文速递】2025年第18周(Apr-27-May-03)(Robotics/Embodied AI/LLM)
  • 3D视觉——求出目标物体在相机坐标系下的位姿信息
  • 固态和机械硬盘损坏后的不同
  • Linux 基础IO
  • pandawiki ai 无法生成摘要
  • m语言可视化log中的变量信息
  • MySQL:库操作和常用数据类型
  • uniapp实现view块级元素横竖屏切换
  • 【编号74】河北地理基础数据(道路、水系、四级行政边界、地级城市、DEM等)
  • Python: 将wxauto发布为接口,并部署为Windows服务
  • 2025年度SEO优化公司
  • 基于Markdown的静态网站生成器完全指南
  • hot100——第十一周
  • 嵌入式(2)——HAL_GetTick()
  • 《第18课——C语言结构体:从Java的“豪华别墅“到C的“集装箱宿舍“——内存对齐、位域抠门与指针破门的底层狂欢》
  • 旅游线路预约小程序怎么搭建?景区售票团购小程序怎么做?
  • Redis未来发展趋势:技术演进与生态展望
  • 怎么重新映射windows终端的按键的功能
  • 【秋招笔试】2025.09.20哔哩哔哩秋招笔试真题