- 下载并解密的ts文件,发现一部分ts文件能播放,一部分不能播放
weixin_41956627
python
问题说明按参考资料中两个链接,获取网站上的m3u8视频,下载并解密了ts文件,发现一部分ts文件能播放,一部分不能播放(解密失败)。解决经过反复尝试,发现疑似是多线程下载ts文件时,解密函数cryptor=AES.new(key,AES.MODE_CBC,key)的问题。当解密函数在线程函数外面(即所有线程每次运行都是用同一个cryptor)发现均有一定概率导致ts文件无法播放。当解密函数在线程函
- 使用flv.js + websokect播放rtsp格式视频流
音视频开发老马
流媒体服务器Android音视频开发音视频开发ffmpeg开发语言flv流媒体服务器音视频开发
1.问题背景在最近的项目中,涉及到海康接入的视频播放的问题,海康这边获取到的视频流是rtsp格式,web端目前没有直接可以播放的组件,于是最开始是后端处理了视频流,返回hls格式的m3u8地址,这样用videojs插件就可以播放了,但是问题就是处理了的m3u8地址播放效果非常差,第一次加载时间较长,且播放过程中很卡,尤其是项目的界面做的是视频监控墙,不止一个视频,导致没办法看了。想着最好的方式还是
- 2024年Python最新Python爬虫入门教程30:爬取拉勾网招聘数据信息(1)
2401_84584609
程序员python爬虫信息可视化
Python爬虫入门教程23:A站视频的爬取,解密m3u8视频格式Python爬虫入门教程24:下载某网站付费文档保存PDFPython爬虫入门教程25:绕过JS加密参数,实现批量下载抖某音无水印视频内容Python爬虫入门教程26:快手视频网站数据内容下载Python爬虫入门教程27:爬取某电商平台数据内容并做数据可视化Python爬虫入门教程28:爬取微博热搜榜并做动态数据展示Python爬虫
- 直播源格式转换教程——rtmp/rtsp/http/m3u8!!
weixin_30418341
php
之前寻找直播源,发现好多rtmp开头的,或者是rtsp开头的,但是ATV里面的个人链接是支持m3u8格式的。怎么办?小编发现了几个规律,网友可作参考。现在流行的直播地址差不多就这几种需要说明的是并不是所有的地址改成这样都能播需要自己测试。测试的,可用软件,具体参考:
- 前端vue播放m3u8、flv、mp4视频的方法_vue mp4(1)
2401_84437982
程序员前端vue.js音视频
//this.db.src([//{//src:“https://e-sign.dms.t.cn-np.com/files/m3u8_file/c4b94118-3c8d-4410-9987-985c2b44c278/c4b94118-3c8d-4410-9987-985c2b44c278.m3u8”,//地址//type:“application/x-mpegURL”,//告诉videojs,这
- 【React】react实现前端播放m3u8格式视频
ah_biao
前端react视频处理hls
DPlayer文档:http://dplayer.js.org导入依赖yarnadddplayerhls.js在头部引入依赖importDPlayerfrom'dplayer'constHls=require('hls.js')新建一个div初始化播放器componentDidMount(){video=newDPlayer({container:document.getElementById('
- 【Python】 Python脚本实现某平台视频流下载
音乐学家方大刚
Python爬虫pythonchrome开发语言
亲爱的玛丽我会想念着你我是多么的讨厌分离加油站旁的海鸥机场路上的松柏挥挥手眼泪就落下来我多想和那些光阴永远住下来我不能我不能赵雷《玛丽》在视频内容的分发上,m3u8格式的视频流越来越常见。它将视频切分成多个小片段(TS文件),然后通过索引文件(m3u8文件)来组织播放顺序,有效地支持了视频的流式传输。这篇博客将引导您使用Python脚本来下载m3u8格式的视频流,并将其合并成一个单一的视频文件。准
- C#/.Net 多线程下载m3u8视频
weixin_42199478
c#.net.netcore
C#/.Net多线程下载m3u8视频下载网络文件方法下载m3u8.HttpGet()是我自己封装的HTTP请求方法下载网络文件方法//////下载网络文件//////文件地址///保存路径publicstaticvoidDownloadFile(thisstringurl,stringsavePath){WebClientwc=newWebClient();//从路径中取得文件名称varname=
- Mysql常用命令
有条理hac
mysql数据库
Mysql常用命令下载远程的查询到的数据到本地(在哪个文件夹下执行就保存到哪个文件夹下):mysql-h10.172.*-uroot-pxxx-Alittlec_*-e"select*fromt_m3u8_*;">test.csv
- 带tkinter界面的m3u8单程下载
卡卡啦啦_
采用tkinter模块搭建GUI界面image代码如下:importrequestsfromtkinterimport*header={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/76.0.3809.132Safari/537.36'}defts_url():
- java 多线程m3u8下载
小百菜
javajava多线程m3u8下载m3u8m3u8多线程下载Javam3u8m3u8下载
某些时候你需要代理,手机很多电脑比较少,手机分享网络,推荐com.icecoldapps.proxyserver。手机电脑需要在同一路由器(或者电脑连手机的热点)。在代码第一行加上如下代码://使用代理服务器System.getProperties().setProperty("proxySet","true");//代理服务器地址System.getProperties().setPropert
- html5播放 m3u8
R谢荣
html5javascript
注意:m3u8地址要为网络地址,直接把代码复制为html直接在本地打开,可能不行,需要放在nginx或者apache或者其他的web服务器上运行。测试播放m3u8videojs('videoPlayer',{});
- 教你如何把M3U8转换成MP4丨NueXini M3U8 Downloader
NueXini
前言:(有关问题)将m3u8文件转换为MP4文件如何把m3u8格式转换成mp4格式?教你如何把M3U8转换成MP4丨NueXiniM3U8Downloaderm3u8文件转成MP4的方法(简易)准备工具:https://www.lanzous.com/i1eb19g-------------------------------------------------------------------
- Python电影下载利器:全网资源一键触达
知白守黑V
网络技术Python人工智能python开发语言python电影下载python资源下载python资源python库python下载工具
本文分享给大家的是一款全网电影下载利器,采用requests库开发,支持下载各大网站的m3u8格式视频。与一般下载工具不同,该工具具备强大的功能,能够完整地下载整个电影,并保存为mp4格式文件。传统下载工具如IDM通常只能下载视频片段,而这款工具却能够轻松应对整部电影的下载需求。安装Python库:pip install requests tqdm# 引入必要的库import requestsim
- vue使用Mars3d弹框嵌套video视频/实时视频(m3u8)使用hls.js
Uxiao7
vue.js音视频前端
下载hls.jshttp://mars3d.cn/lib/video/hls/hls.js下载1.首先绘制地图我使用的天地图asyncinfoMars3d(){constthat=this;varmapOptions={scene:{center:{lat:30.435192,lng:103.936535,alt:200000,heading:359,pitch:-79},highDynamicR
- vue使用Mars3d弹框嵌套video视频/实时视频(flv) 使用jessibuca.js播放器
Uxiao7
javascriptvue.js音视频
在html引入jessibuca.js(还需下载decoder.js,decoder.wasm)http://jessibuca.monibuca.com/player.html官方下载同Mars3d弹框嵌套视频播放m3u8前面相同1.播放flv视频data:{listOpen:true,playing:false,isNotMute:false,quieting:false,fullscreen
- python视频播放列表信息库之m3u8使用详解
Rocky006
python开发语言
m3u8库是什么?m3u8是一个用于解析和操作M3U8文件的Python库。M3U8文件,是指使用UTF-8编码格式的M3U文件,它们通常用于播放列表文件,尤其是在HTTPLiveStreaming(HLS)中。简单来说,m3u8库能帮助你读取和编辑存储视频播放列表信息的文件。为什么要使用m3u8库?在视频流技术中,M3U8文件扮演着至关重要的角色。它允许视频内容提供者将一个大视频分割成多个小片段
- Docker nginx容器代理播放m3u8视频文件(HLS)
Dontla
音视频nginxdockerdockernginx容器
文章目录DockerNginx容器代理播放M3U8文件教程获取NginxDocker镜像设置Nginx配置文件用ffmpeg将MP4文件转换成m3u8文件运行Docker容器测试M3U8流其他问题我用vlc都能播放http://192.168.121.50/forest4kTest.m3u8和http://192.168.121.50/forest4kTest.mp4,那还要m3u8做什么,直接播
- (十一)ATP应用测试平台——使用vue-video-player视频播放组件实现网页视频流的播放案例实战
厉害哥哥吖
#JSATP应用测试平台#vue前端vue.js视频处理
前言在网页中播放视频也是我们经常要使用到的功能,例如设备监控的视频流实时播放,MP4、m3u8等视频资源播放等等,在vue项目中,我们可以使用目前封装好的开源组件vue-video-player实现上述的要求。本节我们就详细讲解一下如何使用vue-video-player组件实现视频资源的播放,这里特别要说明的一点是关于本节内容中后端视频资源接口需要特殊处理,否则返回给前端的视频资源无法快进或者后
- m3u8视频下载
卡卡啦啦_
单线程下载ts视频流首先导入requests,re库采用python内置库open进行保存示范代码如下:importrequestsimportreheader={'User-Agent':'Mozilla/5.0(Macintosh;IntelMacOSX10_14_2)AppleWebKit/537.36(KHTML,likeGecko)Chrome/71.0.3578.98Safari/53
- XC-13 在线学习HLS
刘广瀚
学习网络
文章目录在线学习需求分析需求描述视频点播解决方案流媒体点播方案视屏编码视频编码格式FFmpeg的基本使用生成m3u8/ts文件码率的设置播放器技术选型下载video.js搭建媒体服务器Nginx媒体服务器媒体服务器代理测试video.js搭建学习中心前端界面原型创建学习中工程配置域名访问调试视频播放页面媒资管理需求分析开发环境创建媒资数据创建媒资服务工程上传文件断点续传解决方案文件分块与合并文件分
- 记录使用ffmpeg下载m3u8转成mp4时遇到的问题
梁典典
先上报错[hls,applehttp@0x55efcdf226c0]Couldnotfindcodecparametersforstream0(Video:png,none(pc)):unspecifiedsizeConsiderincreasingthevalueforthe'analyzeduration'and'probesize'optionsInput#0,hls,applehttp,f
- 帝国CMS7.5自适应HTML5视频收费播放下载新闻资讯门户自适应手机整站模板
很酷的站长
源码大全帝国CMS视频网站源码
(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买)采用帝国CMS新版核心制作,安全可靠,性能优越。所有操作均为后台操作,无需懂得代码,即可通过简单的配置来排版首页调用!默认SEO已经处理好,无需模板上再进行处理。多种栏目列表样式满足各种栏目频道风格需要,自带MP4M3U8等通用多终端播放功能,并能实现权限
- Flutter 各种Demo效果合集
庞哈哈12138
flutter
Flutter各种Demo实现效果:github:GitHub-PangHaHa12138/FlutterDemo:Flutter各种Demo效果合集1:2种仿朋友圈效果,顶部拉伸和不拉伸2:仿抖音上下滑动视频播放3:视频直播(使用的电视台的m3u8格式直播)4:拍照和录像功能5:拟物化UI6:俄罗斯方块7:Googlechrome断网小恐龙彩蛋游戏8:3D效果实现9:App内全局悬浮窗视频播放1
- 如何下载m3u8的视频
你飞哥也编程了
m3u8视频下载
使用默认浏览器,搜索扩展工具猫抓,安装后转到下载视频页面,进行下载即可如果用猫抓解析后的文件还是.m3u8,则点击文件的解析选项,在跳转页面中点击合并下载即可
- ffmpeg分割视频
somgl
其他音视频ffmpeg
1.分割视频ffmpeg-fflags+genpts-i1.mp4-fsegment-segment_time60-segment_formatmpegts-segment_list./test.m3u8-ccopy-bsf:vh264_mp4toannexb-map0./test_%05d.mp4格式说明:-fflags+genpts输出pts信息-i1.mp4输入文件-ccopy复制流文件-b
- vue项目使用easyplayer播放m3u8直播推流
RyzenVega
vue.js前端javascript
官网青犀视频代码库/示例/demoEasyPlayer示例效果:项目背景如图后端给了m3u8的直播地址协议是hls/flv市面上很多第三方热门播放库都可以完成该多屏播放方式如Video.js问题在于分多屏时会存在性能问题并且关闭播放器后即便删除Dom或调用停止等方法F12网络还在不断的请求分片故采用该库Easyplayer该库使用方便性能较好文档清晰几乎0上手成本1.安装npminstall@ea
- 记录疑点理解--blob url视频
jacGJ
springboot音视频
1.场景目前绝大多数的视频网站均以blob形式作为视频的src。刚开始以为是blob对视频地址进行了加密。那么到底是怎么加密的。2.理解blob并没有对地址进行了加密。使用blob的好处,在于可以即时加载、切换码率、干扰爬虫、暴力下载。感觉上是加密了,其实是地址的另一种形式。(如果理解有误,欢迎评论指出。)补充:blob访问了.m3u8文件,.m3u8是视频的索引文件,是一个文本文件,并非视频文件
- 如何获取一个直播的url
biyu6
搞m3u8的直播测试,在优酷上抓不到;还好在中国网络电视台上抓到了,方法如下:1.打开中国网络电视台:http://tv.cctv.com/live/2.选择直播栏目,随便找一个在直播的节目3.右键--检查图1.png4.选择机型5.选择Network下面的小漏斗6.刷新网页7.点击播放视频8.看图注释图2.png
- nginx+nginx-rtmp-module+ffmpeg进行局域网推流rtmp\m3u8
.net亦洪
视频监控nginxffmpeg运维
局域网推流的简单方式这里以ubuntu为例一、先下载安装包nginx、nginx-rtmp-module,再一起安装#下载nginx#这里我安装的是nginx-1.10.3版本cd/usr/softwarewgethttp://nginx.org/download/nginx-1.25.0.tar.gztar-zxvfnginx-1.25.0.tar.gz#下载nginx-rtmp-modulec
- JAVA基础
灵静志远
位运算加载Date字符串池覆盖
一、类的初始化顺序
1 (静态变量,静态代码块)-->(变量,初始化块)--> 构造器
同一括号里的,根据它们在程序中的顺序来决定。上面所述是同一类中。如果是继承的情况,那就在父类到子类交替初始化。
二、String
1 String a = "abc";
JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的对象,根
- keepalived实现redis主从高可用
bylijinnan
redis
方案说明
两台机器(称为A和B),以统一的VIP对外提供服务
1.正常情况下,A和B都启动,B会把A的数据同步过来(B is slave of A)
2.当A挂了后,VIP漂移到B;B的keepalived 通知redis 执行:slaveof no one,由B提供服务
3.当A起来后,VIP不切换,仍在B上面;而A的keepalived 通知redis 执行slaveof B,开始
- java文件操作大全
0624chenhong
java
最近在博客园看到一篇比较全面的文件操作文章,转过来留着。
http://www.cnblogs.com/zhuocheng/archive/2011/12/12/2285290.html
转自http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html
一.获得控制台用户输入的信息
&nbs
- android学习任务
不懂事的小屁孩
工作
任务
完成情况 搞清楚带箭头的pupupwindows和不带的使用 已完成 熟练使用pupupwindows和alertdialog,并搞清楚两者的区别 已完成 熟练使用android的线程handler,并敲示例代码 进行中 了解游戏2048的流程,并完成其代码工作 进行中-差几个actionbar 研究一下android的动画效果,写一个实例 已完成 复习fragem
- zoom.js
换个号韩国红果果
oom
它的基于bootstrap 的
https://raw.github.com/twbs/bootstrap/master/js/transition.js transition.js模块引用顺序
<link rel="stylesheet" href="style/zoom.css">
<script src=&q
- 详解Oracle云操作系统Solaris 11.2
蓝儿唯美
Solaris
当Oracle发布Solaris 11时,它将自己的操作系统称为第一个面向云的操作系统。Oracle在发布Solaris 11.2时继续它以云为中心的基调。但是,这些说法没有告诉我们为什么Solaris是配得上云的。幸好,我们不需要等太久。Solaris11.2有4个重要的技术可以在一个有效的云实现中发挥重要作用:OpenStack、内核域、统一存档(UA)和弹性虚拟交换(EVS)。
- spring学习——springmvc(一)
a-john
springMVC
Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)实现,能够帮助我们构建像Spring框架那样灵活和松耦合的Web应用程序。
1,跟踪Spring MVC的请求
请求的第一站是Spring的DispatcherServlet。与大多数基于Java的Web框架一样,Spring MVC所有的请求都会通过一个前端控制器Servlet。前
- hdu4342 History repeat itself-------多校联合五
aijuans
数论
水题就不多说什么了。
#include<iostream>#include<cstdlib>#include<stdio.h>#define ll __int64using namespace std;int main(){ int t; ll n; scanf("%d",&t); while(t--)
- EJB和javabean的区别
asia007
beanejb
EJB不是一般的JavaBean,EJB是企业级JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean,书写EJB是需要遵循一定的规范的,具体规范你可以参考相关的资料.另外,要运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了
1.EJB用于服务端应用开发, 而JavaBeans
- Struts的action和Result总结
百合不是茶
strutsAction配置Result配置
一:Action的配置详解:
下面是一个Struts中一个空的Struts.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
&quo
- 如何带好自已的团队
bijian1013
项目管理团队管理团队
在网上看到博客"
怎么才能让团队成员好好干活"的评论,觉得写的比较好。 原文如下: 我做团队管理有几年了吧,我和你分享一下我认为带好团队的几点:
1.诚信
对团队内成员,无论是技术研究、交流、问题探讨,要尽可能的保持一种诚信的态度,用心去做好,你的团队会感觉得到。 2.努力提
- Java代码混淆工具
sunjing
ProGuard
Open Source Obfuscators
ProGuard
http://java-source.net/open-source/obfuscators/proguardProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, m
- 【Redis三】基于Redis sentinel的自动failover主从复制
bit1129
redis
在第二篇中使用2.8.17搭建了主从复制,但是它存在Master单点问题,为了解决这个问题,Redis从2.6开始引入sentinel,用于监控和管理Redis的主从复制环境,进行自动failover,即Master挂了后,sentinel自动从从服务器选出一个Master使主从复制集群仍然可以工作,如果Master醒来再次加入集群,只能以从服务器的形式工作。
什么是Sentine
- 使用代理实现Hibernate Dao层自动事务
白糖_
DAOspringAOP框架Hibernate
都说spring利用AOP实现自动事务处理机制非常好,但在只有hibernate这个框架情况下,我们开启session、管理事务就往往很麻烦。
public void save(Object obj){
Session session = this.getSession();
Transaction tran = session.beginTransaction();
try
- maven3实战读书笔记
braveCS
maven3
Maven简介
是什么?
Is a software project management and comprehension tool.项目管理工具
是基于POM概念(工程对象模型)
[设计重复、编码重复、文档重复、构建重复,maven最大化消除了构建的重复]
[与XP:简单、交流与反馈;测试驱动开发、十分钟构建、持续集成、富有信息的工作区]
功能:
- 编程之美-子数组的最大乘积
bylijinnan
编程之美
public class MaxProduct {
/**
* 编程之美 子数组的最大乘积
* 题目: 给定一个长度为N的整数数组,只允许使用乘法,不能用除法,计算任意N-1个数的组合中乘积中最大的一组,并写出算法的时间复杂度。
* 以下程序对应书上两种方法,求得“乘积中最大的一组”的乘积——都是有溢出的可能的。
* 但按题目的意思,是要求得这个子数组,而不
- 读书笔记-2
chengxuyuancsdn
读书笔记
1、反射
2、oracle年-月-日 时-分-秒
3、oracle创建有参、无参函数
4、oracle行转列
5、Struts2拦截器
6、Filter过滤器(web.xml)
1、反射
(1)检查类的结构
在java.lang.reflect包里有3个类Field,Method,Constructor分别用于描述类的域、方法和构造器。
2、oracle年月日时分秒
s
- [求学与房地产]慎重选择IT培训学校
comsci
it
关于培训学校的教学和教师的问题,我们就不讨论了,我主要关心的是这个问题
培训学校的教学楼和宿舍的环境和稳定性问题
我们大家都知道,房子是一个比较昂贵的东西,特别是那种能够当教室的房子...
&nb
- RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
daizj
oraclermanfilespersetPARALLELISM
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系 转
PARALLELISM ---
我们还可以通过parallelism参数来指定同时"自动"创建多少个通道:
RMAN > configure device type disk parallelism 3 ;
表示启动三个通道,可以加快备份恢复的速度。
- 简单排序:冒泡排序
dieslrae
冒泡排序
public void bubbleSort(int[] array){
for(int i=1;i<array.length;i++){
for(int k=0;k<array.length-i;k++){
if(array[k] > array[k+1]){
- 初二上学期难记单词三
dcj3sjt126com
sciet
concert 音乐会
tonight 今晚
famous 有名的;著名的
song 歌曲
thousand 千
accident 事故;灾难
careless 粗心的,大意的
break 折断;断裂;破碎
heart 心(脏)
happen 偶尔发生,碰巧
tourist 旅游者;观光者
science (自然)科学
marry 结婚
subject 题目;
- I.安装Memcahce 1. 安装依赖包libevent Memcache需要安装libevent,所以安装前可能需要执行 Shell代码 收藏代码
dcj3sjt126com
redis
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。
异常一:
make[2]: cc: Command not found
异常原因:没有安装g
- 并发容器
shuizhaosi888
并发容器
通过并发容器来改善同步容器的性能,同步容器将所有对容器状态的访问都串行化,来实现线程安全,这种方式严重降低并发性,当多个线程访问时,吞吐量严重降低。
并发容器ConcurrentHashMap
替代同步基于散列的Map,通过Lock控制。
&nb
- Spring Security(12)——Remember-Me功能
234390216
Spring SecurityRemember Me记住我
Remember-Me功能
目录
1.1 概述
1.2 基于简单加密token的方法
1.3 基于持久化token的方法
1.4 Remember-Me相关接口和实现
- 位运算
焦志广
位运算
一、位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&am
- nodejs 数据库连接 mongodb mysql
liguangsong
mongodbmysqlnode数据库连接
1.mysql 连接
package.json中dependencies加入
"mysql":"~2.7.0"
执行 npm install
在config 下创建文件 database.js
- java动态编译
olive6615
javaHotSpotjvm动态编译
在HotSpot虚拟机中,有两个技术是至关重要的,即动态编译(Dynamic compilation)和Profiling。
HotSpot是如何动态编译Javad的bytecode呢?Java bytecode是以解释方式被load到虚拟机的。HotSpot里有一个运行监视器,即Profile Monitor,专门监视
- Storm0.9.5的集群部署配置优化
roadrunners
优化storm.yaml
nimbus结点配置(storm.yaml)信息:
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional inf
- 101个MySQL 的调节和优化的提示
tomcat_oracle
mysql
1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAID(注:Redundant Arrays of Inexpensive Disks,即磁盘阵列
- zoj 3829 Known Notation(贪心)
阿尔萨斯
ZOJ
题目链接:zoj 3829 Known Notation
题目大意:给定一个不完整的后缀表达式,要求有2种不同操作,用尽量少的操作使得表达式完整。
解题思路:贪心,数字的个数要要保证比∗的个数多1,不够的话优先补在开头是最优的。然后遍历一遍字符串,碰到数字+1,碰到∗-1,保证数字的个数大于等1,如果不够减的话,可以和最后面的一个数字交换位置(用栈维护十分方便),因为添加和交换代价都是1