寒假刷题13天

PTA甲级

1082 Read Number in Chinese

字符串处理,恶心

#include<iostream>
#include<algorithm>using namespace std;string num[10] = {"ling" , "yi" , "er" , "san" , "si", "wu" , "liu" , "qi" , "ba" , "jiu"};
string pos[10] = {"" , "Shi" , "Bai" , "Qian" , "Wan" ,"Shi", "Bai", "Qian" , "Yi"};
string s;
bool f = false;int main()
{cin >> s;if(s[0] == '-') f = true , s.erase(0 , 1);int zeros = 0; // 两个以上的要读为0string res;for(int i = 1;i <= s.size();i ++){int now = s[i - 1] - '0';if(now) // 非零{if(zeros) res += " ling" , zeros = 0;if(i > 1) res += " ";res += num[now] + " " + pos[s.size() - i];}else{zeros ++;if((s.size() - i) % 4 == 0 && zeros % 4) res += " " + pos[s.size() - i] , zeros = 0;}}res.pop_back();if(f) cout << "Fu ";if(s != "0") cout << res << endl;else cout << "ling" << endl;return 0;
}

1086 Tree Traversals Again

已知中序和前序,求后序

#include<iostream>
#include<stack>
#include<vector>using namespace std;const int N = 50;
int n;
stack<int>st;
int in[N] , pre[N] , pos[N];
int l[N] , r[N];
vector<int>post;int build(int il , int ir , int pl , int pr)
{int root = pre[pl];int k = pos[root];if(il < k) l[root] = build(il , k - 1 , pl + 1 , pl + k - il);if(k < ir) r[root] = build(k + 1 , ir , pl + k - il + 1 , pr);post.push_back(root);return root;
}int main()
{cin >> n;n *= 2;int cnt = 0 , cnti = 0;while(n --){string s;int x;cin >> s;if(s == "Push") cin >> x , st.push(x) , pre[cnt ++] = x;else in[cnti] = st.top() , pos[st.top()] = cnti ++ , st.pop();}n = cnt;build(0 , n - 1 , 0 , n - 1);for(int i = 0;i < post.size();i ++){if(i) cout << " ";cout << post[i];}return 0;
}

1087 All Roads Lead to Rome

迪杰斯特拉

