8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

cpython3 / pypy3中的CSE python不同TLE3

Zalim 7月前

55 0
我正在尝试CSES子阵列总和II -https://cses.fi/problemset/task/1661,我确定逻辑,但我在Cpython和pypy3中获得了不同的tle。 这是我的代码: 来自SYS Import Stdin,Stdou ...

我正在尝试CSES子阵列总和II- https:https:https:https:https:https:https:https: //cses.fi/problemset/task/1661 我确定逻辑,但是我在cpython和pypy3

中得到了不同的tle

这是我的代码:

from sys import stdin, stdout
 
_, x = list(map(int,stdin.readline().split()))
arr = list(map(int,stdin.readline().split()))
 
d = {0: 1}
 
curr_sum = 0
ans = 0
 
for num in arr:
    curr_sum += num
    ans += d.get(curr_sum - x, 0)
    d[curr_sum] = d.get(curr_sum, 0) + 1
 
stdout.write(str(ans))

这是我在pypy3中的结果:

“

这是我在cpython3中的结果:

“

描述:

  • pypy3 -Testcase 25失败,但26和27通过,少于0.2秒
  • cpython3- testcase 25通过0.85秒,但26和27失败。
所有3个测试容器的输入大小为 2*10^5

我认为逻辑是正确的,但是我想看看我是否错过了任何东西,或者我可以尝试其他任何优化。

编辑:添加代码为块而不是图像 + tle的图像描述

