题解

130 条题解

  • 0
    @ 2007-11-04 11:15:58

    这题的叙述,让我误会了一年多。tzkq……3q..要早知道是这种意思早就ac了这题。。显然没什么大意思,看过组合数学或者学过群论的都懂。。ms跟polya计数法那个循环的意思。。

    写的时候竟然因为交换的时候写错一个字母wa。我汗。

  • 0
    @ 2007-11-01 13:33:16

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    好强大的题啊,不看题解还真不会!

  • 0
    @ 2007-10-30 18:09:04

    请问什么是置换群啊?可以讲讲吗?………………

  • 0
    @ 2007-10-30 13:18:13

    楼下都是正解?

    ......

  • 0
    @ 2007-10-18 20:35:20

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    什么是置换群?不知道。。。照样过。。。。

  • 0
    @ 2007-10-18 20:13:24

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

  • 0
    @ 2007-10-11 16:19:33

    排序法这里会超时~~~~~

    比赛的时间是2S~~

    这里是1S~~

    (*_*)

  • 0
    @ 2007-10-10 17:05:17

    居然是置换群。。。

    对了。。。什么是置换群...

    上网查啊!!!

  • 0
    @ 2007-10-02 18:50:54

    思想:

    置换群。(相关知识自己查)

    对于一组数据,按各人的意愿排出一个序列,

    如果无法排出,就输出-1。

    再将环状序列变成链状,则这个目标序列为一个置换群,

    与原序列(按1到n的一列)满足:

    交换的最少人数等于目标序列与原序列不重合的人数。

    因为总共有2n个目标序列(正反各n种),都算一遍就行了。

    步骤:

    1. 读入数据;

    2. 构造一个目标序列;

    3. 统计该序列中元素位置与该元素在原序列位置的差值(同一方向)为i{i ∈ [0, n)}的元素个数;

    4. 将该序列的反序统计一遍;

    5. 从这些数据中选取一个最大的值max;

    6. 输出n - max;

    注意:

    构造目标序列时判断能否构造的条件;

    统计一次差值的复杂度是O(n);

    统计差值的目的是求与原序列最多的重合人数;

  • 0
    @ 2007-09-19 22:38:52

    好经典的题奥

    确实有难度

  • 0
    @ 2007-09-03 17:58:28

    Accepted 有效得分:100 有效耗时:0ms

    好经典的题奥

  • 0
    @ 2007-08-22 17:36:41

    下面程序是错的,不好意思,弄错地方了....

  • 0
    @ 2007-08-21 15:18:49

    题目所求就是每次进行连续交换的人数总和,这样,一个看似复杂的题目就变的异常的简单了!

  • 0
    @ 2007-08-11 02:05:13

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    HOHO~~~看讨论的时候看到有人提到‘置换群’这个东西,突然想起来我刚买的一本组合数学上有这么一块东西,就拿过来看了。。。。

    然后就出现上面的东西了。。。。置换群,本来想求轮换的,发现轮换比较多,还是找不参与交换的比较好记。。。。

    优化的方法。。。我看了下好象不只一个人讲过了。。。而且似乎我跟他们的都一样(没仔细看)所以就不说了。。。效率是O(n)的。。不用建环。

  • 0
    @ 2007-08-10 22:49:46

    怎么判断建环失败啊?我的程序虽然AC但总觉得方法很傻

  • 0
    @ 2007-07-17 13:45:31

    想到了用t[i]=b[i]-i表示环

    却没想到镜像..

    十分感谢visister

    让我从90分中挣扎出来...

  • 0
    @ 2006-11-16 20:11:23

    哪个人不小心失火了找我啊!!!

    PS:我是安徽省芜湖市119接线员....

  • 0
    @ 2006-11-06 18:40:15

    考虑旋转后最多可能重合的情况,另要注意圈可以反过来

  • 0
    @ 2006-09-30 21:35:19

    直接输出‘-1’有一个点过

  • 0
    @ 2006-09-26 18:17:26

    见过的最牛最简单的方法……

    将此题转换为冒泡排序,记录下所有交换的次数和两数间的距离,加上就行了……—__—|||

    具体是这样的,我们反向思维,本来是要求一个有序数列求出成为无序数列的代价,现在我们把无序数列(即目标数列)进行冒泡排序,然后……就是这样……

    看完之后,偶巨汗……

信息

ID
1008
难度
5
分类
组合数学 点击显示
标签
递交数
4127
已通过
1375
通过率
33%
被复制
33
上传者