其实今天是第六天,不过昨天写的题目有些杂乱,都是贪心的算法,所以昨天的题目就不放上来了。

今天开始入手数据结构吧啦吧啦。。

数据结构当时学的时候感觉挺简单的,不过现在真正上代码之后发现情况并不妙,还是好好刷题好好学习。

第一题不是oj上的,但是我感觉很有用,是堆栈的基础题目。所以我把它也放上来。

题目介绍:输入包括多组数据,每组数据一行,包含一个字符串与左右括号()。

样例输入:  )(rttyy())sss)(

输出:  

)(rttyy())sss)(     

?              ?$

 

#include <stdio.h>
#include<iostream>
#include <stack>
using namespace std;stack<int> S;
char str[110];
char ans[110];int main(){while (scanf("%s",str)!=EOF){for (int i = 0; str[i]!=0; ++i) {if (str[i]=='('){S.push(i);ans[i]=' ';}else if(str[i]==')'){if(!S.empty()){S.pop();ans[i]=' ';}else{ans[i]='?';}}else ans[i]=' ';}while (!S.empty()){ans[S.top()]='$';S.pop();}cout<<ans<<endl;}return 0;
}

这里用到了stack库,并初始化了一个int类型的S堆栈。

使用了 pop、top、push、empty函数来操作这个堆栈。

 

题目描述

哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。

输入描述:

输入有多组数据。
每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。

输出描述:

输出权值。
示例1

输入

5
1 2 2 5 9

输出

37
#include <iostream>
#include <queue>
#include <stdio.h>
using namespace std;
priority_queue<int, vector<int>, greater<int> > q;int main(){
int n;while (scanf("%d",&n)!=EOF){while (!q.empty()) q.pop();for (int i = 0; i <n ; ++i) {int x;cin>>x;q.push(x);}int ans=0;while (q.size()>1){int a = q.top();q.pop();int b = q.top();q.pop();ans+=a+b;q.push(a+b);}cout<<ans<<endl;}return 0;
}

转载于:https://www.cnblogs.com/Pinging/p/8893788.html

算法学习--Day5相关推荐

  1. 路径规划算法学习Day5

    路径规划算法学习Day5-A*算法的实现 原理回顾 一.A* 算法评价函数 二.曼哈顿距离(Manhattan Distance) 2.1.名词解释 2.2.其它启发函数 二.A* 算法matlab完 ...

  2. Python学习day5作业-ATM和购物商城

    Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM: 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆, ...

  3. 拿下斯坦福和剑桥双offer,00后的算法学习之路

    董文馨,00后,精通英语,西班牙语.斯坦福大学计算机系和剑桥大学双Offer,秋季将进入斯坦福大学学习. 10岁开始在国外上学:12岁学Scratch: 13岁学HTML & CSS: 14岁 ...

  4. 好久没有看到这么有建设性德文章,由衷地赞叹《知其所以然地学习(以算法学习为例)》-By 刘未鹏(pongba)

    知其所以然地学习(以算法学习为例) By 刘未鹏(pongba) C++的罗浮宫(http://blog.csdn.net/pongba) Updated(2008-7-24):更新见正文部分,有标注 ...

  5. 原创 | 初学者友好!最全算法学习资源汇总(附链接)

    在计算机发展飞速的今天,也许有人会问,"今天计算机这么快,算法还重要吗?"其实永远不会有太快的计算机,因为我们总会想出新的应用.虽然在摩尔定律的作用下,计算机的计算能力每年都在飞快 ...

  6. 基本算法学习(一)之希尔排序(JS)

    参考书: 严蔚敏-数据结构 希尔排序(Shell's Sort) 希尔排序又称"缩小增量排序",归属于插入排序一类,简单来说,和我们的插入排序比,它更快. 奇妙的记忆点: 内排序( ...

  7. 大顶堆删除最大值_算法学习笔记(47): 二叉堆

    堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...

  8. Surf算法学习心得(一)——算法原理

    Surf算法学习心得(一)--算法原理 写在前面的话: Surf算法是对Sift算法的一种改进,主要是在算法的执行效率上,比Sift算法来讲运行更快!由于我也是初学者,刚刚才开始研究这个算法,然而网上 ...

  9. 算法学习:后缀自动机

    [前置知识] AC自动机(没有什么关联,但是看懂了会对后缀自动机有不同的理解) [解决问题] 各种子串的问题 [算法学习] 学习后缀自动机的过程中,看到了许多相关性质和证明,但是奈何才疏学浅(lan) ...

最新文章

  1. android音频开发6,Android 音视频开发(一) : 通过三种方式绘制图片
  2. 利用dos管道命令获取屏幕内容_汇编语言--常用DOS功能
  3. JSP中EL表达式无效的问题
  4. Eviews学习笔记
  5. eclipse中图片大小用什么单位_建筑工程行业中各个单位都是什么样的关系?
  6. 847. Shortest Path Visiting All Nodes(二)
  7. JAVA GC(Garbage Collection)及OOM那些事
  8. ios客户端做屏蔽_Transmission 屏蔽迅雷反吸血脚本
  9. 一招教你数据仓库如何高效批量导入与更新数据
  10. java环境变量大小写_java环境变量配置
  11. oracle 表删掉了_分区,Oracle 删除表分区
  12. 时序分析基本概念介绍——SDC概述
  13. 求两个字符串的最长的连续公共子串
  14. 云知梦Jquery视频教程 jq重入门到精通 共12集
  15. vscode安装旧版本插件_vscode安装和安装插件
  16. 空行的符号 计算机,word中空白行的回车符号怎么消除 消除word中的回车符号
  17. oracle静默安装集群,Oracle RAC 静默安装实践
  18. 基本医疗保险如何看门诊
  19. 电脑调分辨率黑屏了怎么办_调显示器分辨率黑屏怎么办
  20. PWN之堆利用-unlink攻击

热门文章

  1. 内容搜索排序表达式的最佳实践
  2. 蚂蚁集团网络通信框架 SOFABolt 功能介绍及协议框架解析 | 开源
  3. 阿里妈妈基于TensorFlow做了哪些深度优化?TensorFlowRS架构解析
  4. apk ionic 破损_cordova – ionic build android不生成任何.apk文件或错误
  5. 游戏性能优化技术干货分享——内存管理
  6. Oracle GoldenGate 之--异构平台同步(Mysql到Oracle)
  7. 使用expdp导出时评估所需存储容量大小
  8. 小米11pro和vivox60哪个好
  9. Linux学习笔记02
  10. java八种排序算法---直接插入排序