帖子版权声明 1、本帖标题: cpython3 / pypy3中的CSE python不同TLE3
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Zalim在本站《python》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我正在尝试寻找一个文本块,并将某些行放入字典数组中。 因此,我找到的每个文本块的字典。 例如,以下文本: 一些 其他 文本 地址对象o ...

    我正在尝试寻找文本块,并将某些行放入字典数组中。

    因此,我找到的每个文本块的字典。 例如以下文本:
    some
    other
    text
    
    address-object object1
        name "name1"
        uuid 4ac9cf52-02b5-eecf-0100-18c24100da5e
        zone zone1
        host ip1
        exit
    
    address-object object2
        name "name2"
        uuid a5c02150-a47e-748d-0100-18c24100da5e
        zone zone2
        host ip2
        exit
    
    some
    more text
    

    我会想存储IP,然后在每个块的数组中进行ZORE,因此我最终会得到 [[主机:IP1,ZONE:ZONE 1],[HOST:IP2,ZORE:ZONE:ZONE 2] ]

    我试图通过文本文件循环,但无法正确通过块正确循环。

    我认为我必须使用某种形式的迭代,但我不确定。 我最终将一个数组带有一个来自第一个地址对象行的所有项目,直到某些关键字为止。 我需要每个地址对象一个循环,并在遇到空线时得到下一个。
  • 基于一个包含统计信息的网站,我实施了基本的Web刮擦代码,这是: 导入 导入请求 来自BS4进口美丽的小组 content = requests.g ...

    基于一个包含统计信息的网站,我实施了基本的Web刮擦代码,这里是:

    import re
    import requests
    from bs4 import BeautifulSoup
    content = requests.get("https://www.geostat.ge/ka/modules/categories/26/samomkhmareblo-fasebis-indeksi-inflatsia")
    content = BeautifulSoup(content.content, 'html.parser')
    #print(content.prettify())
    information = []
    for row in content.select('tbody tr'):
        for data in row.find_all('td'):
            if len(data.text.strip()) != 0:
                information.append(data.text.strip())
    print(information)
    

    它返回以下信息:

    ['2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021', '2022', '2023', 'საშუალო წლიური წინა წლის საშუალო წლიურთან', '99.1', '99.5', '103.1', '104.0', '102.1', '106.0', '102.6', '104.9', '105.2', '109.6', '111.9', '102.5', 'დეკემბერი წინა წლის დეკემბერთან', '98.6', '102.4', '102.0', '104.9', '101.8', '106.7', '101.5', '107.0', '102.4', '113.9', '109.8', '100.4'
    

    现在,本文包含“საშუალო”年之前的第一部分,其余的是两个文本之间的通货膨胀,因此我实施了此非常手动的代码:

    years = []
    average_annual = []
    december = []
    
    first_index = information.index('საშუალო წლიური წინა წლის საშუალო წლიურთან')
    second_index = information.index('დეკემბერი წინა წლის დეკემბერთან')
    for i in range(0, first_index):
        years.append(int(information[i]))
    print(years)
    for  i in range(first_index + 1, second_index):
        average_annual.append(float(information[i]))
    print(average_annual)
    for i in range(second_index + 1, len(information)):
        december.append(float(information[i]))
    print(december)
    

    它显示正确的分离:

    [2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023]
    [99.1, 99.5, 103.1, 104.0, 102.1, 106.0, 102.6, 104.9, 105.2, 109.6, 111.9, 102.5]
    [98.6, 102.4, 102.0, 104.9, 101.8, 106.7, 101.5, 107.0, 102.4, 113.9, 109.8, 100.4]
    

    是否有更优化的方法?

    我尝试了此版本:

    data = pd.DataFrame(pd.read_html("https://www.geostat.ge/ka/modules/categories/26/samomkhmareblo-fasebis-indeksi-inflatsia", encoding='utf-8')[0])
    #data.drop(0, axis=0, inplace=True)
    #data = data.droplevel(level=0, axis=1)
    print(data)
    

    它返回此结果:

                                              0       1   ...      11      12
    0                                        NaN  2012.0  ...  2022.0  2023.0
    1  საშუალო წლიური წინა წლის საშუალო წლიურთან    99.1  ...   111.9   102.5
    2            დეკემბერი წინა წლის დეკემბერთან    98.6  ...   109.8   100.4
    
    [3 rows x 13 columns]
    

    如何处理这种情况?

  • 什么是
  • 哇,这是一个很好的答案,顺便说一句,Stringio的应用是什么?
  • sai 7月前 0 只看Ta
    引用 6
    @dato pandas.read_html需要作为一个类似于文件的对象,因此Stringio从字符串中创建一个对象。
  • 当我使用您的代码时,它会生成此错误:requests.exceptions.invalidschema:'geostat.ge/ka/modules/categories/26/'找不到连接适配器。
  • @dato尝试在字符串前添加https://
  • 它正在工作,非常感谢
  • 引用 10
    我是一名学生从事本科生,目前正在从事液态状态机进行与分类有关的任务。 但是,即使花了几天的时间研究LSM,我也无法fi ...
    <旁边class =“ s-notice s-notice __info后通知JS-post-notice mb16”角色=“状态”>
    关闭
    这个问题需要更多 重点 。 它目前不接受答案。

    想要改进这个问题吗? 更新问题,因此它仅针对一个问题,仅 编辑此帖子 。。 P>

    我是一名学生,正在追求我的本科生,目前我正在研究液态机器以进行与分类有关的任务。

    但是,即使花了几天的时间研究LSM,我也找不到如何实施分类的良好开端。

    没有适当的资源,学习概念也很难。

    所以,有人可以帮助我进行研究吗?
  • 欢迎来到堆栈溢出。 它
  • 引用 12
    我之所以问这个,是因为我没有找到对Python中统一访问原则的疑问的任何答案,什么应该是“好练习”。 在课堂内,我有methodo ...
    <旁边class =“ s-notice s-notice __info后通知JS-post-notice mb16”角色=“状态”>
    关闭
    这个问题是 基于意见的 。 它目前不接受答案。

    想要改进这个问题吗? 更新问题,以便可以通过 编辑此帖子来回答事实和引用。

    我问这个问题是因为我没有找到对Python中统一访问原则的疑问的任何答案,什么应该是“好实践”。

    在类中 ,我有一种方法可以根据下一步的情况来调用或设置属性:

    • 为了获得我使用 self.property 语法(而不是 self._property )。
    • 要进行编辑,我将通过setter跳过任何“检查”,我将使用 self._property = something (例如,用于在 __ __ INT __ INT __ 方法中初始化属性)。
    • 用于编辑而无需跳过设置器的内部逻辑,我将使用 self.property = something

    这是正确的指南吗?

    如果没有,我应该遵循什么指南? 为什么以及何时应通过其登录器访问财产?

    假设下一堂课的问题:

    class Foo:
        def __init__(self, something):
            self._something = something
    
        @property
        def something(self) -> Any:
            return self._something
    
        @something.setter
        def something(self, any_value):
            # any validation
            self._something = any_value
    
  • 如果我正确理解您的问题,那么答案是“是的,这就是您应该做的方式”。 使用属性的直接访问
  • 引用 14
    您已经以一种允许解释为“征求意见”的格式提出了问题 - 这不是Stackoverflow的目的。 但是,您的问题也可以解释为“为什么以及何时应通过其访问访问财产?” 这与意见无关,而是关于登录器的预期用途。
  • 引用 15
    你说得对。 我将重命名这个问题。 谢谢
  • 引用 16
    - 您不是回答自己的问题吗? 要编辑和跳过设置器,请使用专用版本;要编辑而无需跳过设置器,请使用公共版本。
  • 至于“良好练习”,我认为大多数人默认使用公共版本,除非您需要像格里斯塔(Grismar)那样绕过公共版本。 但这正进入基于意见的领域。有太多的事情要考虑,这是这样的玩具示例中缺少太多背景。 例如,为什么
返回
作者最近主题: