SUM-2024成信大天梯赛
查看代码中有仔细的批注
L1-5 yihan的新函数
题解:(字符串)需要用到一个知识,整数与字符串之间的变换“to_string()”,字符串变成整数“stoll()”函数,还有”stoint()“等字符串变成其他类型的数;这道题还有一个坑点在于位数,奇数位和偶数位要判断,否则输出的答案也是错的。
题目如下:

实现代码:
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
long long sum =0;
int t =0;
int l =0;
cin>>n;
while(n--)
{
l = 0;
t=0;
long long a;
cin >> a;
if(a%2==0)
t=1;
string a_str = to_string(a);//一个将其他类型转化成string类型
int len = a_str.length();
if(len%2==0)
l=1;
for (int i = 0; i < len; i++) {
if (((t==1)&&((i+1)%2!=0)&&(l==0))||((t==1)&&((i)%2!=0)&&(l==1))||((t==0)&&(i+1)%2!=0)&&(l==1)||((t==0)&&(i)%2!=0)&&(l==0)) {
//这里判断找多少位
a_str[i] = '0';
}
}
sum+=stoll(a_str);//把string类型转化成ll类型
// cout<<stoll(a_str)<<endl;
}
cout << sum << endl;
return 0;
}
L1-6 二进制
题解:考查知识点:(字符串—进位运算)这道题输入字符串然后从后往前计算,难点在于是否要一开始就补齐,还是直接遍历,第二个难点在于条件的判定,两个字符串什么时候循环停止,还有最后的输出,需要用到反转函数reverse();这里最关键在于遍历两个字符串加法的时候注意条件;
题目如下:

代码如下:
点击查看代码
#include <bits/stdc++.h>
using namespace std;
string addBinary(string a, string b) {
int carry = 0;
string result = "";
int m = a.size(), n = b.size();
int len = max(m, n);
//一个for循环,时间复杂度很小
for (int i = 0; i < len || carry; i++) {
//注意这里的判断条件,小于两个的最大值,
//或者carry不为空,因为有可能最后两个数都是1,需要进位。
int sum = carry;
if (i < m) {
sum += a[m - 1 - i] - '0';
}
if (i < n) {
sum += b[n - 1 - i] - '0';
}
result += to_string(sum % 2);
//这里的字符串result从前往后加上对应每一位的二进制数
carry = sum / 2;
//记录是否进位
}
reverse(result.begin(), result.end());
//反转字符串,输出从后往前,正确答案
return result;
}
int main() {
string a, b;
cin >> a >> b;
cout << addBinary(a, b) << endl;
return 0;
}
L1-7 大山中的学院
题解:一个很简单的模拟,当时没写出来的原因是没有看这道题,只有一个点需要注意就是它的科技值的范围是10^9,需要unsing long long 去存放数据。
题目如下:

