QLU寒假训练赛题解合集

为了节省版面:
1.所有寒假训练赛题解都集中在这一篇里
2.所有题解代码都可以直接点击题目链接查看

0115

A题:签到,输出n+1
B题:签到,从左端点向右找一段和小于0的区间,再从右往左找
C题:暴力枚举,for a in [sqrt(n),1],1e6数量级从头跑一遍
D题:字典树,递归。蛮有嚼头。
首先从30位到1位建立一颗字典树
然后从根节点开始思考这个问题:
现在所有的节点被分成了30位为0和为1两组,此时有两种情况:

  • 两组元素个数都大于0的情况:
    当第30位xor操作结束,要么30位的0全变成1,1全变成0;要么0还是0,1还是1。因为既有30位是0的数又有是1的数,所以必须有一组要30位为1。而我们的目标是要最小化最大值,所以就要把问题向下推,挑两组里最大值更小的那一组,然后令这一组30位变成1。
  • 只有一组元素的情况:
    因为最小化最大值,所以就要让这一组的贡献最小,即让这一位变成0。

用到的特殊技巧:(n>>i)&1可以求出n的二进制第i位(从0起)的值
E题:高数题。求y=x+向上取整(d/(x+1))=》就是要求y=x+d/(x+1)的极值点=》求一阶导数等于0的点,然后特殊处理一下if(d%(x+1)) ans++
F题:数学题,ab+a+b=conc(a,b) -> a(b+1)+b=a*(10^ 位数(b))+b -> b+1=10^位数(b) -> b=9,99,999,…
G题:签到,字符串里含H或Q或9输出YES

发布了37 篇原创文章 · 获赞 6 · 访问量 4487
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览