当前位置: 首页 > news >正文

嘉兴网站建设方案优化wordpress 进去管理

嘉兴网站建设方案优化,wordpress 进去管理,推广方案经典范文,网站开发有多少种题目描述: 小 A 现在有一个长度为 𝑛 的序列 {𝑥𝑖},但是小 A 认为这个序列不够优美。 小 A 认为一个序列是优美的,当且仅当存在 𝑘 ∈ [1, 𝑛],满足: &#…

题目描述:

        小 A 现在有一个长度为 𝑛 的序列 {𝑥𝑖},但是小 A 认为这个序列不够优美。 小 A 认为一个序列是优美的,当且仅当存在 𝑘 ∈ [1, 𝑛],满足: 𝑥1 ≤ 𝑥2 ≤ … ≤ 𝑥𝑘 ≥ 𝑥𝑘+1 ≥ … ≥ 𝑥𝑛 。现在小 A 可以进行若干次操作,每次可以交换序列中相邻的两个项,现在他想知道最少操作多少次之后能够使序列变为优美的。

Input Format

第一行一个正整数 𝑛,表示序列的长度。 接下来一行 𝑛 个整数,表示初始的序列。

Output Format

输出一行一个整数,表示最少需要的操作次数。

Sample Input

5 3 4 1 2

Sample Output

1

Constraints

对于 30% 的数据,𝑛 ≤ 12。

对于 60% 的数据,𝑛 ≤ 100000, 𝑎𝑖 互不相同。

对于 100% 的数据,𝑛, 𝑎𝑖 ≤ 100000。

思路:

        仔细分析题意,因只能交换序列中相邻的两个项,且要求中间数大,两端较小。可以用贪心思想将每一个小的x[i]往左或往右两端移动,取最小的交换次数,最后累加即为所求。其实就是计算每个数左边或右边比它大的数(逆序对)有多少个,取最优。

        用树状数组刚好能满足快速计算逆序对的需求。注意:因数据有可能重复,我们需要将数组从大到小排序,且将数值相同的元素id大的往前放。

#include<bits/stdc++.h>
using namespace std;
int t[100005], n;
struct node {int x, id;
} a[100005], b[100005];
bool sort1(node a, node b) { //从大到小排序,值相同ID大的放前面if (a.x == b.x) return a.id > b.id;return a.x > b.x;
}
void add(int pos, int x) {while (pos <= n) {t[pos] += x;pos += -pos & pos;}
}
int sum(int pos) {int ans = 0;while (pos) {ans += t[pos];pos -= -pos & pos;}return ans;
}
int main() {int ans = 0;cin >> n;int resa[n + 1], resb[n + 1];for (int i = 1; i <= n; i++) {scanf("%d", &a[i].x);b[i].x = a[i].x;	//复制一个数组用于计算右边逆序对a[i].id = i;	//求i左边逆序对b[i].id = n - i + 1; //求i右边逆序对,id取反}sort(a + 1, a + 1 + n, sort1);sort(b + 1, b + 1 + n, sort1);for (int i = 1; i <= n; i++) {add(a[i].id, 1);resa[a[i].id] = sum(a[i].id - 1); //把每个i的逆序对保存到数组对应位置}memset(t, 0, sizeof(t)); //清空数组,以便计算右边逆序对for (int i = 1; i <= n; i++) {add(b[i].id, 1);resb[b[i].id] = sum(b[i].id - 1); }reverse(resb + 1, resb + 1 + n); //之前id是反向定义,需要反转数组元素for (int i = 1; i <= n; i++)ans += min(resa[i], resb[i]); //取每个i对于左右逆序对的最小值的和,即为所求cout << ans;return 0;
}

http://www.yayakq.cn/news/159304/

相关文章:

  • 企业网站建设的目的有哪些文化墙 北京广告公司
  • 网站编写教程重庆建设摩托车股份有限公司
  • 网站开发 系统需求文档网上三维展馆网站是怎么做的
  • 平台型网站制作定制网页设计公司
  • 中山网站外包马格南摄影网站
  • 在招聘网站做销售提供手机自适应网站建设维护
  • wordpress字不能显示图片安阳seo
  • 网站换了域名做新房坐哪个网站好
  • 做网站1天转多钱滨州网站建设腾度
  • 怎么自己在百度上做网站南昌地宝网租房个人房源
  • 免费建设商城网站太原零元网站建设
  • 关于校园网站建设的建议外贸自建站有哪些
  • 做社区网站怎么做搜索引擎市场份额2023
  • 做网站知识点长春又出现一例
  • 商务网站建设总结新加坡网站开发公司
  • 金牛区建设审批网站seo的网站特征
  • 机械行业网站怎么做中国建设银行网址多少
  • 从音乐网站下载歌曲做铃音要收费吗现在建设一个网站还能够赚钱吗
  • 自己做的网站打不开了wordpress文字添加图片
  • 消防中队网站建设免费空间送二级域名
  • 青岛营销型网站建设网站建设备案优化设
  • 有可以花钱让人做问券的网站吗wordpress插件 osgi
  • 专业的网站开发中兴通讯的网站建设分析
  • 住房城乡建设部办公厅网站淘宝基地网站怎么做
  • 物流网站建设图片如何制作网址教程
  • 做网站用什么后台网站开发的api
  • 自学网站搭建个人旅游网站模板
  • 如何建设一免费的网站万网怎么上传网站
  • 力软敏捷开发框架可以做网站后台免费做网站凡科
  • 施工企业的施工生产计划与建设周口搜索引擎优化