五校联考4总结
来源:互联网 发布:网络改变生活 编辑:程序博客网 时间:2024/04/30 21:55
总结
两天6道题,给虐到190分……
Tsinsen是什么/bi:/oj?卡了一天毫无动静。
day1:
比赛在晚上,精神状态不佳。粗略地看完题感觉都有想法。第一题水逆元+快速幂;第二题贪心;第三题线段树维护。
很快打完了第一题,做了几个数据好像都没错,于是搁置一边。
第二题很有想头,我决定着手研究第二题。
一开始想法是按a[i]/b[i]从大到小排序,贪心选取最大的k个。可是五校联考的题怎么可能这么水呢?
出了几个数据,我猛然发现贪心是错的!!
后来又有好几个想法,都不通。无奈上暴力。
30+30+0=60
day2:
睡了一觉精神好多了。
第一题竟然是字符串回文。可是一看范围,len<=5*(1e6),顿时茫然。我记得GDKOI2014DAY1第一题也是回文串,用到了一个神奇的名叫Manacher的算法。可惜我早已忘记怎么打。
第二题是一只披着狼皮的羊,我没有深思,如此BigWater竟然让我无从下手。
第三题看完题目心中一惊:这不就是欧拉函数吗?第一问phi(n)第二问n*phi(n)/2。
重新看一遍,果然没错。数论知识终于能大显身手了。真是应了一句古话:
不懂数论吃亏啊!
不懂数论吃亏啊!
不懂数论吃亏啊!
于是乎O(T√n)完美解决。
30+0+100=130
题目分类
水题:
【五校联考4day1】学习神技
题意为等比数列求和,逆元+快速幂轻松解决。然而计算模的时候漏打了一个mo,光荣30分。
【五校联考4day2】神界古树
这种大水竟然没发现,真是/bi:/了。
题目所求即为树的重心。
sum[v]记录其节点最多的子树的节点数。每递归到一个点保存max(sum[v])并与ans取最小值。
好题:
【五校联考4day1】寻找神格
题意:
给定一段序列,支持以下操作:
1.单点修改
2.区间修改(貌似并没有什么区别)
3.区间查询总和或方差
方差是什么鬼?
一段序列的方差计算公式:
[(a1-t)²+(a2-t)²+…+(an-t)²]/n,
其中 n为序列的长度, t=(a1+a2+…+an)/n
展开可得
[a1²+a2²+…+an²+nt²-2t(a1+a2+…+an)]/n
令sum1=a1+a2+…+an, sum2=a1²+a2²+…+an²,
上面的式子就化成了
(sum2+2*sum1/n*sum1)/n
即
sum2/n+2*sqr(sum1)/sqr(n)
我们发现上式只用到了区间和与区间平方和,因此只要记录这两个值就能算出方差。用线段树维护。打起来比较恶心,但不长。注意精度问题。
【五校联考4day2】数学之神
第一问不讲了。
第二问是所有满足欧拉函数的条件的数的总和。
问题即为所有满足gcd(n,i)=1的i的和。
而我们有若gcd(n,i)=1,则gcd(n,n-i)=1.
此时i与n-i都要算入答案中,i+n-i=n.共有phi(n)/2对这样的整数
所以总和为n*phi(n)/2
【五校联考4day2】神族文字
枚举中间点向两端扩展30分,Manacher 100分。
神奇的Manacher能以O(n)的神时间复杂度解决最长回文串的问题。
神题
【五校联考4day1】淬炼神体
这次的题都跟神有关啊,神题降临。
正解01分数规划,用二分实现。
代码:
while(r-l>1e-5){ double mid=(l+r)/2,ans=0; for(int i=1;i<=n;i++) c[i]=a[i]-mid*b[i]; sort(c+1,c+n+1); for(int i=n-k+1;i<=n;i++) ans+=c[i]; if(ans>0) l=mid; else r=mid;}
- 五校联考4总结
- NOIP五校联考1-4总结
- 五校联考四总结
- 【五校联考四】总结
- 五校联考四总结
- 【五校联考2015 9.4】总结
- noip2015五校联考2总结
- 【五校联考2015 9.19】总结
- noip2015五校联考3总结
- noip2015五校联考5总结
- noip2015五校联考6总结
- 关于五校联考
- 【五校联考】集体照
- 五校联考第一套第一式总结
- noip2015五校联考1、9.12模拟总结
- NOIP2016提高组 五校联考1 总结
- Lzy9.4联考总结
- 五校联考六T1
- Minimum Window Substring
- 编译kbengine_ogre_demo-master(二)
- JAVA初学基础知识 环境介绍
- c++笔记05---双目运算符,单目操作符,下标操作符,函数操作符,解引用
- Nosql数据库——redis(五)主从复制
- 五校联考4总结
- 利用Visual Studio 2013通过MSCOMM控件实现串口通信
- C++中的delete和delete[]的区别
- Xamarin之Mac上的安装
- 第四周--项目五--猴子选大王2
- 经典算法题——第七题 KMP算法
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
- c++笔记06---继承,公有继承,继承方式对访控属性的影响,私有继承和保护继承
- 【Android】Error:Execution failed for task ':app:mergeDebugResources'. > String index out of range: 0