前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每日一题 | 字符串转换问题

每日一题 | 字符串转换问题

作者头像
TechFlow-承志
发布2020-08-11 16:21:03
2760
发布2020-08-11 16:21:03
举报
文章被收录于专栏:TechFlow

昨日题解

每日一题 | 解一个复杂的方程

这题出自codeforces,链接:https://codeforces.com/gym/102638/problem/A

昨天这题是一个经典的方程求解问题,等式成立的前提也就是

(\sqrt{x-3} - \sqrt{\frac{3x+2}{2}}^3)^7-(x - \sqrt{\frac{x^2 - 1984}{5}})^3=0

题目当中已经明确说了,方程的根只有一个,并且是整数。

我们观察一下方程,它的指数是奇数,这样的方程的图像类似于下面这张图,也就是说大部分x有意义的域当中,都是递增的,而不是二次方程那样递增和递减对半开的抛物线。

再加上题目当中明确的表示只有一个方程为0的根,那么说明和x轴的交点发生在递增的区间内。实际上我们可以代入两个x尝试一下,很快就可以发现,这个解应该在100到300的区间内。那么剩下的就很简单了,我们只需要使用二分法,很容易找到解。

代码语言:javascript
复制
import math


def get_value(x):
    return pow(math.sqrt(x-3) - pow((3*x + 2)/2, 1/3), 7) - pow(x - math.sqrt((x*x - 1984)/5), 3)


l, r = 100, 300



while r - l > 1:
    m = (l + r) // 2
    v = get_value(m)
    if v > 0:
        r = m
    else:
        l = m+1

print(l)

最后得到的结果是228.

今日问题

有两个人分别不同的字母,其中A喜欢a, c, e...,B喜欢b, d, f...。

现在有一个字符串,我们每次可以交换两个字母,不限制交换次数,要求这两个字母分别被两个不同的人喜欢。请问我们能否通过交换操作使得字符串S1转变成字符串S2。如果可以返回Yes,否则返回No。

样例

- END -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Coder梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 昨日题解
  • 今日问题
    • 样例
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档