uva 10570——Meeting with Aliens


题意:输入1-n的排列,每次可以交换两个整数。用最少的次数把排列变成1-n的环状序列。


思路:枚举+贪心。依次枚举环上所有的点,正序一遍,倒序一遍,然后贪心求的所需的最小步数(贪心策略是1与1号交换,2与2号交换……)。


code:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <sstream>
#include <string>
#include <vector>
#include <list>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <bitset>using namespace std;typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;const int INF=0x3fffffff;
const int inf=-INF;
const int N=1000000;
const int M=505;
const int mod=1000000007;
const double pi=acos(-1.0);#define cls(x,c) memset(x,c,sizeof(x))
#define cpy(x,a) memcpy(x,a,sizeof(a))
#define fr(i,s,n) for (int i=s;i<=n;i++)
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define lrt  rt<<1
#define rrt  rt<<1|1
#define middle int m=(r+l)>>1
#define lowbit(x) (x&-x)
#define pii pair<int,int>
#define mk make_pair
#define IN freopen("in.txt","r",stdin);
#define OUT freopen("out.txt","w",stdout);int n,vis[M],v[M*2];
int sol(int *p)
{cls(vis,0);int ct=0,k;fr (i,1,n){if (vis[i]) continue;ct++;k=i;while (!vis[k]) vis[k]=1,k=p[k];}return n-ct;
}
int  main()
{while (~scanf("%d",&n)&&n){fr (i,1,n) scanf("%d",&v[i]);int ans=INF;fr(i,1,2){fr (j,1,n) v[j+n]=v[j];fr(j,1,n) ans=min(ans,sol(v+j));reverse(v+1,v+1+n);}printf("%d\n",ans);}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

I/O复用之 epoll

epoll 系统调用 1. 内核事件表 epoll使用一系列函数来完成任务&#xff0c;把用户关心的文件描述符中的事件放到内核里的一个事件表中&#xff0c;因此不用像select、poll那样每次调用都要重复传入文件描述符集或事件表。epoll需要一个文件描述符来唯一标识该事件表&#xff0…

uva 1153—— Keep the Customer Satisfied

题意&#xff1a;有n个工作&#xff0c;已知每个工作的开始时间和结束时间&#xff0c;问最多能完成多少工作。 思路&#xff1a;贪心。要想使得最后的结果最佳&#xff0c;那么开始的晚的&#xff0c;要在最后来做。在此基础上&#xff0c;需要保证先做开始的早的&#xff08;…

I/O复用之 EPOLLONESHOT 事件

EPOLLONESHOT 事件 EPOLLONESHOT 事件 1. 使用EPOLLONESHOT的原因及优点2. recv返回值 及 与errno的配合使用3. 示例程序 1. 使用EPOLLONESHOT的原因及优点 即使使用ET模式&#xff0c;一个socket上的某个事件还是可能被触发多次。比如&#xff1a;一个线程在读取完某个sock…

uva 1612——Guess

题意&#xff1a;有n个选手参加比赛&#xff0c;比赛有3个题目&#xff0c;每个选手每个题目都有一个评测之前的于得分&#xff0c;当通过题目时才可以得到相应分数&#xff0c;否则为0&#xff0c;然后按照得分排名&#xff0c;id小的排在前面&#xff0c;现在给定选手的于得分…

uva 1611——Crane

题意&#xff1a;给定一个1-n的排序&#xff0c;每次可以选定一个偶数长的序列&#xff0c;然后交换前一部分和后一部分&#xff0c;使得最后的成为1-n的序列。求最后的次数和每次的策略。 思路&#xff1a;贪心。每次贪心的策略都是把i放到第i位置上&#xff0c;交换的时候找到…

【世界上最美丽的7张太阳照片】

【世界上最美丽的&#xff17;张太阳照片】 文章来源:http://ms.blogger.cn/peon/posts/1634.aspx转载于:https://www.cnblogs.com/paulzhu/archive/2004/02/24/1572.html

uva 11925——Generating Permutations

题意&#xff1a;给定一个1-n的排列&#xff0c;用不超过2*n2的操作把他变成升序。每次操作只有两种&#xff0c;一种是交换前两个元素&#xff0c;另外一种是把最后一个元素放到最后一位。 思路&#xff1a;贪心。用双端队列来保存数据&#xff0c;每次当v[0]>v[1]&&am…

二维map —— HDU1263

水果 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8752 Accepted Submission(s): 3482Problem Description 夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最…

uva 11491——Erasing and Winning

题意&#xff1a;给定一个n位的整数&#xff0c;要求从中去掉k位&#xff0c;使得剩下的数字最大。 思路&#xff1a;单调队列。在满足删除的数等于k 的前提下求一个不敌减的序列。 code&#xff1a; #include <iostream> #include <cstdio> #include <cmath>…

工作组和域的区别

局域网上的资源需要管理&#xff0c;“域”和“工作组”就是两种不同的网络资源管理模式。那么二者有何区别呢&#xff1f;看了这篇文章&#xff0c;您就会明白了。工作组 Work Group在一个网络内&#xff0c;可能有成百上千台电脑&#xff0c;如果这些电脑不进行分组&#xff…

uva 12545——Bits Equalizer

题意&#xff1a;给定两个等长的串s和t&#xff0c;其中s串包括0&#xff0c;1&#xff0c;&#xff1f;&#xff0c;T包含0&#xff0c;1&#xff0c;每次可以把s中的0变成1或者交换任意两个数或者&#xff1f;变成任意01.求由s到t的最小步数。 思路&#xff1a;杂。所有带&am…

Ananagrams Uva 156

Ananagrams (map的使用) Most crossword puzzle fans are used to anagrams–groups of words with the same letters in different orders–for example OPTS, SPOT, STOP, POTS and POST. Some words however do not have this attribute, no matter how you rearrange their…

流星

我的心情像下雨故乱飞溅 静落一地因为没有你 我的心情像流星划破天际 惨淡的光阴因为没有你 我的心情像风铃没有主见 无法成形因为没有你 我的心情像问号钩子心碎 一点茫然因为没有你 我的心情像冰块没有温度 化了一地因为没有你 我好想你我好想你我好想你 http://photo.…

uva 1623——Enter The Dragon

题意&#xff1a;有n个装满水的湖&#xff0c;可以预知将来m天下雨情况&#xff0c;每次下满一个湖&#xff0c;或者不下&#xff0c;不下雨的时候可以让某个湖变干&#xff0c;问是否存在一种方案使得每次下雨之前湖总是干的。 思路&#xff1a;贪心。什么时候下雨&#xff0c…

CodeForce 2A —— Winner

A. Winner The winner of the card game popular in Berland “Berlogging” is determined according to the following rules. If at the end of the game there is only one player with the maximum number of points, he is the winner. The situation becomes more diffi…

GARFIELD@12-30-2004

tele-murderer 转载于:https://www.cnblogs.com/rexhost/archive/2004/12/30/84230.html

[codevs] 1098 均分纸牌

均分纸牌 题目描述 Description 有 N 堆纸牌&#xff0c;编号分别为 1&#xff0c;2&#xff0c;…, N。每堆上有若干张&#xff0c;但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌&#xff0c;然后移动。   移牌规则为&#xff1a;在编号为 1 堆上取的纸牌&#xf…

uva 11536——Smallest Sub-Array

题意&#xff1a;给定n个数&#xff0c;这n个数在m的范围之内。v[i](v[i-1]v[i-2]v[i-3])%m1; 然后求一个最短连续子序列使得序列内包括1-k个数。 思路&#xff1a;枚举。枚举以v[i]结尾的最短序列。用ct维护已经找到的k个数中的个数&#xff0c;queue跳转区间。 code&#x…

好消息,关于2005的default provider

好消息&#xff0c;关于2005的default provider 看到一则消息&#xff0c;说在vs.net 2005 bETA 2以后&#xff0c;关于Membership, Roles, Profile and Personalization 的会默认使用 SQL SERVER 2005的provider(现在BETA 1使用的是ACCESS&#xff0c;所以在做MEMBERSHIP&…

[Qt] 解决toggled无法触发setVisible

解决toggled无法触发setVisible 解决方法&#xff1a; 在QT Designer中&#xff0c;创建QPushButton时需要将按钮修改为checkable。在默认情况下&#xff0c;checkable是不选中的&#xff0c;默认为触发按钮&#xff08;trigger button&#xff09;&#xff0c;也就是按下之后…