原题https://vjudge.net/problem/CodeForces-1144D

/*求序列就经过几次step变成同一个数,
其实能发现一个数经过step1或者step2变成相邻的数,
所以要经过最小次数变成同一个数字,
就是先求出出现次数最多的数字,然后把所有的其他数字都变成这个数字。
注意,出现次数最多的数字可能不相邻,序列是乱序的。
先记录数字的位置,然后从该位置往前遍历序列,
比这个数字大,就执行step2,比这个数字小,就执行step1,
结束后,再从该位置往后遍历,比这个数字大,就执行step2,比这个数字小,就执行step1. 输出中 第一行是进行了几次操作
第二行 第一个数字 进行的操作的代号 第二个和第三个是进行操作的两个数字*/
#include<bits/stdc++.h>
using namespace std;
const int MAX=2e5+;
int a[MAX],b[MAX];
int main() {
int n;
cin>>n;
int maxx=,num,pos=;
for(int i=; i<=n; i++) {
cin>>a[i]; //a[i]为输入的数字
b[a[i]]++; //b[a[i]] 记录相应数字出现的次数
if(b[a[i]]>maxx) {
maxx=b[a[i]]; //出现次数最多的
pos=i; //标记位置
}
}
cout<<n-b[a[pos]]<<endl;
if(pos>) {
for(int j=pos-; j>=; j--) {
if(a[j]==a[pos]) continue;
if(a[j]>a[j+])cout<<<<" "<<j<<" "<<j+<<endl;
else cout<<<<" "<<j<<" "<<j+<<endl;
a[j]=a[pos];
}
}
for(int k=pos+; k<=n; k++) {
if(a[k]==a[pos])continue;
if(a[k]>a[k-])cout<<<<" "<<k<<" "<<k-<<endl;
else cout<<<<" "<<k<<" "<<k-<<endl;
a[k]=a[pos];
}
return ;
}

CodeForces 1144D的更多相关文章

  1. CF550 DIV3

    A - Diverse Strings CodeForces - 1144A A string is called diverse if it contains consecutive (adjace ...

  2. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  3. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  4. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  5. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  6. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  7. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

  8. CodeForces - 261B Maxim and Restaurant

    http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...

  9. CodeForces - 696B Puzzles

    http://codeforces.com/problemset/problem/696/B 题目大意: 这是一颗有n个点的树,你从根开始游走,每当你第一次到达一个点时,把这个点的权记为(你已经到过不 ...

随机推荐

  1. 五种编程语言解释数据结构与算法——顺序表2(java与C++语言实现)

    5.java实现方式: 5.1.顺序表的抽象结构 package com.xgp.顺序表; public interface MyList<T> { //1. initList(& ...

  2. Java学习之String、StringBuffer、StringBuilder

    String 我们知道字符串的分配和其他对象分配一样,是需要消耗高昂的时间和空间的,而且字符串我们使用的非常多.JVM为了提高性能和减少内存的开销,在实例化字符串的时候进行了一些优化:使用字符串常量池 ...

  3. C语言再学习part3—算法

    君子远庖厨,万物皆备于我.—孟子 这篇文章主要总结程序的主要要素,以及程序的构成是什么样子的.最后说说我学到的一种奇特的表示算法的方式—伪代码. 让我们开始吧! 一个程序应该包括以下两个主要要素: 1 ...

  4. 【redis】spring boot利用redis的Keyspace Notifications实现消息通知

    前言 需求:当redis中的某个key失效的时候,把失效时的value写入数据库. github: https://github.com/vergilyn/RedisSamples 1.修改redis ...

  5. const 函数

    const int *p   // 修饰*p ,p指针可以变,但是*p的值不变 例子: int a = 5; int b = 10; const *p = &a; *p = 10: // 不可 ...

  6. Mac IDEA 2019.3.1下载及破解,可激活至2089年

    背景 目前IDEA已更新到2019.3.3,但是下载这个版本后使用目前网上的常见破解方法会出现各种问题.比如使用注册码方式提示license key is in legacy format,或者使用L ...

  7. LVS负载均衡工作模式和调度算法

    原文链接:https://blog.csdn.net/weixin_40470303/article/details/80541639 一.LVS简介 LVS(Linux Virtual Server ...

  8. 获取redis cluster中所有节点的内存使用情况

    需求:获取redis cluster集群中所有节点的内存使用情况. ip_port=`redis-cli -h $ -p $ -a abc123 -c cluster nodes | awk '{pr ...

  9. centos6/7 下升级openssl并安装python3

    今天是2019年的最后一天了,看了看自己今年写的随笔就一篇,实在有点少得可怜,就想着趁现在有点时间就再写一篇,^_^ centos6 或者centos 7 python 默认都是安装python 2 ...

  10. 【python语法基础-经典练习题】python语法基础练习题01---商场打折

    # 1.一家商场在降价促销.如果购买金额50-100元(包含50元和100元)之间,会给10%的折扣(打九折),# 如果购买金额大于100元会给20%折扣.编写一程序,询问购买价格,再显示出折扣(%1 ...