原题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. 安装Nginx到Linux(源码)

    运行环境 系统版本:无 软件版本:无 硬件要求:无 安装过程 NGINX官方提供源码包的下载,NGINX有两个版本Mainline(主线)版和Stable(稳定)版.主线版本我们可以理解为是开发版本, ...

  2. 【python基础语法】第3天作业练习题

    ''' .将给定字符串的PHP替换为Python best_language = "PHP is the best programming language in the world! &q ...

  3. matplotlib制作图表数据

    import matplotlib.pyplot as plt import matplotlib fig=plt.figure() labels=['陆地','海洋'] data=[29,71] p ...

  4. 论文阅读笔记(十六)【AAAI2018】:Region-Based Quality Estimation Network for Large-Scale Person Re-Identification

    Introduction (1)Motivation: 当前的行人重识别方法都只能在标准的数据集上取得好的效果,但当行人被遮挡或者肢体移动时,往往效果不佳. (2)Contribution: ① 提出 ...

  5. 使用centos6.5整理出来的常用命令

    1.Vi 基本操作1) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi myfile 进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插 ...

  6. Java教程-修炼

    在2020这个特殊的时期,在家就是为国家做贡献!一切都会好起来的,加油中国!! Java 第一章 Java概述 1.1 Java历史 1.2 Java语言最主要的特点 1.3 Java环境搭建 1.3 ...

  7. 关于MySQL数据库中null的那些事

    在mysql数据库中,null是一个经常出现的情况,关于mysql中的null,有哪些注意事项呢?下面简单总结归纳下,后续会不断补充. 1. is null 首先判断数据库中某一列的值是否为null, ...

  8. Hdu1042 N! (阶乘高精度模板)

    Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!   Input One N in ...

  9. 精心收集java基础106条

    Java基础 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 一个Java源文件中可以定义多个类,但最多只能定义一个public的类,并且public ...

  10. JAVA将图片(本地或者网络资源)转为Base64字符串,将base64字符串存储为本地图片

    代码如下: package com.futuredata.dataservice.util; import java.io.ByteArrayOutputStream; import java.io. ...