Codeforces Round #581 (Div. 2)

 

传送门

 

A.BowWow and the Timetable(思维)

•题意

  在 Saint Petersburg 城市,每天有 T ($T \leq 2_100$)分钟;

  这个城市有一个车站,该车站只在第 $4^0,4^1,4^2,\cdots$ 分钟有车经过;

  问,如果在 S 分钟到达车站,会错过几辆车?

  其中,S 是按照二进制的形式给出;

•题解一(BigInteger)

  用 Java 中的大数处理这个题,就是先将 S 转化成十进制,在转化成 4 的幂的形式;

  属于无脑操作,细节看代码;

•Code

   CodeForces1204A.java

•题解二(二进制转四进制)

  $2^k=4^{\lfloor{\frac{k}{2}}\rfloor}$;

  且有 $2^0+2^1+2^2+\cdots +2^k < 2^{k+1}$

  假设输入的二进制数 S 存放在字符数组中,并且 |S| = k,即最高位为 $2_{k-1}$;

  如果 k-1 为奇数,即 k 为偶数,那么  $4^{\lfloor{\frac{k-1}{2}}\rfloor} < S < 4^{\lfloor{\frac{k}{2}}\rfloor}$,易得共错过 $\frac{k}{2}$ 辆车;

  如果 k-1 为偶数,那么,$S \ge 4^{\lfloor{\frac{k-1}{2}}\rfloor}$,此时需要判断 $S$ 是否等于 $4^{\lfloor{\frac{k-1}{2}}\rfloor}$:

    如果 '>',那么答案为 $\frac{k-1}{2}+1$;

    反之,答案为 $\frac{k-1}{2}$,即判断第 $4^{\lfloor{\frac{k-1}{2}}\rfloor}$ 分钟的车是否会错过;

•Code

  CodeForces1204A.cpp

 

转载于:https://www.cnblogs.com/violet-acmer/p/11515160.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值