多校补完计划 2017-02

本文解析了HDU在线评测系统中从6045至6055共11道题目的解题思路及算法实现,涵盖了从简单的逻辑判断到复杂的数据结构与算法应用。
  #  
Solved785 / 2826AHDU 6045Is Derek lying?
 15 / 118BHDU 6046hash
Solved607 / 1700CHDU 6047Maximum Sequence
 38 / 175DHDU 6048Puzzle
 29 / 249EHDU 6049Sdjpx Is Happy
 241 / 740FHDU 6050Funny Function
 12 / 32GHDU 6051If the starlight never fade
 60 / 293HHDU 6052To my boyfriend
 200 / 1929IHDU 6053TrickGCD
 5 / 57JHDU 6054String and String
Solved624 / 2621KHDU 6055Regular polygon

持续更新?

A

两个人做三选一的选择题,然后给出一个得分情况,问结果能不能肯定是假的

解法:

我们记相同的选择个数为$cnt$

显然:  1.两个人的分数之差,是由不同的选择得到的因此,$n-cnt>=|X-Y|$

   2.其次,为了使得两个人分数凑到$X$和$Y$,;两个人的分数之和肯定要小于理论的最大值,理论的最大值也就是两个人相同的部分都是正确,且不同的地方两个人一定有一个人是正确的,换句话说,所有题至少得了一分,相同的得到了双倍

      也就是$X+Y<=n+cnt$

B

不会

C

给2个数列,一个是数列本身$A$,一个是标号序列$B$,现在要求你再构造长度为$n$的数列$A_{i+1} ... A_{2n}$,每个数字对应$B$中不同的一个元素,

  满足:$a_i$小于等于最大的$a_j - j $ 其中的标号 $j$ 大于等于$a_i$对应的那个元素$b_k$

  求构造的最大数列和,答案要取模

对于样例

  8 11 8 5

  3 1 2 4

  先让 $B$ 中的2 对应 $a_5$ 得到 $8 11 8 5 9 (11-2)$

  再是 1对应 $a_6$ 得到 $8 11 5 9 9 (11-2)$

  再让3 对应 $a_7$ 得到 $8 11 5 9 9 5 (8-3=5)$

  最后是4 对赢$a_8$ 得到 $8 11 5 9 9 5 4 (9-5=4)$

   答案就是$ 9+9+5+4 = 27 $

 解法:

  其实样例里的1,2是可以互换的,猜到了贪心,我们把$B$排序,然后每次取$b_i$之后的最大值即可

  而取最小值可以用线段树也可以用树状数组,也可以预处理

D

E

F

G

H

I

J

K

 给一些整数点,问能凑出多少正多边形?

解法:

  一个结论是,所有点都是整点的正多边形只有正方形,因此只用数正方形即可....

  我们考虑$O(n^2)$的算法,枚举对角线上的两个点,对于对角线上的两个点$(0,0),(a,b)$,可以推导出,另外两个点的坐标分别为$((a+b)/2,(b-a)/2)$和$((a-b)/2,(a+b)/2)$,只需要判断点是否存在即可

  注意

  1.可能爆负数,因此用map比较好,虽然慢了不少...

  2.因为每个正方形有2个对角线,因此答案需要除以二

  3.因为$(x+y)/2$可能会导致整数丢失,所以在输入的时候乘二,或者判断奇偶性

 

转载于:https://www.cnblogs.com/nervendnig/p/9339490.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值