代码如下:
点击查看代码
#include <bits/stdc++.h>
using namespace std;
char mp[10100][10000];
unsigned long long v2[10100000];
unsigned long long v[10100][10100];
int xx[]={0,1,0,-1};
int yy[]={-1,0,1,0};
int ma;
int sum;
int ay,ax;
int main ()
{
int n,m,t;
cin>>n>>m>>t;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[i][j];
}
}
for(int i=1;i<=t;i++){
cin>>v2[i];
}
int p=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(mp[i][j]=='*')
{
if(p>=t)
break;
v[i][j]=v2[p];
p++;
}
}
if(p>=t)
break;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(mp[i][j]=='-')
{
sum = 0;
for(int k=0;k<=3;k++){
int dx = i+xx[k];
int dy =j+yy[k];
sum+=v[dx][dy];
}
if(ma<sum)
{
ma=sum;
ay=j;
ax=i;
}
}
}
}
cout<<ax<<" "<<ay<<"\n";
cout<<ma;
return 0;
}
SUM-2024成信大天梯赛的更多相关文章
- 树状数组+二分答案查询第k大的数 (团体程序设计天梯赛 L3-002. 堆栈)
前提是数的范围较小 1 数据范围:O(n) 2 查第k大的数i:log(n)(树状数组查询小于等于i的数目)*log(n)(二分找到i) 3 添加:log(n) (树状数组) 4 删除:log(n) ...
- PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)
PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++: 欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...
- PTA L2-001 紧急救援-最短路(Dijkstra)多条最短路找最优解并输出路径 团体程序设计天梯赛-练习集
L2-001 紧急救援 (25 分) 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快 ...
- 『ACM C++』 PTA 天梯赛练习集L1 | 001-006
应师兄要求,在打三月底天梯赛之前要把PTA上面的练习集刷完,所以后面的时间就献给PTA啦~ 后面每天刷的题都会把答案代码贡献出来,如果有好的思路想法也会分享一下~ 欢迎大佬提供更好的高效率算法鸭~ - ...
- 2018天梯赛第一次训练题解和ac代码
随着评讲的进行代码和题解会逐步放上来 2018天梯赛第一次训练 1001 : 进制转换 Time Limit(Common/Java):1000MS/10000MS Memory Limit: ...
- PTA 天梯赛 L1
L1-002 打印沙漏 细节:就是在 (i>j&&i+j<r+1) 这个区间里才有空格,然后就是 for 循环 for(r=1; ;r+=2) 条件不满足之后还会再 ...
- 天梯赛 L2-008 最长对称子串
题目是PTA的天梯赛练习集中的L2-008 https://pintia.cn/problem-sets/994805046380707840/problems/994805067704549376 ...
- 【CCCC天梯赛决赛】
cccc的天梯赛决赛,水题一样的水,中档题以上的还是没做出来.补了一下题,觉得其实也不是很难,主要是练的少. L2-1:红色预警 并查集 我做的时候想不到并查集,想到了也不一定做的出来,都是其实不难. ...
- 团 大连网赛 1007 Friends and Enemies
//大连网赛 1007 Friends and Enemies // 思路:思路很棒! // 转化成最大二分图 // 团:点集的子集是个完全图 // 那么朋友圈可以考虑成一个团,原题就转化成用团去覆盖 ...
- L1-049 天梯赛座位分配
L1-049 天梯赛座位分配 (20 分) 天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情.为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i ...
随机推荐
- vue绑定对象,绑定的值不改变的问题
在使用vue结合elmentui的table组件,对数组绑定,需要编辑数组里一些属性的值.我的情况是,需要在打开这个表时,根据条件插入一些对象到table里,经测试,到这里是没问题的,可以显示新插入的 ...
- 7款优秀的AI搜索引擎工具推荐
AI搜索引擎不仅能够理解复杂的查询语句,还能够通过学习用户的搜索习惯和偏好,提供更加个性化的搜索结果.本篇文章将介绍7款在这一领域表现出色的AI搜索引擎工具,它们各有特色,但都致力于为用户提供更加智能 ...
- css之伪元素选择器
注:本博客内容来自尚硅谷禹神的前端入门课程 什么是伪元素? 很像元素,但不是元素(element),是元素中的一些特殊位置. 伪元素语法中的::可以用:,因为css2中没有明确区分伪类和伪元素,但是s ...
- docker——容器的基本操作
docker 容器的基本操作 run 格式 docker run [选项] 镜像 [命令] [参数...] 选项 选项 解释 -d 后台运行 -i 交互模式 -t 分配一个伪终端 -p 设置端口 -- ...
- LeetCode 682. Baseball Game 棒球比赛(C++/Java)
题目: You're now a baseball game point recorder. Given a list of strings, each string can be one of th ...
- xshell和xftp下载免费版本方法
下载地址 https://www.xshell.com/zh/free-for-home-school/ 填写邮箱和用户名,会发送下载邮件到邮箱,然后根据邮箱中的下载地址来下载安装.
- STP选举规则
STP Election Process 802.1D STP 802.1D是第一个生成树版本,不支持VLAN.选举过程如下 选择一个根桥 选择根端口 选择指定端口 选择关闭端口(剩下的最后一个端 ...
- Navicat 连接SQL Server LocalDB的方法
截止2021年11月,Sql Server LocalDB的资料网上并不多见,出来了其实也有一段年头了. SqlServerManagerStudio自带的工具进行查询使用体验并不好,Navicat是 ...
- 2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules, Teams Preferred) M. SmartGarden 题解
cf1250 M. SmartGarden 完全不会做 orz,在 cf 上看到了有趣的做法. 通读题意后可以发现是对于每一次操作,要求选出的行集合 \(R\) 和列集合 \(C\) 要满足如下条件: ...
- Android 中的 perfboot工具
背景 开机首先加载bootloader,由bootloader启动kernel,然后运行init程序,有init启动Zygote,Zygote进程启动SystemServ进程,在SystemServe ...