RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-544830

Настя's questions

Martin Hope
Настя
Asked: 2023-09-03 17:38:00 +0000 UTC

数字系统上的问题,代码给出执行错误

  • 6

大家好,我解决了这个问题:

Ромка недавно вернулся с юбилея своего друга Сашки. Праздник 
отмечался с размахом и Ромка подумал, а что если бы юбилеи были 
чаще? Можно же не ограничиваться десятичной системой счисления. 
Ромка ввёл понятие юбилейности числа, равное максимальному 
количеству нулей в конце записи этого числа в какой-то системе 
счисления с основанием B, где B — целое число, большее единицы. 
Например, юбилейность числа 256 равна 8, так как в двоичной 
системе счисления оно оканчивается на 8 нулей. Ромка хочет узнать, 
когда его ближайший значимый юбилей, если в прошлом месяце ему 
исполнилось X лет? Значимым юбилеем он считает количество лет, 
которое обладает юбилейностью хотя бы L.

Формат входных данных
Единственная строка ввода содержит два целых числа 
X и L(1≤X≤10^12; 1≤L≤50).

Формат результата
Выведите единственное число — ответ на задачу.

Примеры
Входные данные
9990 4
Выходные данные
10000

Входные данные
100 8
Выходные данные
256

Входные данные
100 2
Выходные данные
104

我执行此任务的代码:

X, L = map(int, input().split())
cnt = 10**20
maximum = int(X**(1/L)) + 1
a = [1]*(maximum + 1)
a[0] = 0
a[1] = 0
i = 0
while i <= maximum:
    while not a[i]:
        i += 1
        if i > maximum:
            break
    else:
        k = i**L
        cnt = min(X - (X%k) + k, cnt)
        for j in range(i*i, maximum + 1, i):
            a[j] = 0
        i += 1
print(cnt)

我的解决方案的简要说明:

