2017-10-18离线赛总结

本次竞赛总分240分,与预期略有差距。Day2表现不佳未能完成全部题目。通过哈希技巧解决了复杂度问题,实现了高效求解。

失分小结:
估分:250
实际分数:240
和上一次2014day1加起来大概是500分 刚好省一
个人感觉day2比day1还水 没有AK对不起自己
前面两题发挥稳定,后面一题强行又把复杂度算错,不敢哈希。。。
套一个高精,结构常数太大TE了十分

题解:
C题:
由于a1、a2、a3等已知,而未知数只有一个x,且取值范围固定(1-1000000)
可尝试逐个带入,但由于a1,a2,a3是巨大的数,若使用高精度 常数会很大 分分钟TE
尝试把每一个系数a Hash成一个值 设Hash的模数取k个
那么Hash的复杂度为k*len len为a的长度
若这时直接带入计算,复杂度为n*m*k,还是太大
设前i项的Hash值为F[i]
则F[i+1]=(F[i]*10+a[i+1])%P
根据一个奇怪的中国剩余定理
可得F[i]=F[i%P]%P;
那么只用预处理出F[0…P-1]的值就可以了
最终复杂度为n*P*k
为了保证正确性,可以把1-1000的素数表打出来逐一判断

小结:
像这种复杂的,无法化简但又与值有关的题目都可尝试Hash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值