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

22睿抗省赛真题

跑团机器人

5865. 跑团机器人 - AcWing题库

根据加法和减法拆分字符串

知识点

1、字符串转数字

num1 = stoi(Str)

2、unordered_map转换成vector后再进行排序

unordered_map<int,int> toumap;

vector<pair<int,int>> vec(toumap.begin(), toumap.end());

3、在字符串里找某个字符

auto position = str.find('d');

if(position == str::npos){

        //代表没找到

}

完整代码

#include <bits/stdc++.h>
using namespace std;unordered_map<int,int> toumap;vector<char> vecChar;
vector<vector<int>> calVec(100000);	//【0】为min, 【1】为max 
int cnt=0;void calNum(string str){int num1=0, num2=0;auto position = str.find('d');if(position == string::npos){//单个数字num1 = stoi(str);num2=num1;calVec[cnt].push_back(num1);calVec[cnt].push_back(num1);}else{if(position==0){num1=1;num2=stoi(str.substr(1,str.length()-1));}else{num1 = stoi(str.substr(0,position));num2 = stoi(str.substr(position+1, str.length()-position-1));
//			cout << position << endl;}toumap[num2]+=num1;calVec[cnt].push_back(num1);calVec[cnt].push_back(num2*num1);}cnt++;//	cout << num1 << " " << num2 << endl;//num1个num2面 
}int main(){string s;cin >> s;int len = s.length();int start=0;for(int i=0;i<len;i++){if(s[i]=='+' || s[i]=='-' || i==len-1){if(s[i]=='+'||s[i]=='-'){vecChar.push_back(s[i]);	//符号压栈 }string tem;if(i!=len-1){tem = s.substr(start, i-start);}else{tem = s.substr(start, i-start+1);}
//			cout << tem << endl;calNum(tem);start += i-start+1;	//数组长度 }}vector<pair<int,int>> vec(toumap.begin(), toumap.end());//对vector进行排序
//	sort(vec.begin(), vec.end(),[](const pair<int,int> &a, const pair<int,int> &b){
//		return a.second<b.second;
//	});sort(vec.begin(), vec.end());for(const auto& pair:vec){cout << pair.first << " " << pair.second << endl;} 
//	cout << endl;int numSize=cnt;int operSize=vecChar.size();
//	cout << numSize << " " << operSize << endl;//	for(int i=0;i<numSize;i++){
//		cout << calVec[i][0] << " " << calVec[i][1] << endl;
//	}long long minRe=0, maxRe=0;int k=1;minRe += calVec[0][0];maxRe += calVec[0][1];for(int i=0;i<operSize;i++){if(vecChar[i]=='+'){minRe += calVec[k][0];maxRe += calVec[k][1];}else if(vecChar[i]=='-'){minRe -= calVec[k][1];maxRe -= calVec[k][0];}k++;}cout << minRe << " " << maxRe;return 0;
}

http://www.xdnf.cn/news/746839.html

相关文章:

  • DAY41
  • 【SLAM自救笔记1】:苟活
  • 【Netty系列】消息编码解码框架
  • LeetCode[110]平衡二叉树
  • 第6章 放大电路的反馈
  • AI Agent、Function Calling 与 MCP 协议的原理与实践
  • Linux系统-基本指令(4)
  • 评标专家随机抽选系统-建设方案——仙盟创梦IDE
  • WEB3——简易NFT铸造平台之nft.storage
  • 【知识点进阶】
  • Java 中 Redis 过期策略深度解析(含拓展-redis内存淘汰策略列举)
  • TI MSPM0G3507 简易PID项目显示和按键控制
  • [SLAM自救笔记0]:开端
  • 安装win11之后,电脑经常会跳出“无法在此设备上加载驱动程序”的提示。无法加载的驱动程序分别为“pcdsrvc_x64.pkms”“iqvw64e.sys”
  • OpenHarmony标准系统-HDF框架之音频驱动开发
  • 2.2HarmonyOS NEXT高性能开发技术:编译优化、内存管理与并发编程实践
  • Spring Cache核心原理与快速入门指南
  • Leetcode 1908. Nim 游戏 II
  • 【shell】让 CPU 运行到满负荷状态
  • 传统液晶瓶颈待破?铁电液晶如何实现显示技术逆袭
  • 快速掌握 GO 之 RabbitMQ
  • 嵌入式编译工具链熟悉与游戏移植
  • Python训练第四十天
  • Jmeter requests
  • LLMs之Tool:Workflow Use的简介、特点、安装和使用方法、以及案例应用
  • c++ typeid运算符
  • 如何打包conda环境从一台电脑到另外一台电脑
  • 电力高空作业安全检测(3)RT-DETR模型
  • MySQL高级查询技巧:分组、聚合、子查询与分页【MySQL系列】
  • 深入理解CSS常规流布局