poj 3270 Cow Sorting
来源:互联网 发布:同一格式表格数据汇总 编辑:程序博客网 时间:2024/05/21 09:45
这题和lrj黑书P247的那个例题一摸一样啊,听说还是2002年的WF的一道题,解题思路什么的就不写了,自己去黑书上看吧。
#include<iostream>#include<algorithm>#include<string.h>#include<stack>#include<queue>#include<math.h>#include<cstdio>#define mm(a,b) memset(a,b,sizeof(a))#define maxn 100010using namespace std;const int inf=0x7ffffff;struct node{int min_t;int cnt;}p[maxn];int num[maxn];int t[maxn];bool vis[maxn];int e,n;void dfs(int u){ for(int i=1;i<=n;i++)if(t[i]==u && !vis[i]){vis[i]=1;p[e].cnt++;p[e].min_t=min(p[e].min_t,t[i]);dfs(num[i]);}return ;}int main(){int minn,sum,ans;while(~scanf("%d",&n)){minn=inf;sum=0;for(int i=1;i<=n;i++){scanf("%d",&num[i]);sum+=num[i];t[i]=num[i];minn=min(minn,num[i]);}sort(num+1,num+n+1);e=1;mm(vis,0);for(int i=1;i<=n;i++)if(!vis[i]){vis[i]=1;p[e].cnt=1;p[e].min_t=t[i];dfs(num[i]);e++;}ans=sum;bool flag=0;for(int i=1;i<e;i++)ans+=min((p[i].cnt-2)*p[i].min_t,p[i].min_t+(p[i].cnt+1)*minn);printf("%d\n",ans);}return 0;}
- poj 3270 Cow Sorting
- POJ 3270(Cow Sorting)
- poj 3270 Cow Sorting
- POJ 3270 Cow Sorting
- POJ 3270 Cow Sorting
- POJ 3270 Cow Sorting
- POJ 3270 Cow Sorting
- POJ 3270 Cow Sorting
- POJ 3270 Cow Sorting
- POJ-3270 Cow Sorting
- POJ 3270 Cow Sorting (置换)
- POJ 3270 / HDU 2838 - Cow Sorting
- POJ 3270 Cow Sorting(置换循环节)
- poj 3270 Cow Sorting(置换群)
- poj-3270-Cow Sorting-置换群
- POJ 3270 Cow Sorting 置换应用
- Cow Sorting && Permutations(poj 3270 && 2369)
- poj 3270 Cow Sorting (置换群)
- Oracle使用RMAN恢复控制文件实例
- 掌握好习惯才能掌握商战主动权
- Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead. Please use Android Tools
- python常用模块资料
- 一步一步学数据结构之1--1(循环队列--线性表实现)
- poj 3270 Cow Sorting
- 计算两路径的相对路径
- Android TextView丰富多彩的字体样式代码
- 聊天室(自己实现HTTP长连接)
- AndEngine学习笔记--2--自定义button
- Ubuntu Unity系统托盘显示所有图标
- 八大排序算法总结 .
- 临时对象以及const引用详解
- CentOS Tomcat6 修改默认端口8080为80