题目名称 | 112. [NOIP 2005]篝火晚会 |
---|---|
输入输出 | fire.in/out |
难度等级 | ★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 | BYVoid 于2008-09-17加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
查看题解 | 分享题解 |
通过:101, 提交:308, 通过率:32.79% | ||||
Rapiz | 100 | 0.010 s | 0.52 MiB | C++ |
Bennettz | 100 | 0.031 s | 1.30 MiB | C++ |
jmisnal | 100 | 0.059 s | 4.79 MiB | C++ |
安呐一条小咸鱼。 | 100 | 0.060 s | 1.31 MiB | C++ |
Skyo | 100 | 0.064 s | 1.10 MiB | C++ |
Youngsc | 100 | 0.064 s | 1.46 MiB | C++ |
ESAzl | 100 | 0.068 s | 1.27 MiB | C++ |
ESAzl | 100 | 0.068 s | 1.27 MiB | C++ |
changxv | 100 | 0.070 s | 1.31 MiB | C++ |
test | 100 | 0.077 s | 1.31 MiB | C++ |
本题关联比赛 | |||
假期找点事儿做题吧 |
关于 篝火晚会 的近10条评论(全部评论) | ||||
---|---|---|---|---|
发表了题解~对COGS题解的排版想吐槽一下orz
大家凑合看吧~ | ||||
这题简直了。。。教训就是读题需仔细qwq
| ||||
回去重修语文去了。。。b1,b2..bm可以不连续,一直以为要连续.......构造目标序列,然后查与原序列上差值相同的数对,出现次数的最大值。因为与原序列差值相同的话可以通过一次移动使得与原序列差值为0(很显然,好像也可以联系下置换的群姿势)...
| ||||
这…神题
需要用到一个置换的定理,不过这无关紧要。只是知道的人少证了一步而已。 | ||||
...不明不白的就rank1了,不过还不懂这道题和置换群的关系。。。。。
| ||||
为了不产生对题目的误解特地加了一句注释(虽然觉得不会有人像我一样蠢)
| ||||
群论都来了
lushan01
2014-04-07 11:06
5楼
| ||||
置换群是什么东西……
| ||||
TBK要看我的代碼。。。僕のコードを見せ.......
| ||||
Orz UIOP
王者自由
2012-10-22 16:29
2楼
|
佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了“小 教官”。在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会。一共有 n 个同学,编号从 1 到 n 。一开始,同学们按照 1 , 2 ,……, n 的顺序坐成一圈,而实际上每个人都有两个最希望相邻的同学。如何下命令调整同学的次序,形成新的一个圈,使之符合同学们的意愿,成为摆在佳佳面前的一大难 题。
佳佳可向同学们下达命令,每一个命令的形式如下:(b 1 , b 2 ,... b m -1 , b m )
b1,b2....b m可以不是连续的,比如说可以这样命令(1,8,10)
这 里 m 的值是由佳佳决定的,每次命令 m 的值都可以不同。这个命令的作用是移动编号是 b 1 , b 2 ,…… b m –1 , b m 的这 m 个同学的位置。要求 b 1 换到 b 2 的位置上, b 2 换到 b 3 的位置上,……,要求 b m 换到 b 1 的位置上。
执行每个命令都需要一些代价。我们假定如果一个命令要移动 m 个人的位置,那么这个命令的代价就是 m 。我们需要佳佳用最少的总代价实现同学们的意愿,你能帮助佳佳吗?
输入的第一行是一个整数 n ( 3 <= n <= 50000 ),表示一共有 n 个同学。
其后 n 行每行包括两个不同的正整数,以一个空格隔开,分别表示编号是 1 的同学最希望相邻的两个同学的编号,编号是 2 的同学最希望相邻的两个同学的编号,……,编号是 n 的同学最希望相邻的两个同学的编号。
输出包括一行,这一行只包含一个整数,为最小的总代价。
如果无论怎么调整都不能符合每个同学的愿望,则输出 -1 。
4 3 4 4 3 1 2 1 2
2
对于30%的数据,n <= 1000;
对于全部的数据,n <= 50000。