Ввожу входные данные, если L равно единице, то мы сразу 
можем дать ответ, это X+1, иначе мы создаём заведомо 
очень большую переменную cnt (, в которой хранится ответ, 
потом проходимся циклом while, если в какой-то момент 
i нам подходит, то заканчиваем цикл, иначе, обновляем 
cnt, вспомогательный массив (он нужен для того, чтобы 
искать ответ во вложенном while) заполняем нулями 
(то есть потенциальными ответами) в интервале от i^2 до 
maximum+1 с шагом в i, в конце программы выводим 
получившийся ответ, который лежит в cnt

但是检查系统写道代码在测试5上产生执行错误(复制判决:测试5上的执行错误),请帮忙,我将非常感激,提前感谢!

python
  • 2 个回答
  • 163 Views
Martin Hope
Настя
Asked: 2023-08-31 00:30:33 +0000 UTC

帮助提出解决问题的想法

  • 3

大家好,我解决了以下问题:

Ограничение времени: 1 с
Ограничение реального времени: 5 с
Ограничение памяти: 256 M

Вы любите яблоки и за сегодня хотите съесть x зеленых яблок 
и y красных. У вас в саду поспело уже aзеленых яблок сладостью 
p1, p2, …, pa и b красных яблок сладостью q1, q2, …, qb. А еще 
у вас растет c магических яблок сладостью r1, r2, …, rc, 
которые вы умеете превращать перед едой в красные или зеленые.
Понятное дело, что вы хотите съесть яблоки с наибольшей 
суммарной сладостью.
Найдите максимально возможную сумму сладости съеденных яблок, 
которая может быть достигнута при оптимальном превращении 
магических яблок.

Формат входных данных
В первой строке записано пять чисел 
x, y, a, b, c
(1≤x≤a≤10^5,1≤y≤b≤10^5,1≤c≤10^5).

Во второй строке записано a чисел pi
(1≤pi≤10^9) — сладость зеленых яблок

В третьей строке записано b чисел qi
(1≤qi≤10^9) — сладость красных яблок

В четвертой строке записано c чисел ri
(1≤ri≤10^9) — сладость магических яблок

Формат выходных данных
Выведите максимально возможную сумму сладости съеденных яблок.

Примеры
Входные данные
1 3 2 3 4
5 6
1 2 3
10 11 12 13
Выходные данные
46
Входные данные
1 1 2 2 1
10 4
5 6
1
Выходные данные
16

但我不代表编写代码的想法,请帮我想出一个实现的想法(不需要代码),我将非常感谢您的帮助!

python
  • 3 个回答
  • 215 Views
Martin Hope
Настя
Asked: 2023-08-14 19:24:08 +0000 UTC

关于修改列表的Python任务,代码不修改列表

  • 2

针对以下问题编写了代码:

ограничение по времени на тест 1 секунда
ограничение по памяти на тест 256 мегабайт

В подарок на день рождения Мишка получил массив целых 
чисел a длины n (какая неожиданность!).

Мишке не нравится этот подарок и он хочет как-нибудь его 
изменить. Он изобрел алгоритм и назвал его «Алгоритм 
Мишки для Соседних Замен». Этот алгоритм может быть 
представлен в виде последовательности ходов:

Заменить все вхождения 1 в массиве a на 2;
Заменить все вхождения 2 в массиве a на 1;
Заменить все вхождения 3 в массиве a на 4;
Заменить все вхождения 4 в массиве a на 3;
Заменить все вхождения 5 в массиве a на 6;
Заменить все вхождения 6 в массиве a на 5;
…
Заменить все вхождения 10^9−1 в массиве 
a на 10^9;
Заменить все вхождения 10^9 в массиве 
a на 10^9−1.
Заметим, что многоточие в середине алгоритма означает, 
что Мишка применяет эти замены к каждой паре соседних чисел 
(2i−1,2i) для всех i∈{1,2,…,5⋅108}, как это описано выше.

Например, для массива a=[1,2,4,5,10]
следующая последовательность массивов описывает алгоритм:

[1,2,4,5,10]→(заменить все вхождения 1 на 2)→
[2,2,4,5,10]→(заменить все вхождения 2 на 1)→
[1,1,4,5,10]→(заменить все вхождения 3 на 4)→
[1,1,4,5,10]→(заменить все вхождения 4 на 3)→
[1,1,3,5,10]→(заменить все вхождения 5 на 6)→
[1,1,3,6,10]→(заменить все вхождения 6 на 5)→
[1,1,3,5,10]→
 …
 →
[1,1,3,5,10]→(заменить все вхождения 10 на 9)→
[1,1,3,5,9]. 
Дальнейшие шаги алгоритма не изменят массив.

Мишка очень ленивый и он не хочет сам применять 
эти изменения. Но ему очень интересно узнать, как 
будет выглядеть результат их применения. 
Помогите Мишке найти его.

Входные данные
Первая строка входных данных содержит одно целое 
число n(1≤n≤1000) — количество элементов в подарке 
Мишки с его дня рождения (внезапно, массиве).
Вторая строка входных данных содержит n
целых чисел a1,a2,…,an(1≤ai≤109) — элементы массива.

Выходные данные
Выведите n
целых чисел — b1,b2,…,bn, где bi
означает измененное значение i-го элемента массива a
после применения к нему «Алгоритма Мишки для Соседних 
Замен». Заметьте, что вы не можете менять порядок 
элементов массива.

Примеры
входные данные
5
1 2 4 5 10
выходные данные
1 1 3 5 9

входные данные
10
10000 10 50605065 1 5 89 5 999999999 60506056 1000000000
выходные данные
9999 9 50605065 1 5 89 5 999999999 60506055 999999999

Примечание
Первый тестовый пример разобран в условии задачи.

我的代码:

def f(s):
    a=s 
    b=[]
    q=2 
    w=1 
    while a!=b:
        c=a
        for i in c:
            if i==q:
                i=w
        a, b=c, a 
        q+=2 
        w+=2
    return a
n=int(input()) 
a=list(map(int, input().split())) 
print(*f(a))

但是当你输入任何数组时,代码都会显示它,也就是说,它根本没有改变任何东西,请帮助!

python
  • 1 个回答
  • 43 Views
Martin Hope
Настя
Asked: 2023-08-13 17:57:58 +0000 UTC

字符串测试任务,python,代码给出错误答案

  • 7

我为以下任务编写了代码:

ограничение по времени на тест 2 секунды
ограничение по памяти на тест 256 мегабайт

Витя начал учить берляндский язык. Известно, что 
в Берляндии используют латинский алфавит. Буквы 
«a», «o», «u», «i» и «e» являются гласными. 
Остальные буквы — согласные.

В берляндском языке после каждой согласной буквы 
обязательно идёт гласная буква, а после гласной — 
может идти любая. Единственным исключением является 
согласная буква «n» — после неё может идти любая 
буква (не только гласная), а может и не идти буква 
вообще. Например, слова «harakiri», «yupie», «man» 
и «nbo» являются берляндскими, а слова «horse», 
«king», «my» и «nz» — нет.

Помогите Вите понять, является ли слово s
берляндским.

Входные данные
Первая строка входных данных содержит строку s, 
состоящую из |s|(1≤|s|≤100) строчных 
латинских букв.

Выходные данные
Выведите «YES» (без кавычек), если идет гласная 
после каждой согласной кроме «n», иначе выведите «NO».

Вы можете выводить каждую из букв в любом регистре 
(строчную или заглавную).

Примеры

входные данные
sumimasen
выходные данные
YES

входные данные
ninja
выходные данные
YES

входные данные
codeforces
выходные данные
NO

Примечание
В первом и втором примерах после каждой согласной 
кроме «n» идёт гласная, поэтому слово является 
берляндским.

В третьем примере после согласной «r» идёт другая 
согласная «c», а согласная «s» стоит в конце, 
поэтому слово не является берляндским.

我为它写了代码:

def solve(s): 
    q=["a", "o", "u", "i", "e"] 
    for i in range(len(s)-1):
        if (s[i] not in q) and (s[i]!="n") and (s[i+1] not in q):
            return "NO" 
    return "YES"
s=input() 
print(solve(s))

但是在检查系统(Codeforces)的几次测试中它给出了错误的答案,请帮我修复代码!

python
  • 3 个回答
  • 44 Views
Martin Hope
Настя
Asked: 2023-08-10 00:05:45 +0000 UTC

图,使用邻接矩阵计算孤立的顶点,代码给出了错误的答案

  • 8

解决了以下问题:

На острове расположены несколько государств, изолированных 
друг от друга. У программиста Васи есть данные обо всех дорогах 
острова, заданные в виде весовой матрицы соответствующего графа, 
узлы которого – города, а веса рёбер – расстояния между ними. 
Напишите программу, которая определяет, сколько государств, 
состоящих из единственного города, находится на острове.

Входные данные
В первой строке вводится количество городов на карте N ( 1 ≤ N ≤ 1000 ).
 В следующих N строках записано по N чисел, разделённых пробелами – 
элементы весовой матрицы графа, который описывает схему дорог.

Выходные данные
Программа должна вывести номера всех государств, состоящих из одного 
города, в порядке возрастания. Нумерация начинается с единицы. Если 
таких городов нет, нужно вывести число 0.

Примеры
входные данные
5
0 1 2 0 0
1 0 3 0 0
2 3 0 0 0
0 0 0 0 0
0 0 0 0 0
выходные данные
4 5 

我为它写了代码:

n=int(input()) 
a=[list(map(int, input().split())) for i in range(n)]
ans1=[]
for i in range(n):
    if len(set(a[i]))==1:
        ans1.append(i+1)
ans2=[] 
for i in range(n):
    q=0 
    for j in range(n):
        q+=a[j][i] 
    if q==0:
        ans2.append(i+1)
if len(ans1)==0 or len(ans2)==0:
    print(0) 
else:
    for i in ans1:
        if i in ans2:
            print(i, end=" ")

但是在检查系统的三个测试中,代码给出了错误的答案,请帮助!任务链接: https://informatics.msk.ru/mod/statements/view.php ?id=83389&chapterid=479#1

python
  • 2 个回答
  • 41 Views
Martin Hope
Настя
Asked: 2023-07-27 21:28:00 +0000 UTC

背包问题的变体,while循环没有结束(python)

  • 5

解决了问题:

Пират нашел на захваченном корабле N золотых слитков, каждый из 
которых имеет значительный вес ( W i для слитка с номером i ). 
Во время боя захваченный корабль получил серьёзные повреждения 
и вот-вот затонет. Пират может увезти на шлюпке на свой корабль 
только C килограммов груза. Какие слитки он должен выбрать, 
чтобы увезти как можно больше золота?

Входные данные
Первая строка содержит грузоподъёмность шлюпки пирата C в 
килограммах ( 1 ≤ C ≤ 5000 ). Во второй строке записано количество 
найденных золотых слитков N ( 1 ≤ N ≤ 100 ). В третьей строке 
записано N натуральных чисел: массы каждого слитка, разделённые 
пробелами, в порядке возрастания (неубывания).

Выходные данные
В первой строке программа должна вывести наибольшую массу золотых 
слитков, которые может вывезти пират. Во второй строке нужно 
вывести массы взятых слитков в порядке убывания (невозрастания). 
Если у задачи есть несколько вариантов решения, достаточно вывести 
любой из них.

Примеры
входные данные
800
4
200 400 500 700
выходные данные
700
500 200

这似乎是背包问题的一种变体,代码如下:

n=int(input()) 
m=int(input()) 
a=list(map(int, input().split()))  
ans=[]
while sum(ans)<n:
    u=0 
    for i in a:
        if sum(ans)+i<=n and i>u and i not in ans:
            u=i 
    ans.append(u) 
print(sum(ans))
print(ans)             

但是当我输入输入数据时,数字的输入并没有结束,另外,我认为如果列表a中某个元素重复,程序会给出错误的答案,我不知道该怎么办......请帮我修改一下代码!!!!

python
  • 3 个回答
  • 58 Views
Martin Hope
Настя
Asked: 2023-07-24 18:52:02 +0000 UTC

将数字转换为二进制数系统,python代码输出错误答案

  • 5

我为该任务编写了代码:

Напишите программу, которая по данным числам A и n записывает 
представление числа A в n-разрядном двоичном дополнительном коде.

Входные данные
Первая строка входных данных содержит число A, вторая строка –– число 
n, при этом 2 ≤ n ≤ 16, −2^n−1 ≤ A ≤ (2^n−1)−1 .

Выходные данные
Программа должна вывести строку из n символов, содержащих запись числа 
A в n-разрядном двоичном дополнительном коде, первый символ –– старший 
знаковый разряд.

Примеры
входные данные
3
8

выходные данные
00000011
входные данные
57
8

выходные данные
00111001

我的代码:

def binar(x, n): 
    ans="" 
    while x>0:
        ans+=str(x%2)
        x//=2
    ans="0"*(n-len(ans))+(ans[::-1])
    return ans 
A=int(input()) 
n=int(input()) 
print(binar(A, n))

但在检查系统的一些测试中(它们是未知的),它给出了错误的答案,请帮助!

python
  • 4 个回答
  • 60 Views
Martin Hope
Настя
Asked: 2023-07-23 15:41:46 +0000 UTC

找到前 N 个素数。代码进入无限循环

  • 5

我为该任务编写了代码:

Напишите программу, которая выводит на экран первые N простых чисел.

Входные данные
Входная строка содержит число N .

Выходные данные
Программа должна вывести первые N простых чисел в одной строке, 
разделив их пробелом.

Примеры
входные данные
10
выходные данные
2 3 5 7 11 13 17 19 23 29

代码:

def is_prime(n):
    q=2
    while q*q<=n:
        if n%q==0:
            return False
        q+=1
    return True
n=int(input()) 
ans=[2] 
q=3
while len(ans)<n:
    if is_prime(q):
        ans.append(q) 
        q+=2 
print(*ans)

但是当向控制台输入数据时,输入没有结束,并且代码运行时间太长,我不知道该怎么办,请帮忙!

python
  • 1 个回答
  • 47 Views
Martin Hope
Настя
Asked: 2023-07-20 22:24:49 +0000 UTC

Python 代码并不总是正确运行

  • 5

我为该任务编写了代码:

Дан массив a длины n, вы можете сделать не более k 
операций следующего типа: выбрать 2
различных элемента в массиве, прибавить 1
к первому и вычесть 1 из второго. 
После применения операции все элемента a
должны остаться неотрицательными.
Какой лексикографически минимальный массив можно 
получить? Массив xлексикографически меньше чем 
массив y, если есть индекс i такой, что 
xi<yi, и xj=yjдля всех 1≤j<i. Проще говоря, 
для первого такого i, где массивы различны, xi<yi.

Входные данные
В первой строке записано одно целое число 
t (1≤t≤20) – количество наборов входных данных.

В первой строке каждого набора входных 
данных записаны 2целых числа n и k
(2≤n≤100, 1≤k≤10000) — размер массива 
и максимальное количество операций.

Во второй строке каждого набора входных 
данных записаны n целых чисел a1, a2, …, an
(0≤ai≤100) — элементы массива a.

Выходные данные
На каждый набор входных данных выведите 
лексикографически минимальный массив, который 
может получиться из исходного за не более чем k
операций.

Пример
входные данные
2
3 1
3 1 4
2 10
1 0
выходные данные
2 1 5 
0 1 

但在一些测试中它给出了错误的答案,我的代码是:

n=int(input()) 
for i in range(n):
    a, b=map(int, input().split()) 
    s=list(map(int, input().split())) 
    if s.count(0)==a-1:
        print("0 "*(a-1), end="")
        print(max(s))
    else:   
        x=0
        y=a-1
        while s[x]>0 and s[y]>0 and b>0 and s.count(0)<a-1:
            s[x]-=1 
            s[y]+=1 
            b-=1 
            if s[x]==0:
                x+=1 
            if s[y]==0:
                y-=1 
        print(*s)

我不知道该怎么办,请帮忙修改和完善代码!

python
  • 2 个回答
  • 68 Views
Martin Hope
Настя
Asked: 2023-07-19 20:18:39 +0000 UTC

该代码给出了 python 的错误答案

  • 5

解决了以下问题:

Группа из n танцоров репетирует выступление на закрытии олимпиады.
Танцоры выстроены в ряд,
они выучили свои движения и не могут меняться местами. 
Для некоторых из них уже куплен 
белый танцевальный костюм, для некоторых уже куплен чёрный костюм, 
а с костюмами остальных руководитель ансамбля ещё не определился.

Как раз в день, когда он собрался завершить художественный 
замысел и заказать пошив оставшихся костюмов, 
ему сообщили, что участники олимпиады будут в восторге, 
если цвета костюмов танцоров 
будут составлять палиндром, если смотреть 
на них в том порядке, в котором танцоры выстроены на сцене. 
Напомним, что палиндромом называется последовательность, 
одинаково читающаяся как слева направо, так и справа налево. 
Руководителю ансамбля идея очень понравилась, и теперь он 
хочет заказать оставшиеся костюмы таким образом, чтобы 
цвет костюма первого слева танцора совпадал с цветом костюма 
первого справа танцора, 
цвет костюма второго слева танцора совпадал с цветом костюма 
второго справа танцора 
и так далее.

Руководитель знает, сколько бурлей стоит один чёрный костюм и 
сколько бурлей стоит один белый костюм. 
Вам требуется определить, возможно ли заказать оставшиеся костюмы 
таким образом, чтобы полученная последовательность цветов костюмов танцоров 
была палиндромом, и, если это возможно, 
то какое минимальное суммарное количество бурлей потребуется потратить?
Напомним, что танцоры не могу меняться местами, а также 
в силу бюрократических формальностей не разрешается заказывать 
новые костюмы для танцоров, чьи цвета на сцене уже определены, 
даже если это позволит получить ответ меньшей итоговой стоимости.

但我的代码在某些测试中给出了错误的答案,请帮忙,我的代码是:

n, w, b=map(int, input().split()) # 0=белый, 1=чёрный, 2=не выбран 
x=min(w, b)
if w>b:
    u=1
else:
    u=0
a=list(map(int, input().split()))
ans=0
for i in range(n//2+(n%2)):
    if a[i]==0:
        if a[n-i-1]==1:
            ans=-1 
            break
        elif a[n-i-1]==2:
            ans+=w 
            a[n-i-1]=0
    #
    elif a[i]==1:
        if a[n-i-1]==0:
            ans=-1 
            break
        elif a[n-i-1]==2:
            ans+=b 
            a[n-i-1]=1
    #
    elif a[i]==2:
        if a[n-i-1]==0:
            ans+=w 
            a[i]=0 
        elif a[n-i-1]==1:
            ans+=b 
            a[i]=1 
        elif a[n-i-1]==2:
            ans+=x
            a[i]=u 
            a[n-i-1]=u 
print(ans)
python
  • 1 个回答
  • 41 Views
Martin Hope
Настя
Asked: 2023-07-16 17:25:45 +0000 UTC

Python代码优化

  • 5

我为该任务编写了代码:

По заданному натуральному числу N необходимо вычислить количество 
натуральных чисел, которые есть делителями N! (факториала числа N).

Например, при N=4, N!=4·3·2·1=24. Это число имеет следующие делители: 
1, 2, 3, 4, 6, 8, 12, 24. Таким образом, искомое количество составляет 8.

Напишите программу, которая по натуральному N, находит количество 
делителей его факториала.

Формат входных данных

Единственная строка входного файла содержит одно целое число N (1≤N≤45).

Формат выходных данных

Единственная строка выходного файла должна содержать одно целое 
число –найденное количество делителей числа N!

Примеры
входные данные
4
выходные данные
8

входные данные 
3
выходные данные 
4

我的代码:

from math import factorial
a=int(input())
n=factorial(a)
ans=0 
q=1
while q*q<n:
    if n%q==0:
        ans+=2
    q+=1
if q*q==n:
    ans+=1
print(ans)

但在检查系统的一些测试中,代码运行时间过长,请帮忙优化一下!!!

python
  • 2 个回答
  • 49 Views
Martin Hope
Настя
Asked: 2023-07-12 18:03:54 +0000 UTC

代码未通过时间限制(python优化)

  • 5

我解决了这个问题:

给定n 个整数a 1 , a 2 , …, a n。

查找1 ≤ l <的所有整数对 ( l , r)上的最大值max(a l , a l+1 , … , a r ) min(a l , a l+1 , …, a r ) r≤n。

输入数据

第一行包含一个整数t ( 1 ≤ t ≤ 10000 ) — 测试用例的数量。

每个测试用例的第一行包含一个整数 n ( 2 ≤ n ≤ 10 5 )。

每个测试用例的第二行包含n 个整数 a 1 , a 2 , …, a n ( 1 ≤ a i ≤ 10 6 )。

保证所有测试用例的n之和不超过3·10 5。

输出

对于每个测试用例,打印一个整数——条件下乘积的最大可能值。

例子

输入数据

4
3
2 4 3
4
3 2 3 1
2
69 69
6
719313 273225 402638 473783 804745 323328

输出

12
6
4761
381274500335

我为它写了代码:

n=int(input()) 
for x in range(n):
    m=int(input()) 
    a=list(map(int, input().split())) 
    ans=a[0]*a[1] 
    for l in range(m-1):
        for r in range(l+1, m):
            s=a[l:r+1] 
            if min(s)*max(s)>ans:
                ans=min(s)*max(s)
    print(ans)

但没有超过时间限制,请告诉我如何加速!

python
  • 1 个回答
  • 41 Views
Martin Hope
Настя
Asked: 2023-07-11 18:36:42 +0000 UTC

代码花费的时间比应有的时间长(python)

  • 5

我为以下任务编写了代码:

Требуется определить в заданном массиве количество элементов, 
равных искомому числу.

Входные данные
В первой строке вводится одно натуральное число N, не превосходящее 105: 
количество чисел в массиве.

Во второй строке вводятся N натуральных чисел, не превосходящих 109, 
каждое следующее не меньше предыдущего.

В третьей строке вводится количество искомых чисел 
M - натуральное число, не превосходящее 106.

В четвертой строке вводится M натуральных чисел, не 
превосходящих 109.

Выходные данные
Для каждого запроса выведите в отдельной строке одно число: 
количество элементов массива, равных числу-запросу. Элементы 
массива нумеруются с единицы.

Если в массиве нет такого числа, выведите 0.
Примеры
входные данные
4
1 2 2 4
4
1 4 3 2
выходные данные
1
1
0
2

我的代码:

def l_binar(a, x):
    l=0
    r=len(a)-1
    ans=-1
    while l<=r:
        m=(l+r)//2
        if a[m]==x:
            ans=m
            r=m-1
        elif a[m]<x:
            l=m+1
        else:
            r=m-1
    return ans
#       
def r_binar(a, x):
    l=0
    r=len(a)-1
    ans=-1
    while l<=r:
        m=(l+r)//2
        if a[m]==x:
            ans=m 
            l=m+1
        elif a[m]<x:
            l=m+1
        else:
            r=m-1
    return ans
###
n=int(input())
a=list(map(int, input().split())) 
m=int(input()) 
b=list(map(int, input().split())) 

for i in range(m):
    if l_binar(sorted(a), b[i])+1!=0 and r_binar(sorted(a), b[i])+1!=0:
        print(r_binar(sorted(a), b[i])+1-l_binar(sorted(a), b[i]))
    else:
        print(0)

它工作正常,但时间太长,在检查系统的最后2次测试中(这些测试未知),它超出了时间限制。请帮忙加快速度!

python
  • 2 个回答
  • 26 Views
Martin Hope
Настя
Asked: 2023-07-08 17:36:36 +0000 UTC

如何完成数字输入?

  • 6

在解决以下问题时,您需要完成数字输入(据我所知,使用control + d)

Входные данные
В каждой строке сначала записан номер класса (число, равное 9, 10 или 11), 
затем (через пробел) — фамилия ученика.

Выходные данные
Необходимо вывести список школьников по классам: сначала всех учеников 9 класса, 
затем — 10, затем — 11. Внутри одного класса порядок
вывода фамилий должен быть таким же, как на входе.
Примеры
входные данные
9 Ivanov
10 Petrov
11 Sidorov
9 Grigoryev
9 Sergeev
10 Yakovlev
выходные данные
9 Ivanov
9 Grigoryev
9 Sergeev
10 Petrov
10 Yakovlev
11 Sidorov

问题是我不知道如何完成输入...我的代码是:

nine=[]
ten=[]
eleven=[]
while True:
    q=input().split()
    if  ... : #здесь должно быть заканчивающее ввод условие
        break 

    if q[0]=="9":
        nine.append(q)
    elif q[0]=="10":
        ten.append(q) 
    elif q[0]=="11":
        eleven.append(q)
print(*nine, sep="\n") 
print(*ten, sep="\n") 
print(*eleven, sep="\n")

请帮帮我!!!

python
  • 2 个回答
  • 49 Views
Martin Hope
Настя
Asked: 2023-06-29 23:24:24 +0000 UTC

猜数字,程序没有考虑到所有选项

  • 4

问题出在下面的代码中:

Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n. 
Беатриса пытается угадать это число, для этого она называет
некоторые множества натуральных чисел. Август отвечает Беатрисе YES, если среди
названных ей чисел есть задуманное или NO в противном случае. 
После нескольких заданных вопросов Беатриса запуталась в том, какие вопросы она задавала и какие
ответы получила и просит вас помочь ей определить, какие числа мог задумать Август.

Входные данные
Первая строка входных данных содержит число n — наибольшее число, которое мог загадать Август. 
Далее идут строки, содержащие вопросы Беатрисы. Каждая строка представляет собой набор чисел, разделённых
пробелами. После каждой строки с вопросом идет ответ Августа: YES или NO.

Наконец, последняя строка входных данных содержит одно слово HELP.

Выходные данные
Вы должны вывести (через пробел, в порядке возрастания) все числа, которые мог задумать Август.

Примеры
входные данные
10
1 2 3 4 5
YES
2 4 6 8 10
NO
HELP
выходные данные
1 3 5

我为它写了代码:

n=int(input()) 
mn=[] 
a=[]
for i in range(1, n+1):
    mn.append(i) 
mn=set(mn)
x=set()
q="" 
while q!="HELP":
    q=input() 
    if q=="HELP":
        break 
    else:
        a.append(q)
for i in range(0, len(a)-1, 2):
    if a[i+1]=="YES":
        q=[] 
        w=a[i]
        for j in range(len(w)):
            if w[j]!=" ":
                q.append(int(w[j]))
        #


        cu=list(mn) 
        for k in range(len(cu)):
            if cu[k] not in q:
                mn.discard(cu[k])
    else:
        q=[] 
        w=a[i]
        for j in range(len(w)):
            if w[j]!=" ":
                q.append(int(w[j]))
        #

        for k in range(len(q)):
            if q[k] in mn:
                mn.discard(q[k])
               

print(*sorted(mn))  

但在问题给出的测试中,程序输出 3 5 而不是 1 3 5,此外,在检查系统(未知)的最后 2 次测试中,它工作的时间太长。请帮帮我!!!

python
  • 2 个回答
  • 42 Views
Martin Hope
Настя
Asked: 2023-06-14 17:26:45 +0000 UTC

程序运行时间过长

  • 5

大家好,我已经解决了以下问题:

相似数组

如果两个数组由相同的元素组成(没有多重性),我们就称它们为相似的。找出这两个数组是否相似。

输入数据

第一行包含数字 N(1≤N≤100000) — 第一个数组的大小。第二行包含 N 个模数不超过 109 的整数——数组的元素。然后以相同的方式定义第二个数组。

输出

如果数组相似,程序应该打印 YES,否则打印 NO。

例子

Ввод 
3
1 7 9
4
9 7 7 1

结论

YES 

输入

4
1 2 3 4
3
5 1 3

结论

NO

我为它写了一个程序


n=int(input()) 
l1=list(map(int, input().split())) 
m=int(input())
l2=list(map(int, input().split())) 
ans="YES"
if len(l1)>len(l2):
    a=l1
    b=l2
else:
    a=l2 
    b=l1
for i in range(len(a)):
    if a[i] not in b:
        ans="NO" 
        break
print(ans)

但它的工作时间太长,在第 3 次测试时它不符合时限。请帮帮我!!!

python
  • 1 个回答
  • 36 Views
Martin Hope
Настя
Asked: 2023-05-14 19:46:10 +0000 UTC

找出数字乘积为 N 的最小数

  • 6

我为任务写了代码

给定一个自然数 N 找出大于 10 的数字乘积恰好为 N 的最小数

但是在某些测试中(不幸的是,这些测试是未知的),我的程序运行时间太长。


n=int(input()) 
ans="No solution"
if n==0:
    print(10)
elif n<10:
    print(int("1"+str(n)))
else:
    for i in range(int("9"*n)):
        i=str(i) 
        a=1 
        for j in range(len(i)):
            a*=int(i[j])
        if n==a:
            ans=i 
            break
    print(ans)

我不知道出了什么问题...请帮我弄清楚!

python
  • 3 个回答
  • 59 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5