hdoj 3270 置换群
来源:互联网 发布:prisma tensorflow 编辑:程序博客网 时间:2024/05/29 08:52
题意:
给一个无序数组,通过一系列对换使之有序。对换的花费是对换两个数的和。问达到目标的最小花费。
思路; 有两种操作:一是可以拿置换中的每一个元素和置换中最小元素依次对换;还可以拿置换中最小元素和序列中最小元素做一次置换,再进行第一种操作。
#include<stdio.h>#include<string.h>#include<vector>#include<algorithm>using namespace std;int main(){ int n; scanf("%d",&n); vector<pair<int,int> >cows; for(int i=0;i<n;i++) { int x; scanf("%d",&x); cows.push_back(make_pair(x,i)); } sort(cows.begin(),cows.end()); int ans=0,m=cows[0].first; for(int i=0;i<n;i++) { if(cows[i].second==-1) continue; int j=cows[i].second,w=cows[i].first,k=1; cows[i].second=-1; while(i!=j)//找到一个循环 { k++; ans+=cows[j].first; int t=cows[j].second; cows[j].second=-1; j=t; } ans+=min((k-1)*w,(k-1)*m+2*(m+w)); } printf("%d\n",ans); return 0;}
0 0
- hdoj 3270 置换群
- 【置换群】 HDOJ 1439 && POJ 1026 Cipher
- HDOJ 题目1439Cipher(置换群)
- HDOJ 4259 Double Dealing(置换群)
- poj 3270 置换群
- POJ 3270 置换群
- POJ 3270 置换群
- POJ 3270 置换群
- HDOJ题目4985Little Pony and Permutation(置换群)
- 置换 置换群 应用
- 置换 置换群 应用
- 置换 置换群 应用
- POJ 3270 置换群定理
- 置换群
- 置换群
- 置换群
- 置换群
- HDOJ-5392 Infoplane in Tina Town(置换群循环节长度)
- 【深入浅出IOS开发】UIWindow详解
- google搜索
- 欢迎使用CSDN-markdown编辑器
- 第4周项目1三角形类的构造函数
- 第三方登录之QQ登录(二)——OAuth2.0处理流程介绍(以QQ登录为例)
- hdoj 3270 置换群
- MongoDB碎片整理之repairDatabase详解
- iOS开发-边线绘制控件及虚线绘制原理
- ibatis 到 MyBatis区别
- 力所能及之Hibernate中对象的三种状态
- 简单实用SQL脚本
- VC 没有标题栏拖动窗口
- 【深入浅出IOS开发】UIViewController详解
- 第四周 课后实践:项目二——分数类的雏形