YAML (Yet Another Markup Language) - Kummer话你知

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YAML (Yet Another Markup Language) - Kummer话你知相关的知识,希望对你有一定的参考价值。

参考技术A

YAML是一个标记语言, 读音 "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

Yet Another Broken Keyboard