pa2011 切题记

       PA好难啊。。而且还没有官方题解。根本切不动啊(而且还卡常数卡空间)

Algorithmic Engagements 2011

Tasks

Tulips(Round 0)(10/10)
Rooks [B](Round 1)(10/10)
Unlucky [A](Round 2)(10/10)
Climbing [B](Round 2)(10/10)
Journeys [A](Round 3)(10/10)
Pedestrian Crossing [B](Round 3)(10/10)
Fuel [B](Round 4)(10/10)
Plotter [A](Round 4)(0/10)
Declining Sequences [B](Round 5)(0/10)
Double Factorial [B](Round 5)(10/10)
Trails [A](Round 5)(0/10)
Vacation [A](Round 5)(0/10)
Automorphisms [B](Round 6)(10/10)
Kangaroos [A](Round 6)(10/10)
Laser Pool [A](Round 6)(0/10)
The Shortest Period [B](Round 6)(10/10)
Road Network 2(Final round - practice session)(10/10)
Computational Biology(Final round)(0/10)
Byteland Worldbeat Publishers(Final round)(0/10)
Exam(Final round)(0/10)
Computational Geometry(Final round)(10/10)
Coprime Numbers(Final round)(10/10)
Telescope(Final round)(0/10)
Prime prime power(Final round)(10/10)
Hard Choice(Final round)(10/10)
Tulips 去重后求和然后用15000去减。。。。

Rooks [B] 暴力扫下来就好了

Unlucky [A] 根本玩不出样例。然后去看黈力blog发现黈力一开始也玩不出来。。显然除了第一次每次都要取满,然后每一次要让放的水被后面所有的利用,然后就没了。

Climbing [B] 很久以前初中组宁波市复赛的第四题(%%%当场A掉的数国队)。贪心能加就加就好了

Journeys [A] 线段数优化建图。注意不要忘了连双向边。然后宽搜即可。注意要给线段树上的节点打标记表示是否用这个节点更新过了。

Pedestrian Crossing [B] 在%步长的条件下相当于判断不能走的是否覆盖了所有的余数。

Fuel [B] 首先求出直径。直径上的边贡献算1,其余的算2贪心即可。

Double Factorial [B] 判断5的倍数的个数,25的倍数的个数。。然后高斯求和即可。要开两个long long保存。

Automorphisms [B] 先找直径中点(没有就自己建一个)变成有根树。然后就变成hash统计相同子树的个数了

Kangaroos [A] 先把询问抽象成点插入kd-tree,然后一个一个插入给定的区间找到不合法的点(块)更新标记。(%%%lbn)

The Shortest Period [B] 大力调和级数,具体判断可以用hash+二分找坏点。分坏点在最前面和不在最前面一段讨论。

Road Network 2 由于是一棵树,可以首先找叶子节点,然后和度数>1且最小的点连边。如果无法连边则无解。

Computational Geometry 随便想一种构造方式实现就好了吧。奇数无解,对于偶数我是在4个点的基础上每次加入一个1*2的长方形刚好面积和点都+2。

Coprime Numbers 用莫比乌斯函数大力调和级数即可。

Prime prime power 首先答案最大不会超过1.1*10^18。然后次数一定是2,3,5,7...,59,然后对于3及以上的次数,显然底数<=1100000预处理出<=1100000的质数;然后对于次数2,底数一定是[sqrt(n),sqrt(n)+k*ln(n)]里面的质数,用<=sqrt(sqrt(n)+k*ln(n))的质数取筛即可。这样就可以过啦。

Hard Choice 时光倒流后先求出一颗生成树。然后对于加入的一条边就把两个点在树上的路径缩起来用并查集实现即可。

       水平太差了。。T_T根本切不动。

       代码戳->    

by lych

2016.7.11


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值