传送门

首先,交换关系肯定是构成一个环的时候最优
如果这个环是自环,不用交换了
如果环的大小为2,直接交换便是
否则的话,我们可以用环里最小的点最为交换媒介,然后去和其他交换直到到达正确的位置,那么环里最小的点交换了\(n-1\)次其他各一次
然而还有一种情况是交换媒介是环外的点,把它换进环里然后其他都换到正确的位置再把剩下那个换回来,那么换出去的那个肯定是环里权值最小的点,也就是说环里权值最小的点换了2次,全局权值最小的点交换了n+1次,其他的各交换一次

//minamoto
#include<bits/stdc++.h>
#define ll long long
#define inf 0x3f3f3f3f
#define fp(i,a,b) for(register int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(register int i=a,I=b-1;i>I;--i)
#define go(u) for(register int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){int res,f=1;char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
const int N=1e6+5;
struct eg{int v,nx,w;}e[N<<1];int head[N],tot;
inline void add(int u,int v,int w){e[++tot]={v,head[u],w},head[u]=tot;}
int n,a[N],pos[N],tim,mn=inf,x;bool vis[N];vector<int>st[N];
void dfs(int u){vis[u]=1;go(u)if(v!=u){st[tim].push_back(e[i].w);if(!vis[v])dfs(v);}
}
ll ANS(){ll ans=0;int tmp,tmpmn;fp(i,1,tim){tmp=0,tmpmn=inf;fp(j,0,st[i].size()-1)ans+=st[i][j],tmpmn=min(tmpmn,st[i][j]);if(st[i].size()>2){int ex=st[i].size()-2;ans+=min(1ll*ex*tmpmn,1ll*(ex+3)*mn+tmpmn);}}return ans;
}
int main(){
//  freopen("testdata.in","r",stdin);n=read();fp(i,1,n)a[i]=read(),mn=min(mn,a[i]);fp(i,1,n)x=read(),pos[x]=i;fp(i,1,n)x=read(),add(pos[x],i,a[x]);fp(i,1,n)if(!vis[i])++tim,dfs(i);printf("%lld\n",ANS());return 0;
}

转载于:https://www.cnblogs.com/bztMinamoto/p/10053971.html

P3482 [POI2009]SLO-Elephants相关推荐

  1. [POI2009]SLO

    Description 对于一个1-N的排列(ai),每次你可以交换两个数ax与ay(x<>y),代价为W(ax)+W(ay) 若干次交换的代价为每次交换的代价之和.请问将(ai)变为(b ...

  2. 005_系统运维之SLA与SLO的关系

    服务水平协议(简称:SLA,全称:service level agreement)是在一定开销下为保障服务的性能和可靠性,服务提供商与用户间定义的一种双方认可的协定.通常这个开销是驱动提供服务质量的主 ...

  3. 使用Prometheus和Grafana实现SLO

    在线服务的目标应该是提供与业务需求匹配的可用服务.此流程的关键部分应该涉及组织中的不同团队,例如,从业务开发团队到工程团队. 要验证一个服务如何符合这些目标,可以用这些目标可衡量的"成就&q ...

  4. 在大规模 Kubernetes 集群上实现高 SLO 的方法

    作者 | 蚂蚁金服技术专家 姚菁华:蚂蚁金服高级开发工程师 范康 导读:随着 Kubernetes 集群规模和复杂性的增加,集群越来越难以保证高效率.低延迟的交付 pod.本文将分享蚂蚁金服在设计 S ...

  5. 03 | SRE切入点:选择SLI,设定SLO

    还是先来复习下上节课讲的"系统可用性"的两种计算方式,一种是从故障角度出发,以时长维度对系统进行稳定性评估:另一种是从成功请求占比角度出发,以请求维度对系统进行稳定性评估.同时,我 ...

  6. 001_深度剖析什么是 SLI、SLO和SLA?

    前言 SLO和SLA是大家常见的两个名词:服务等级目标和服务等级协议. 云计算时代,各大云服务提供商都发布有自己服务的SLA条款,比如Amazon的EC2和S3服务都有相应的SLA条款.这些大公司的S ...

  7. 深度剖析什么是 SLI、SLO和SLA?

    前言 SLO和SLA是大家常见的两个名词:服务等级目标和服务等级协议. 云计算时代,各大云服务提供商都发布有自己服务的SLA条款,比如Amazon的EC2和S3服务都有相应的SLA条款.这些大公司的S ...

  8. bzoj 1115: [POI2009]石子游戏Kam(博弈)

    1115: [POI2009]石子游戏Kam Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1132  Solved: 692 [Submit][S ...

  9. bzoj 1133: [POI2009]Kon(DP)

    1133: [POI2009]Kon Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 457  Solved: 166 [Submit][Status ...

最新文章

  1. 主流浏览器js 引擎内核市场份额attialx总结vOa9
  2. 嵌入式linux启动过程分析,嵌入式Linux裸机开发(二)——S5PV210启动过程分析
  3. linux如何去掉目录背景颜色
  4. MPLSMTU对MPLS网络质量的影响
  5. shiro表单认证(系统默认的form认证器)
  6. Android多开和虚拟化--Docker概念的详细介绍
  7. A Full Hardware Guide to Deep Learning
  8. Java AOP研究之@Aspect注解的工作原理
  9. python爬虫ip限制_简单爬虫,突破IP访问限制和复杂验证码,小总结
  10. 00后确实卷,公司新来的卷王,我们这帮老油条真干不过.....
  11. 收藏收藏:工作用了很久的自主开发的Sql Server代码生成器,我开源了(.NET Winform)
  12. 18100出多少取整_关于JavaScript数据类型,你知道多少?
  13. zoj 2112 树状数组 套主席树 动态求区间 第k个数
  14. python a or b 输出值为_深入分析python的and or 返回值
  15. python调试教程_python进阶教程之==、is和调试
  16. Web调取摄像头拍照
  17. IP地址的ABC类划分
  18. python检测excel表是否存在空值
  19. 入侵大型网站的完整思路
  20. 知识图谱的架构及关键技术概述

热门文章

  1. SpringBoot-04:SpringBoot在idea中的俩种创建方式
  2. 涂抹mysql笔记-mysql复制特性
  3. Android之TableLayout表格布局
  4. SQL优化基础 使用索引(一个小例子)
  5. OpenERP 源码安装一招鲜
  6. 用户体验思考之UI面试
  7. win 2008R2 域的备份与还原
  8. POSA2:Wrapper Facade模式
  9. 软件设计是决定软件性能的关键
  10. SpringBoot整合springDataJpa实现图片上传和显示