佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了“小教官”。在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会。一共有n个同学,编号从1到n。一开始,同学们按照1,2,……,n的顺序坐成一圈,而实际上每个人都有两个最希望相邻的同学。如何下命令调整同学的次序,形成新的一个圈,使之符合同学们的意愿,成为摆在佳佳面前的一大难题。

佳佳可向同学们下达命令,每一个命令的形式如下:

(b1, b2,... bm -1, bm)

这里m的值是由佳佳决定的,每次命令m的值都可以不同。这个命令的作用是移动编号是b1,b2,…… bm –1,bm的这m个同学的位置。要求b1换到b2的位置上,b2换到b3的位置上,……,要求bm换到b1的位置上。

执行每个命令都需要一些代价。我们假定如果一个命令要移动m个人的位置,那么这个命令的代价就是m。我们需要佳佳用最少的总代价实现同学们的意愿,你能帮助佳佳吗?

对于30%的数据,n <= 1000;

对于全部的数据,n <= 50000。

  解题过程:

1.首先感觉是宽搜,但n规模太大肯定不行。

2.自己手动模拟了几次,实在没找到规律。求助于百度。

参考http://wenku.baidu.com/view/878beb64783e0912a2162aa7.html?qq-pf-to=pcqq.c2c

1.首先题目 中(b1, b2,... bm -1, bm)没说是连续的。。

2.把圈拆成序列,初始就是 1 2 3 4 .... n 或者n,n-1,n-2....1(逆时针和顺时针),根据每个人的愿望可以构造出一个圈,一个圈代表n个序列。。只要找出变成初始序列代价最小的就好。 3.怎样求变成初始序列的最小代价?其实代价就是不在应在位置上的数的个数。。证明方法(不是很严谨):  把一个不在不在应在位置上的数连一条有向边指向它应该去的位置,这样最终会形成环,只要按照环的顺序取(b1, b2,... bm -1, bm),就可以使环中的元素全部归位。 (有贪心的味道),代价就是环中元素的个数。由于可能有多个环,只要位置不对的元素必定是环中的一部分,而环和环肯定不会有公共部分,不然的话某个元素可能要去多个位置,或者某个位置有多个元素要去。。所以 代价就是不在应在位置上的数的个数。。由此可以拓展开:交换次数最少的排序方法是选择排序,最少次数就是sum(环的边数-1)。 4.根据3显然可以用O(n^2)的算法求出答案(扫描n个序列)。 但是只能过30%的点。百度上的方法是:任取一个序列,求出每个元素与它应去位置的差值,若为负数就加一个n,可以发现差值相等的元素个数是不变的。 

那么只要找出相同差值的最多元素的个数MAX,总有n个序列中一个序列中他们的差值变为0,所以结合3答案就是总人数减去MAX。

转载于:https://www.cnblogs.com/vb4896/p/3874616.html

NOIP2005 篝火晚会 解题报告相关推荐

  1. noip2005篝火晚会 2008.10.18

    noip2005篝火晚会 2008.10.18 注意: 1.       刚开始,我用的是图来标记这两个人是否已经输出过,一直出错,后来看了标称,方法很好 2.       求出序列后,因为是圆环,要 ...

  2. [原创][NOIP2005]篝火晚会(超详细题解,3种思路)

    原题 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了"小教官".在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有n个同学,编号从1到n.一 ...

  3. [noip2005]篝火晚会

    佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了"小教官".在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有n个同学,编号从1到n.一开始, ...

  4. Luogu1053 NOIP2005篝火晚会

    首先造出所要求的得到的环.如果将位置一一对应上,答案就是不在所要求位置的人数.因为显然这是个下界,并且脑补一下能构造出方案达到这个下界. 剩下的问题是找到一种对应方案使错位数最少.可以暴力旋转这个环, ...

  5. noip2005篝火晚会

    这是一道不算太难的题,但愚蠢的我并没有想到. 首先,判断无解的情况:他想相邻的不想与他相邻. 然后,构造出合法的数列,因为第一位左边有两种选择,且构造出的环不等价,所以要做两次. (这一点我并没有想清 ...

  6. 【NOIP2005 提高组】篝火晚会

    题目 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了"小教官& ...

  7. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)

    线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报  分类: ...

  8. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  9. 【解题报告系列】超高质量题单 + 题解(ACM / OI)超高质量题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我新写的超高质量的题解和代码,题目难度不 ...

最新文章

  1. oracle 06502 解决,ora-06502如何解决。。。
  2. [2018/11/14]思考
  3. Java文件流应用:剪切文件
  4. 蒙特卡洛梯度估计方法(MCGE)简述
  5. FIXML and FpML - Background, Comparison, Integration Interoperability Opportunities
  6. 石墨烯将是下一个万亿级别的产业,投资者该如何提前布局?
  7. MsWord 操作总结
  8. C# 这些年来受欢迎的特性
  9. asp.net ViewState详解
  10. mysql——JDBC
  11. PostreSQL崩溃试验全记录
  12. SAP License:SAP的公司间销售
  13. YARN作业提交流程剖析
  14. P2P网络借贷系统-核心功能-用户投标-业务解说
  15. dropify插件的字符串
  16. ASP.NET程序设计案例教程 pdf电子书
  17. 打印机服务器文件,打印机服务器ftp配置文件
  18. linux命令 sh -s,shell脚本中 if 判断时候-s是什么意思?
  19. 兼容iOS 10 _升级xcode8_适配(一)
  20. pubg体验服服务器维护,简单1招,教你快速获得《Pubg Mobile》体验服“邀请码”!...

热门文章

  1. java画篮球_PS教程!手把手教你绘制炫酷的科比篮球海报
  2. 华为路由器AR6300 取消密码重置提醒和密码长期有效
  3. 转:西部数据NAS设备hack
  4. 自己组装nas服务器万兆,阿文菌爱捡垃圾 篇二十一:组装一台小巧的8盘位万兆NAS,参考翼王使用永擎C236主板,E3是否还值得下手?...
  5. 数据列表组件 jqGrid 二次封装
  6. 两用图片视频压缩软件
  7. webrtc分辨率和比特率--问题集锦
  8. course83_lab2_8086的寻址方式
  9. Android 通过adb禁止某个应用上网
  10. 制作我自己的桌面小机器人Zbot(遇到的问题总结)