题目

官方题解

从1~n的n个数中选出一些数,使得两两之间不能整除。问最多能选出多少。

答:每个数可以写成a*2k的形式,其中a是奇数。那么如果两个数的a相同,就能整除。因此必定每个数的a不同,最多的数就是1~n的奇数个数,即n/2向上取整。一种方案是取n/2至n的数。

1~n的数打乱顺序,每次可以交换任意两个数,问使之有序至少要多少次交换?

答:最开始做的时候只是从左向右扫描数组,如果哪个位置上的数字不对,则与有正确数字的位置交换。总觉得不放心,又想了下。其实这些数字构成了一些环(已经在正确位置的数字也可以当成一个指向自身的环)。

图中圆圈中的数字表示数组位置,旁边的数字表示现在此位置的数字。那么箭头指向了数字应该去到的正确位置。当然环不一定是1-->2-->3这样,不过这无关紧要,位置重新编号一下即可。

可以看出(或者猜),一个n个点的环要变成n个点,需要n-1次交换。比如1,2位置的数字交换后,变成下面这样

其实也可以不沿箭头交换,比如交换1,4位置的数字,如下

根据我们的假设,总共需要1+2*(3-1)=5次交换,与按箭头交换的次数(6-1)是一样的。

一条杆上有n只随机朝向运动的蚂蚁,两只蚂蚁碰面后则掉头走,问碰面次数的期望值。

这题倒不是说难,只是原来推导复杂了。。实际上也就是求2n种情况中总的碰面次数啦。碰面后往回走可以等价为继续沿原方向走这个大家都知道吧?把向东走用1表示,向西用-1,也就是求(1, -1)的有序对有多少。用f(n)表示n个数字的总数。当第一个数是-1时,为f(n-1)。当第一个数是1时,为f(n-1)加上这个1与后面的-1形成的对数。也就是n-1个数的所有情况中有多少-1?答案当然是(n-1)*2n-1/2,因为1和-1的数量相等嘛。所以:

f(n)=(n-1)*2n-2 + 2*f(n-1)  f(1)=0

这个还是很好求的,展开一下就知道了。f(n)=n*(n-1)*2n-3.

那么期望是f(n)/2n=n*(n-1)/8. 这个结果倒是挺简洁的。

update:看了题解发现这个还是复杂了。。。由于碰面后往回走可以等价为继续沿原方向走,那么任意一对蚂蚁是否会碰面是与其他蚂蚁无关的,只与它们的方向有关。4种可能情况中,只有相向走会碰面,也就是概率1/4。乘以蚂蚁对数C(n,2)即可。难怪结果很简洁。。

转载于:https://www.cnblogs.com/demoZ/p/4504430.html

NEUACM 2015年一月月赛相关推荐

  1. 2021年洛谷一月月赛(Div1、Div2,6题)全部题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.P7285 「EZEC-5」修改数组(思维) B.P7286 「EZEC-5」人赢(贪心) ...

  2. 2015年元旦百度新年大K站的情报汇总

    2015年元旦百度新年大K站的情报汇总  电脑经验  王柏元   1天前   90℃   0评论 [编辑] 昨天晚上笔者着实郁闷了一回,因为本人的博客从百度搜索自己名字的排名从第一降到25,一直找不到 ...

  3. 2015 年普及组初赛整理

    重新排列 1234 使得每一个数字都不在原来的位置上,一共有( 9 )种排法. 方法一:只有四个数,可以采用手工枚举的方式. 1234 2143 2413 3142 3412 3421 4132 43 ...

  4. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

  5. docker 容器 defunct 僵尸进程

    在构建 Docker 容器时,我们需要注意子进程的"僵尸化"问题(PID 1 Zombie Reaping Problem).这会导致不可预知的和看起来匪夷所思的问题.本文解释了这 ...

  6. 大数据分析中国冬季重度雾霾的成因(二)

    2013年1月,华北地区的特征是负表面风速异常(更弱的水平扩散) 和正空气温度梯度异常(垂直对流弱大气层稳定).虽然沉淀也可能降低PM2.5,但之前的研究并未发现PM2.5的浓度和冷空气的导致沉淀有显 ...

  7. 迷茫在路口——致我的2014

    今天是2015年一月一日,2014年已经过去了.这意味着再过六个月整,我就要大学毕业,开始为自己的未来拼搏.这一年,我过的充实且迷茫.说2014充实,是因为我从寒假结束到有一个寒假的到来,几乎没有怎么 ...

  8. 我花了一年时间来学机器学习

    我花了一年时间来学机器学习 为了把大家从越来越多的技术水文中拯救出来,"大公司技术博客"将良心推送国内外大公司的优质干货文,如Facebook, Google, Medium, G ...

  9. Microsoft Orleans 之 入门指南

    Microsoft Orleans 在.net用简单方法构建高并发.分布式的大型应用程序框架. 原文:http://dotnet.github.io/orleans/ 在线文档:http://dotn ...

最新文章

  1. 開始Unity3D的学习之旅
  2. 一文看懂AI数据采集标注未来三年的发展和趋势
  3. 写一个函数返回参数二进制中 1 的个数(三种方法)
  4. Team Foundation Server的回滚操作
  5. python except用法和作用_Python面试题(部分附带面试标准答案) 建议收藏
  6. winform 统计大量数据重复的元素个数_DAY10——推断统计之概率与概率分布:常见的离散型概率分布...
  7. C/S和B/S模式的主要特点以及区别在那里?画出CGI工作原理图,具体描述CGI的主要流程和实现步骤。
  8. sqlite 无符号32_《符号与传媒》2020年总目录
  9. 2019牛客暑期多校训练营(第二场)A(随机化)
  10. Atitit.Gui控件and面板----web server区----- web服务器监控面板and控制台条目
  11. 并发编程的挑战——sychronized锁
  12. 黑马程序员---初学java建议(亲身经历)
  13. PLSQL连接Oracle 数据库配置详解
  14. python数据分析之足球运动员分析
  15. 高德地图WEB端软件应用
  16. ISO认证是什么?| ISO体系认证办理
  17. 互动媒体——自画像+简单音乐可视化
  18. RK3399 10.0 打开双wifi STA+AP并发
  19. 【golang】golang初始化项目(iris下载与使用)
  20. Apache POI官方文档

热门文章

  1. 下列哪个适合做链栈_外贸企业如何做Google推广?自然排名和付费广告哪个更适合你?...
  2. C语言学习笔记---枚举类型enum
  3. 单片机ADC采样算法----中位值平均滤波法
  4. Cookie和Session实现记住我的功能
  5. deeplearning中卷积后尺寸的变化
  6. DCMTK3.6.0 (MT支持库)安装 完整说明
  7. VS2008 更改项目名称
  8. 吴恩达深度学习2.1练习_Improving Deep Neural Networks_initialization
  9. SpringBoot 手写过滤器amp;加载第三方过滤器
  10. mysql_connect() 不支持 请检查 mysql 模块是否正确加载 解决方法