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

网站投稿系统怎么做网站开发junke100

网站投稿系统怎么做,网站开发junke100,小程序商城需要办什么证,广州网站设计服务商一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1148C - Codeforces 二、解题报告 1、思路分析 题目提示O(5n)的解法了,事实上我们O(3n)就能解决,关键在于1,n的处理 我们读入数据a[],代表初始数组…

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

Problem - 1148C - Codeforces


二、解题报告

1、思路分析

题目提示O(5n)的解法了,事实上我们O(3n)就能解决,关键在于1,n的处理

我们读入数据a[],代表初始数组,p[i]代表 i 的下标

如果p[i] != i

说明需要交换

a[p[i]] 一定能跟a[1]或者a[n]交换, a[i]也一定能跟1或n交换

假设 a[i]  的可交换位置为x,a[p[i]] 的可交换位置为y(x、y只可能为1、n)

那么我们使得元素i从p[i] -> y -> x -> i 就在3步之内让i到达了下标i

此时a[1] 和 a[n]可能不满足a[1] = 1, a[n] = n

事实上我们将每个元素调整完后再调整1和n即可

这也是为什么能从O(5n)优化到O(3n)

 

2、复杂度

时间复杂度: O(3n)空间复杂度:O(n)

3、代码详解

#include <bits/stdc++.h>
using PII = std::pair<int, int>;
const int N = 3e5 + 10;
int p[N], a[N], n, s;
std::vector<PII> path;void swap(int x, int y) {std::swap(p[a[x]], p[a[y]]);std::swap(a[x], a[y]);path.emplace_back(x, y);
}int main () {std::cin >> n;path.reserve(5 * n);for (int i = 1; i <= n; i ++ ) std::cin >> a[i], p[a[i]] = i;for (int i = 1; i <= n / 2; i ++ ) {if (p[i] != i) {if (p[i] <= n / 2) {swap(p[i], n);swap(i, n);}else {swap(1, p[i]);swap(1, n);swap(i, n);}}}for (int i = n / 2 + 1; i <= n; i ++ ) {if (p[i] != i) {if (p[i] > n / 2) {swap(1, p[i]);swap(1, i);}else {swap(p[i], n);swap(1, n);swap(1, i);}}}if (a[1] != 1) swap(1, n);std::cout << path.size() << '\n';for (auto [x, y] : path) std::cout << x << " " << y << '\n';return 0;
}

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

相关文章:

  • 啥是东莞网站制作公司天健emp软件开发平台
  • 来宾网站优化百度影音在线电影
  • 国外优秀flash网站微信如何做模板下载网站
  • 静态网站可以做哪些福州网站建设服务商
  • dw个人网站制作模板北京住房和城乡建设局门户网站
  • 网站抽奖模块怎么做打扑克观看区免费观看
  • PHP手机网站开发工程师山东企业网站建设报价
  • vs做网站怎样添加图片图书馆网站建设总结
  • 注册公司去哪个网站韩国网站怎么打开
  • 东莞 网站制作行业资讯平台网站建设
  • seo教程网站优化做挂网站
  • 网站建设公司 倒闭江宁网站建设公司
  • 平台网站开发方案云主机服务器
  • 北京南昌企业网站制作wordpress 网站搭建
  • 重庆网站平台海南网站搭建
  • 武功做网站济南企业建站哪家做的好
  • 网站优化建设郑州网站搬家seo
  • 专业模板网站制作价格域名服务网站建设科技公司
  • 平顶山网站建设专业建站的网站
  • 有哪些网站是拐角型温州网站建设报价
  • 最具价值的网站建设做企业网站对企业的好处
  • 做网站需要编程基础wordpress视频列表模板
  • 图书销售网站网页设计模板电商app开发方案
  • 能查个人信息的网站南昌公路建设有限公司网站
  • 响应式网站和非响应式网站的区别南昌房信网官网
  • 物流网站开发项目书做视频网站需要什么服务器
  • 网站建设 全包 模板开发区网站建设的目的
  • 怎么自己做刷qq网站alexa排名与什么有关系
  • 国外大气的网站销售产品网站有哪些
  • 怎么样让网站快速收录wordpress怎么上传文件