#include<iostream>
#include<vector>
#include<cstring>
#include<unordered_map>
#include<algorithm>using namespace std;const int N = 510;
int n , m;
string start;
unordered_map<string , int>mp;
unordered_map<int , string>rev_mp;
int happy[N];
int g[N][N];
bool st[N];
int dist[N] , path[N] , cnt[N] , ha[N];
int point[N];void dij()
{memset(st , 0 , sizeof st);memset(dist , 0x3f , sizeof dist);memset(path , -1 , sizeof path);dist[mp[start]] = 0, cnt[mp[start]] = 1 , point[mp[start]] = 1 , ha[mp[start]] = happy[mp[start]];for(int i = 1;i <= n;i ++){int t = -1;for(int j = 1;j <= n;j ++)if(!st[j] && (t == -1 || dist[t] > dist[j]))t = j;st[t] = true;for(int j = 1;j <= n;j ++){if(dist[j] > dist[t] + g[t][j]){dist[j] = dist[t] + g[t][j];cnt[j] = cnt[t];ha[j] = ha[t] + happy[j];path[j] = t;point[j] = point[t] + 1;}else if(dist[j] == dist[t] + g[t][j]){cnt[j] += cnt[t];if(ha[j] < ha[t] + happy[j]) {ha[j] = ha[t] + happy[j];path[j] = t;point[j] = point[t] + 1;}else if(ha[j] == ha[t] + happy[j]) {if(point[j] > point[t] + 1){path[j] = t;point[j] = point[t] + 1;}}}}}
}int main()
{memset(g , 0x3f , sizeof g);cin >> n >> m >> start;for(int i = 0;i < n - 1;i ++){string s;int h;cin >> s >> h;mp[s] = i + 1;rev_mp[i + 1] = s;happy[i + 1] = h;}mp[start] = n;rev_mp[n] = start;while(m --){string a , b;int c;cin >> a >> b >> c;g[mp[a]][mp[b]] = g[mp[b]][mp[a]] = c;}dij();cout << cnt[mp["ROM"]] << " " << dist[mp["ROM"]] << " ";cout << ha[mp["ROM"]] << " ";vector<int>res;for(int i = mp["ROM"];~i;i = path[i])res.push_back(i);cout << ha[mp["ROM"]] / (res.size() - 1) << endl;reverse(res.begin() , res.end());for(int i = 0;i < res.size();i ++){if(i) cout << "->";cout << rev_mp[res[i]];}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/644182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言快速排序(非递归)图文详解

前言&#xff1a; 上一期分析了快速排序的三种写法&#xff0c;这三种写法有一个相同点&#xff0c;都是采用递归形式来实现的&#xff0c;那么有没有非递归的方法实现呢&#xff1f;答案是当然有&#xff0c;用非递归的方法实现快速排序&#xff0c;其实可以借助数据结构中的栈…

【LangChain学习之旅】—(10) 用RouterChain确定客户意图

【【LangChain学习之旅】—&#xff08;10&#xff09; 用RouterChain确定客户意图 任务设定整体框架具体步骤如下&#xff1a; 具体实现构建提示信息的模板构建目标链 Reference&#xff1a;LangChain 实战课 任务设定 首先&#xff0c;还是先看一下今天要完成一个什么样的任…

《鸟哥的Linux私房菜》第1章——总结与简答题回答

目录 一、什么是Linux&#xff0c;有什么作用&#xff1f; 二、Linux发展史 三、Linux发行版 四、简答题部分 一、什么是Linux&#xff0c;有什么作用&#xff1f; Linux包括内核和系统调用两部分&#xff0c;是位于硬件设备与应用程序中间的操作系统。 操作系统其实也是…

54-函数的3种定义,函数的4种调用:函数模式调用,方法模式调用,构造函数模式调用,apply call bind调用

一.函数的3种定义 1.函数的声明定义:具有声明提升 <script>//函数声明定义function fn(){}</script> 2.函数的表达式定义 <script>//匿名式表达式var fn = function(){}//命名式表达式var fn1 = function a(){}</script> 3.构造函数定义 var 变量…

宝塔Linux面板卸载方法

宝塔Linux面板卸载方法 1.你需要先在面板中将通过面板安装的所有软件卸载&#xff0c;如 nginx、mysql、php 等等&#xff0c;然后&#xff0c;进入 SSH 命令行&#xff0c;输入以下命令&#xff1a; /etc/init.d/bt stop && rm -f /etc/init.d/bt && rm -rf…

利用Facebook广告进行品牌宣传的优缺点有哪些

利用Facebook广告进行品牌宣传具有以下优点&#xff1a; 精准定位受众&#xff1a;Facebook广告能够根据用户的人口统计数据、兴趣爱好、行为特征等精准定位目标受众&#xff0c;帮助广告主更好地触达潜在客户&#xff0c;提高广告效果。多样化的广告格式&#xff1a;Facebook…

distinct和group by的功能、使用和底层原理

distinct和group by的功能、使用和底层原理 distinct功能和用法 DISTINCT 是一种用于去除 SELECT 语句返回结果中重复行的关键字。在使用 SELECT 语句查询数据时&#xff0c;如果结果集中包含重复的行&#xff0c;可以使用 SELECT DISTINCT 语句来去除这些重复的行。 需要注…

多维时序 | Matlab实现GWO-TCN-Multihead-Attention灰狼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现GWO-TCN-Multihead-Attention灰狼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现GWO-TCN-Multihead-Attention灰狼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料 效…

python爬虫代码示例:爬取京东详情页图片

python爬虫代码示例:爬取京东详情页图片 一、Requests安装及示例 爬虫爬取网页内容首先要获取网页的内容&#xff0c;通过requests库进行获取。 GitHub: https://github.com/requests/requests PyPl: https://pypi.python.org/pypi/requests 官方文档:http://wwwpython-requ…

Java可以用于物联网的开发吗?

Java可以用于物联网的开发吗? 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;J…

web安全学习笔记【06】——http\https抓包

思维导图放最后 #知识点&#xff1a; 1、Web常规-系统&中间件&数据库&源码等 2、Web其他-前后端&软件&Docker&分配站等 3、Web拓展-CDN&WAF&OSS&反向&负载均衡等 ----------------------------------- 1、APP架构-封装&原生态&…

SpringBoot集成mybatis时idea控制台中文乱码问题解决

在application.yml中配置好映射文件打印数据库日志文件时&#xff0c;控制台出现乱码的情况解决如下 问题 在执行查询操作的时候&#xff0c;查询时可以查看是没有问题的&#xff0c;但是控制台乱码了 解决 在File-Setting-Editor-File Encodings中设置如图所示就可以了 现在…

软件测试之功能测试详解

一、测试项目启动与研读需求文档 &#xff08;一&#xff09; 组建测试团队 1、测试团队中的角色 2、测试团队的基本责任 尽早地发现软件程序、系统或产品中所有的问题。督促和协助开发人员尽快地解决程序中的缺陷。帮助项目管理人员制定合理的开发和测试计划。对缺陷进行跟…

业余爱好-生物信息学/生物化学/物理/统计学/政治/数学/概率论/AI/AGI/区块链

生物信息学 高等数学—元素和极限-实数的定义高等数学—元素和极限-实数的元素个数高等数学—元素和极限-自然数个数少于实数个数高等数学—元素和极限-无穷大之比较高等数学—元素和极限-级数的收敛高等数学—元素和极限-极限的定义数学分析与概率论人工智能AI数学基础——全套…

http503错误是什么原因

HTTP503错误在站长圈很经常遇到&#xff0c;很多网站站长经常遇到的HTTP503错误经常会不知道怎么去解决它。今天我们就来针对HTTP503错误问题展开说说。HTTP503错误是指服务器暂时无法处理客户端的请求&#xff0c;常常出现在服务器超负荷或维护期间。在这种情况下&#xff0c;…

HTML 入门手册(二)

目录 HTML 入门手册(一) 10-表单 11-input标签 11.1文本框 (text) 11.2密码框 (password) 11.3单选按钮 (radio) 11.4复选框 (checkbox) 11.5普通按钮 11.6提交按钮 (submit) 11.7重置按钮 (reset) 11.8隐藏域 (hidden) 11.9文件上传 (file) 11.10数字输入 (numbe…

2024年上海高考数学最后四个多月的备考攻略,目标140+

亲爱的同学们&#xff0c;寒假已经来临&#xff0c;春节即将到来&#xff0c;距离2024年上海高考已经余额不足5个月了。作为让许多学子头疼&#xff0c;也是拉分大户的数学科目&#xff0c;你准备好了吗&#xff1f;今天&#xff0c;六分成长为您分享上海高考数学最后四个多月的…

Java八股文(斩获 Offer 的面试宝典)

文章目录 一、Java基础篇1.接口和抽象类的区别2.重载和重写的区别3.==和equals的区别4.异常处理机制5.HashMap原理6.想要线程安全的HashMap怎么办?7.ConcurrentHashMap原如何保证的线程安全?8.HashTable与HashMap的区别9.ArrayList和LinkedList的区别10.如何保证ArrayList的线…

Sulfo Cy3 hydrazide,磺化-Cy3-酰肼,可用于与生物分子的羰基衍生物偶联

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Sulfo-Cyanine3-hydrazide&#xff0c;Sulfo Cy3 hydrazide&#xff0c;Sulfo Cyanine3 HZ&#xff0c;磺化 Cy3 酰肼&#xff0c;磺化-Cy3-酰肼 一、基本信息 产品简介&#xff1a;Sulfo-Cyanine3-hydrazide能够与…

【GitHub项目推荐--人脸识别】【转载】

01 带有移动应用程序的人脸识别库 OpenFace 作为用于人脸识别的通用库&#xff0c;能够实现瞬态和移动人脸识别&#xff0c;目前在 GitHub 上斩获 14291 Star。以下为 LFW 数据集 Sylvestor Stallone 输入单个图像的流程。 项目地址&#xff1a;https://github.com/cmusatya…