博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces - 996D Suit and Tie (暴力)
阅读量:2135 次
发布时间:2019-04-30

本文共 783 字,大约阅读时间需要 2 分钟。

题目大意:

       n个互不相同的数字,每个数字有两个,共2*n个数字,每次操作能够交换两个相邻数字的位置,要求最少的操作次数,使得任意相等的数字都相邻。

题解:

     遇到相邻两个不相等的就到后面找这个数字然后交换。

     因为不论怎样,如果相邻不相等,那么最后一定要交换成相等的,假设当前是1和2,那么后面一定还有一个1,并且这个1最后一定会交换到现在2这个位置(或者当前这个1交换到后面),所以早换和晚换的交换次数是一样的,所以直接遇到不一样的就交换就可以了。

    完全没有D题的难度。

#include
#include
#define ll unsigned long longusing namespace std;int a[110];int n;int main(){ cin>>n; for(int i=1;i<=2*n;++i) cin>>a[i]; int i=1; int ans=0; while(i<=2*n) { if(a[i]!=a[i+1]) { for(int j=i+1;j<=2*n;++j) if(a[j]==a[i]) { for(int k=j-1;k>i;--k) { swap(a[k],a[k+1]); ans++; } break; } } i+=2; } cout<
<

 

转载地址:http://mufgf.baihongyu.com/

你可能感兴趣的文章
特征工程怎么做
查看>>
机器学习算法应用中常用技巧-1
查看>>
机器学习算法应用中常用技巧-2
查看>>
通过一个kaggle实例学习解决机器学习问题
查看>>
决策树的python实现
查看>>
Sklearn 快速入门
查看>>
了解 Sklearn 的数据集
查看>>
用ARIMA模型做需求预测
查看>>
推荐系统
查看>>
详解 TensorBoard-如何调参
查看>>
TensorFlow-11-策略网络
查看>>
浅谈 GBDT
查看>>
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>
CART 分类与回归树
查看>>
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>
用 LSTM 来做一个分类小问题
查看>>