题目:

分析:每次都需要看题解才能做出来!

扫了几眼这个题解:

代码:

#include<bits/stdc++.h>
using namespace std;
string s;
int m;
int A[200005];
struct node{int x,y;int v;bool operator < (const node & n) const{if(v!=n.v) return v>n.v;return x>n.x;}
};
vector<int> v;
priority_queue<node> pq;
int main()
{cin>>m;cin>>s;for(int i=0;i<m;i++) scanf("%d",&A[i]);struct node nn;for(int i=1;i<m;i++){if(s[i-1]!=s[i]){nn.x=i-1;nn.y=i;nn.v=abs(A[i-1]-A[i]);pq.push(nn);}}while(!pq.empty()){nn=pq.top();pq.pop();if(s[nn.x]=='0'||s[nn.y]=='0') continue;v.push_back(nn.x+1);v.push_back(nn.y+1);s[nn.x]='0';s[nn.y]='0';int b=nn.x-1;int e=nn.y+1;while(b>=0&&s[b]=='0') b--;while(e<s.size()&&s[e]=='0') e++;if(b<0||e==s.size()) continue;if(s[b]==s[e]) continue;nn.x=b;nn.y=e;nn.v=abs(A[b]-A[e]);pq.push(nn);  }cout<<v.size()/2<<endl;for(int i=0;i<v.size();i++,i++){cout<<v[i]<<' '<<v[i+1]<<endl;}
}

注意,优先队列自定义符号方向与一般的刚好相反,

洛谷:P1878 舞蹈课(普及/提高-,stl,堆)相关推荐

  1. 洛谷 P1878 舞蹈课 —— 小顶堆

    This way 题意: 有 n个人参加一个舞蹈课.每个人的舞蹈技术由整数来决定.在舞蹈课的开始,他们从左到右站成一排.当这一排中至少有一对相邻的异性时,舞蹈技术相差最小的那一对会出列并开始跳舞.如果 ...

  2. 洛谷p2655 2038年问题 普及/提高- 模拟

    #include<iostream> #include<cstdio> using namespace std; int months[2][12]={31,28,31,30, ...

  3. 洛谷P1003 铺地毯 noip2011提高组day1T1

    洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...

  4. 信息学奥赛一本通 1981:【18NOIP普及组】对称二叉树 | 洛谷 P5018【NOIP2018 普及组】 对称二叉树

    [题目链接] ybt 1981:[18NOIP普及组]对称二叉树 洛谷 P5018[NOIP2018 普及组] 对称二叉树 [题目考点] 二叉树 [解题思路] 先求出二叉树中各子树的结点数 遍历二叉树 ...

  5. #洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯

    洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯 #题目描述 #一看很明显是贪心算法 加排序 因为 这个中间最大值的那一对肯定是不会在一起的 从大到小来看 所有点对都尽量不要在一个监狱 # ...

  6. 洛谷P2286 [HNOI2004]宠物收养所 [STL,平衡树]

    题目传送门 宠物收养所 题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的 ...

  7. 洛谷-神奇的幻方-NOIP2015提高组复赛

    题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...

  8. [洛谷]P1978 集合 (#数学 -1.3)(#STL -1.1)

    题目描述 集合是数学中的一个概念,用通俗的话来讲就是:一大堆数在一起就构成了集合.集合有如 下的特性: •无序性:任一个集合中,每个元素的地位都是相同的,元素之间是无序的. •互异性:一个集合中,任何 ...

  9. 【洛谷】P1008 [NOIP1998 普及组] 三连击

    [NOIP1998 普及组] 三连击 题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序. 题目描述 将 1,2,-,91, 2, \ldots ...

  10. 洛谷:P1042 [NOIP2003 普及组] 乒乓球 C++详解

    题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中 11 分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位,他 ...

最新文章

  1. transform: scale(x,y)
  2. May 18:PHP 用到的学习工具
  3. ABAP计算间隔月份
  4. 在现代引擎游戏中使用正确的渲染打光流程
  5. 123. 买卖股票的最3佳时机 III
  6. mysql 授权用户_MySQL创建用户与授权
  7. Java Character.UnicodeBlock of()方法与示例
  8. 装mysql最后一步没响应_解决MySQL安装到最后一步未响应的三种方法
  9. jmeter 加密解密_AES加密的安全问题
  10. java struts2 xss_Apache Struts2提供的最新demo中几处XSS(不严谨啊!不严谨啊!)
  11. 免费获取Silverlight Stream Service Account
  12. 推荐系统:基于内容的推荐
  13. 字体引起的用户密码错误
  14. ​5项人工智能实例,令人惊叹!
  15. 电脑出现您的计算机配置似乎正确的,Win10提示你的计算机配置似乎是正确的怎么解决?...
  16. WithMath|无穷级数一:定义理解与正项级数
  17. 计算机windows用户名密码怎么查,电脑密码怎么查看? 从零教你查询方式
  18. 联想V310笔记本装win7系统不能打开无线网卡 无线网卡一把红叉
  19. 玩客云刷甜糖(2022-7-26亲测)
  20. Android本地视频出现无法播放此视频问题

热门文章

  1. 利用DISC工具进行自我情绪觉察与调试
  2. ORA-01045:user C##KD lacks CREATE SESSION privilege;logon denied
  3. 微软ios服务器,iOS 客户端入门
  4. sinx/cosx的泰勒展开式与库函数的比较
  5. MPU6050误差分析
  6. ks检验 matlab,KS检验
  7. 怎么用pr(Premiere)给视频添加水印
  8. Java Mission Control(JMC)介绍
  9. Guava--Joiner使用方式以及java8实现Joiner
  10. STM32入门指南(0)—配置开发环境