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 ...
随机推荐
- mysql,左连接 ,查询右表为null的写法,删除,带join条件的写法
select * from sale_guest sg left join sale_bill sbon sg.bill_id=sb.id where sg.gmt_create>'2023-1 ...
- WPF 设置第二次打开程序直接弹出第一次打开的程序
激活已经打开窗口函数[DllImport("user32.dll")]private static extern bool SetForegroundWindow(IntPtr h ...
- cmd /c和cmd /k 以及CMD命令
[转]cmd /c和cmd /kjava的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令. cmd /c dir 是执行完dir命令后关闭命令窗口. ...
- 使用 CompeletedFuture 实现异步调用
在我们平时写的项目中,异步调用是一个比较重要的优化手段,在 Java 中,提供了 CompletedFuture 供我们使用,具体实现如下: 例子 假如现在有一个需求,我需要去淘宝.天猫和京东去搜索某 ...
- ETL工具-nifi干货系列 第十七讲 nifi Input Port&Out Port 实战教程
1.端口(Port),包含输入端口(Input Port)和输出端口(Out Port ) 使用一个或多个处理组构建的数据流需要一种方式将处理组连接到其他数据流组件. 处理组和处理组之间可以通过使用端 ...
- ETL工具-nifi干货系列 第十五讲 nifi处理器ConsumeKafka实战教程
1.上一节课我们学习了处理器PushKafka,通过该处理器往kafka中间件写数据,今天我们一起学习处理器ConsumeKafka,此处理器从kafka读取数据进行后续处理,如下图所示: 本次示例比 ...
- knife4j/swagger救援第一现场
1.前方来报,测试环境springboot项目无法启动,现场如下: Error starting ApplicationContext. To display the auto-configurati ...
- kettle从入门到精通 第三十课 mysql 数据连接常用配置
1.我们平常用的最多的数据库就是mysql了,这里我以mysql为例说下数据库连接池配置.为啥要用连接池,因为数据库建立连接很费性能,所以就建立连接池(提前建立好一批连接)缓存起来提高性能.下图中my ...
- java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder 解决方 ...
- Excel表格MID函数使用-截图单元格字符长度
Excel表格MID函数使用-截图单元格字符长度 =MID(B2,1,6) //代表的是从B2单元格,从第1个字符开始,截图6个字符长度.然后双击该单元格,整个列都会截取