zzu--2014年11月16日月赛 E题

Problem E: Fixed Points

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 29  Solved: 11

[Submit][Status][Web
Board
]

Description

A permutation of length n is an integer sequence such that each integer from 0 to (n - 1) appears exactly once in it. For example, sequence [0, 2, 1] is a permutation of length 3
while both [0, 2, 2] and [1, 2, 3] are not.

A fixed point of a function is a point that is mapped to itself by the function. A permutation can be regarded as a bijective function. We‘ll get a definition of a fixed point in a permutation. An integer i is a fixed point of permutation a[0],
a[1], ..., a[n-1] if and only if a[i]=i . For example, permutation [0, 2, 1] has 1 fixed point and permutation [0, 1, 2] has 3 fixed points.

You are given permutation a. You are allowed to swap two elements of the permutation at most once. Your task is to maximize the number of fixed points in the resulting permutation. Note that you are allowed to make at most one swap operation.

Input

The first line contains a single integer n (1 <= n <= 10^5). The
second line contains n integers a[0], a[1], ..., a[n - 1] ----
the given permutation.

Output

Print a single integer — the maximum possible number of fixed points in the permutation after at most one swap operation.

Sample Input

5

0 1 3 4 2

Sample Output

3

HINT

题意:找出最多交换两个数的位置的序列中a [ i ]  = i  的数的个数!

思路:因为最多就交换一次,ans最多也就多2, 然而只要满足了 i = a[ a[ i ] ] 就可以多2,否则多1或不变;

具体看代码(水水):

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

int fun(int a[], int b[], int n)
{
	int flag=0;
	for(int i=0; i < n; i++)
	{
		if(b[i] == 0)
		{
			if(i == a[a[i]]) return 2;
			flag++;
		}
	}
	if(flag)return 1;
	else return 0;
}

int main()
{
	int n;
	int a[100010], is[100010];
	while(scanf("%d", &n) != EOF)
	{
		int ans=0;
		memset(is, 0, sizeof(is));
		memset(a, 0, sizeof(a));
		for(int i=0; i<n; i++)
		{
			scanf("%d", &a[i]);
			if(a[i] == i)
			{
				is[i] =1;
				ans++;
			}
		}
		printf("%d\n", ans+fun(a, is, n));
	}
	return 0;
}
时间: 2024-10-08 20:25:30

zzu--2014年11月16日月赛 E题的相关文章

zzu--2014年11月16日月赛 A题

1228: Simple Molecules Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 22  Solved: 8 [Submit][Status][Web Board] Description Mad scientist Mike is busy carrying out experiments in chemistry. Today he will attempt to join three atoms into one molecule

zzu--2014年11月16日月赛 F题

Problem F: Difference Row Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 8  Solved: 3 [Submit][Status][Web Board] Description You want to arrange n integers a1, a2, ..., an in some order in a row. Let's define the value of an arrangement as the sum

zzu--2014年11月16日月赛 B题

1229: Rational Resistance Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 8  Solved: 4 [Submit][Status][Web Board] Description Mad scientist Mike is building a time machine in his spare time. To finish the work, he needs a resistor with a certain res

zzu--2014年11月16日月赛 C题

1230: Magnets Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 24  Solved: 13 [Submit][Status][Web Board] Description Mad scientist Mike entertains himself by arranging rows of dominoes. He doesn't need dominoes, though: he uses rectangular magnets in

2014年11月16日:敏捷个人头手心活动报道

敏捷个人从2009年至今,经过不断的实践和总结,不断丰富并精炼,形成了一套高效的知行合一的个人体系化成长方法,并已经帮助数千人开启意识层面,并走上实践旅程,去找到真正的自己.为了让更多人了解和学习敏捷个人最新内容,决定再次开启敏捷个人北京俱乐部线下主题活动. 本次活动是敏捷个人头手心系列第一堂课北京线下分享,也是今年下半年唯一一次线下分享,内容有两部分: 敏捷个人头手心模型 如何成为一个专家 [签到] 第一个到场的敏友将获得快乐个人练习101张卡片一套,所以有敏友提前1个小时就到了.现场还准备了

(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期(2014年11月27日 16:31:49)

(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期参考网络(2014年11月27日 16:31:49 浙江) // 格式化当前日期 获取date天后的日期    function getNowFormatDate(date) {        var day = new Date();        var Year = 0;        var Month = 0;        var Day = 0;        var CurrentDate = "";  

2014年11月2日-11月9日 周总结

不敢相信一周的时间就这样过去了,只是简单的做了一个梦.醒来又是就是下周了. 周一周二所有的时间都是在准备地球制图的项目,周三编制制图报告.周四周五又都是在复习,准备地学信息分析与处理考试,一直都没有读书.一直到了周五晚上才有空读书.ArcGIS产品的白皮书,ENVI的产品白皮书和EV-Globe产品白皮书,粗略的浏览了一遍.又浏览了一下Matlab的帮助程序,收获很大,不过还是为了考试.值得高兴的是,计算机制图不需要考试,只需要交作品就好. 2014年11月10日-11月16日需要的事,AE二次

周浩晖 - 邪恶催眠师1(2014年11月1日)

<邪恶催眠师1> 作 者:周浩晖译 者:系 列:出 版:同心出版社字 数:298千字阅读完成:2014年11月1日

周浩晖 - 邪恶催眠师2(2014年11月7日)

<邪恶催眠师2> 作 者:周浩晖译 者:系 列:出 版:海峡书局字 数:289千字阅读完成:2014年11月7日