题意:求经过多少次操作可以使得序列达到给定状态。

思路:

好像和\(CF\)某次比赛的题差不多啊。。。

差分统计每个点的值,将临近的\(+1\)和\(-1\)匹配即可。

#include <bits/stdc++.h>
using namespace std;
inline int read () {
int q=0,f=1;char ch = getchar();
while(!isdigit(ch)){
if(ch=='-')f=-1;ch=getchar();
}
while(isdigit(ch)){
q=q*10+ch-'0';ch=getchar();
}
return q*f;
}
int c[100010];
int mark[100010];
int cnt;
int L[100010];
int n;
int ans;
int main () {
freopen("range.in","r",stdin);
freopen("range.out","w",stdout);
n = read();
for(int i = 1;i <= n; ++i) {
c[i] = read();
if(c[i] > c[i - 1])
ans += c[i] - c[i - 1];
}
printf("%d\n",ans);
for(int i = 1;i <= n + 1; ++i) {
if(c[i] > c[i - 1]) {
int k = c[i] - c[i - 1];
for(int j = 1;j <= k; ++j) {
L[++cnt] = i;
}
}
if(c[i] < c[i - 1]) {
int k = c[i - 1] - c[i];
for(int j = 1;j <= k; ++j) {
printf("%d %d\n",L[cnt],i - 1);
cnt --;
}
}
}
return 0;
}

[JZOJ 5812] 区间的更多相关文章

  1. JZOJ 5812. 【NOIP提高A组模拟2018.8.14】 区间

    5812. [NOIP提高A组模拟2018.8.14] 区间 (File IO): input:range.in output:range.out Time Limits: 1000 ms  Memo ...

  2. [jzoj 5770]【2018提高组模拟A组8.6】可爱精灵宝贝 (区间dp)

    传送门 Description Branimirko是一个对可爱精灵宝贝十分痴迷的玩家.最近,他闲得没事组织了一场捉精灵的游戏.游戏在一条街道上举行,街道上一侧有一排房子,从左到右房子标号由1到n. ...

  3. [JZOJ 5807] 简单的区间

    题目: 求有多少组二元组\((l,r)\)使得:\(1<=l<=r<=n,k|f(l,r)\) \(f(l,r) = \sum_{i=l}^{r}a_i - max_{i=l}^{r ...

  4. [JZOJ]1293.气象牛[区间DP]

    Description 为了研究农场的气候,Betsy帮助农夫John做了N(1 <= N <= 100)次气压测量并按顺序记录了结果M_1-M_N(1 <= M_i <= 1 ...

  5. [jzoj]1383.奇怪的问题

    Link https://jzoj.net/senior/#main/show/1383 Problem Alice总是会提出很多奇怪的问题,一天他让他的朋友Bob跟他一起研究一个奇怪的问题.问题是: ...

  6. [jzoj]3521.道路覆盖(cover)

    Link https://jzoj.net/senior/#main/show/3521 Description Tar把一段凹凸不平的路分成了高度不同的N段,并用H[i]表示第i段高度.现在Tar一 ...

  7. JZOJ 5922. sequence

    5922. [NOIP2018模拟10.23]sequence (File IO): input:sequence.in output:sequence.out Time Limits: 1000 m ...

  8. JZOJ 5919. 逛公园

    Description            琥珀色黄昏像糖在很美的远方,思念跟影子在傍晚一起被拉长……Description      小 B 带着 GF 去逛公园,公园一共有 n 个景点,标号为 ...

  9. JZOJ 3521. 道路覆盖

    Description ar把一段凹凸不平的路分成了高度不同的N段,并用H[i]表示第i段高度.现在Tar一共有n种泥土可用,它们都能覆盖给定的连续的k个部分. 对于第i种泥土,它的价格为C[i],可 ...

随机推荐

  1. “二维数组”?

    首先说明C中是不存在所谓的"多维数组"的. int array[a][b]:声明的是一个有a个元素的数组,每个数组元素是一个含b个元素的数组. 上述声明正确的说法是,数组的数组. ...

  2. Shiro学习(3)授权

    授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等).在授权中需了解的几个关键对象:主体(Subject).资源(Resource).权限(Permission).角 ...

  3. Android中对应用程序的行为拦截实现方式概要

    这次是真的好长时间都没有写博客了,主要不是因为工作上的事,主要还是这个问题真的有点复杂,实现起来有点麻烦,所以研究了很长时间(大约有一个月的时间).但是幸好最后问题搞定了~~ 一.问题场景 想实现36 ...

  4. DLL中使用字符串时的注意事项。

    library dll1; uses SysUtils, Classes; {$R *.res} function TESTDLL:string;stdcall; begin Result:='tes ...

  5. csdn左侧个人栏目美化,css英文颜色大全,跑马灯效果,点击转到qq联系,点击转到发送邮件。

    跑马灯效果: <a href="http://mmmmmm.me" target="_blank"><marquee><font ...

  6. 前端(十四)—— JavaScript常用类:Number、Date类、字符串、数组、Math类、正则

    JS常用类:Number类.Date类.Math类.字符串.数组.正则 一.Number 1.常用数字 整数:10 小数:3.14 科学计数法:1e5 | 1e-5 正负无穷:Infinity | - ...

  7. Java标准输入/输出/错误流

    只要使用OutputStream对象就可使用System.out和System.err对象引用.只要可以使用InputStream对象就可以使用System.in对象. System类提供了三个静态设 ...

  8. vim + ctag + Taglist (转)

    一.ctag 当然,第一步就是要下载它!一条命令搞定: $sudo apt-get install ctags 如果不幸提示找不到软件包ctags,首先你也许应该update一下你的软件源,还不行的话 ...

  9. hdu6331 /// Floyd+分块DP

    题目大意: 给定单向图的n m 为点数和单向边数 接下来m行给定 u v w 为边的起点终点和长度 给定q 为询问个数 接下来q行给定 x y k 求从x到y至少经过k条边的最短路长度 https:/ ...

  10. lca 倍增模版

    ; void dfs(int u,int fa){ d[u]=d[fa]+; p[u][]=fa; ;i<POW;i++) p[u][i]=p[p[u][i-]][i-]; int sz=edg ...