YAML (Yet Another Markup Language) - Kummer话你知
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YAML (Yet Another Markup Language) - Kummer话你知相关的知识,希望对你有一定的参考价值。
参考技术AYAML是一个标记语言, 读音 "yamel",或者"雅梅尔"。
类似于其他的标记语言一样,YAML希望能提供一个标准格式,用来存储复杂的结构化数据,YAML的设计者希望YAML能满足下面几个条件:
**用途: ** YAML经常用在数据的交换与存储方面,特别是这些数据同时需要人和机器都去访问的时候。比如配置文件、模型元数据文件等方面。
从上面我们可以看出,YAML要解决的问题实际上与XML和JSON等技术一样,那既然有了XML和JSON,为什么还需要YAML呢?
我想在机器处理上,XML和JSON应该都没有太大的短板,最大的问题在于方便人的处理上,比如XML,任何一个数据前后都要加上一个标签,这样对于人来说太繁琐。
XML格式的描述
YAML格式的描述,显然YAML格式对人来说更友好一些
说明: 另外,对于嵌套数据结构,YAML支持类似于Python的方式,使用缩进来代替Json或XML的各种括号或标签,在可阅读性方面有很大的改善。
实验地址: http://nodeca.github.io/js-yaml/
注: 上面的网站提供将YAML转换为JSON的在线工具。
在开始介绍YAML详细的语法前,我们先看一个例子,描述了几门程序设计语言课程与老师的信息,大家看看,即使不知道YAML语法,是不是大概也能猜出下面一段YAML说明了什么信息?
这是在YAML中使用#进行行注释
基本类型包括字符串型,数值型,bool型,空型,日期时间型等
默认行为: 字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。
等价于json str: \'这是 一个 多行 字符串\'
保留换行: |
等价于json str: \'这是\\n一个\\n多行\\n字符串\\n\'
折叠换行: >
等价于json str: \'这是 一个 多行 字符串\\n\'
末尾换行的去留: +(保留末尾换行) -(去除末尾换行)
等价于json str: \'这是 一个 多行 字符串\\n\\n\\n\', str2: \'这是 一个 多行 字符串\'
用true或false表示bool值,用~表示空值
整数或浮点数,就直接使用文字量描述,如12 或 3.1415926
日期采用复合 iso8601 格式的年、月、日表示
时间采用 ISO8601 格式。
YAML允许使用两个!!来表示强制类型转换,比如将bool类型的true转换为字符串类型的true
复杂一点的数据类型包括数组和Key/Value对
键值对用:隔开( 注:冒号后面要加一个空格 ),多个key/value对可以用来描述一个对象,比如
连词线开头的连续几行,则构成了一个数组,比如
对于嵌套数据结构,YAML支持两种方式
Educational Codeforces Round 88 (Rated for Div. 2) D. Yet Another Yet Another Task
题目链接:https://codeforces.com/contest/1359/problem/D
题解
枚举所有可能的情况,其中一定有一个是正确答案。
即每次枚举去掉的最大值,取最大连续子序列的和。
代码
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; int a[n] = {}; for (int i = 0; i < n; i++) cin >> a[i]; int ans = 0; for (int maxn = 30; maxn >= -30; maxn--) { int sum = 0; for (int i = 0; i < n; i++) { sum = max(0, sum) + a[i]; ans = max(ans, sum - maxn); } } cout << ans << " "; }
以上是关于YAML (Yet Another Markup Language) - Kummer话你知的主要内容,如果未能解决你的问题,请参考以下文章
D. Yet Another Yet Another Task (ST表模版 + 单调队列)
CF-1359 D. Yet Another Yet Another Task ST表+单调队列
CF-1359 D. Yet Another Yet Another Task ST表+单调队列
Educational Codeforces Round 88 (Rated for Div. 2) D. Yet Another Yet Another Task
Educational Codeforces Round 88 (Rated for Div. 2) D. Yet Another Yet Another Task