码迷,mamicode.com
首页 > 其他好文 > 详细

【考试】数学round1# 15/06/22

时间:2015-06-22 16:21:41      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

先说结果,本场考试三傻逼题,我这个逗比只有220,虽然虐了rank2 70分,但在我校比较没有任何意义,这都不能AK真是见了鬼了

本次考试考的是初等数论,T1约数T2T3唯一分解,T1各种不爽,T2T3各种无聊

 

T1 War

题意

  有N个点,点有权,ij间边的权值为gcd(wi,wj),任意两点间可连边,求最大生成树。n,wi<=1e6。

扯淡

  一看到数据范围整个人都吓傻了

  然后这道题我是最后做的...

  我们发现wi<=1e6,这显然是暗示我们开桶的节奏

  对于每个数wi,找它的约数

  约数相同的用一个链表串起来

  然后再遍历每个约数的链表 这里有一个技巧 比如链表有abc个元素 并不用两两尝试ab,bc,ac连n*(n-1)/2条边 只需要ab,bc这样连n-1条边

  要是前者那我们还不如普通暴力 脑补一下这么做正确性显然 连边什么的用并查集

  然后我找约数用了sqrt(n),于是复杂度nsqrt(n)

  我们可以轻松过掉1e5,但1e6有点卡啊

  听说大家都打的普通暴力,以至于也没啥动力,只想弃疗

  然后数据除了1e3全是1e6,我就呵呵呵呵呵了,被卡成n^2一样的30分

  那么知道正解后我更想骂自己傻逼

  为什么要用点找边呢!难道不会用边找点么!

  为什么要用数找约数呢!当然是要用约数找数啊!

  这就是sqrt和log的区别!

  为什么艾氏筛法高效!就是因为每找到一个素数后让它作为约数直接j+=i!

  果然我对算法理解还不够深!不过有了这次的经历那必是刻骨铭心了!

  这实在是不难想,我为什么想不到呢!

  因为当时只想弃疗没想着优化,习惯也不好,没想有没有更快的等效处理方法直接去打?我怎么能这样!

题解

  从大到小枚举每个数作为gcd,把wi开个桶直接找点连边

 

T2 Homework

题意

  有一个数x,已知和a的gcd为a1,和b的lcm为b1,求x的可能情况。

扯淡

  无聊题,就是有点麻烦

  关于为什么是90分我也不太清楚>.< 极端情况?

题解

  大力分解质因子

  根据gcd=min(ei,ej), lcm=max(ei,ej)讨论一下就好

 

T3 Game

题意

  1~n的数随你选,选了乘起来,乘起来必须是平方数,求最大的平方数。

题解

  这就是道一眼题

  我们发现

  作为平方数每一个ei肯定是偶数

  那么我们先贪心 把1~n乘起来

  对于那些pi的ei是奇数的,就舍去一次方,相当于去掉了这个素数,也不会有其他影响,必是对的

  

这次还是有很多遗憾

但结果也不是很差的样子(然而我校是神校)

感觉这种考试相对考得好 也就是可以让自己的心情好一点

不过这次考试还是有意义的

至少让我对于“不要用数找约数,要用约数找数”这一点刻骨铭心

虽然一直都知道,但真正用起来却不一定反映的过来,很多知识都是这样

明天终于不考了...我终于可以屯题了...

 

【考试】数学round1# 15/06/22

标签:

原文地址:http://www.cnblogs.com/xkui/p/4593321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!