当前位置:网站首页>C. colonne Swapping [tri + Simulation]

C. colonne Swapping [tri + Simulation]

2022-07-07 05:55:00 Rétrospective du roi dragon blanc

Insérer la description de l'image ici

Analyse

Notez où chaque ligne ne correspond pas au tri
Si plus de trois refroidissements directs
Et avec unsetLes dossiers doivent être changés(l,r)
Si plus de1Cool.
Et puis on juge chaque lignel rDoit satisfairea[l] < a[r]
Sinon, il fait froid

ac code

import sys
input = sys.stdin.readline

for _ in range(int(input())):
    n, m = list(map(int, input().split()))
    grid = [[0] * m for _ in range(n)]
    for i in range(n):
        grid[i] = list(map(int, input().split()))
    flag = True
    mustChanges = set()
    for i in range(n):
        lst = []
        temp = sorted(grid[i])
        for j in range(m):
            if temp[j] != grid[i][j]:
                lst.append(j)
        if len(lst) > 2:
            flag = False
            break
        elif len(lst) == 2:
            mustChanges.add((lst[0], lst[1]))
        if len(mustChanges) >= 2:
            flag = False
            break




    if not flag:
        print(-1)
    else:
        if len(mustChanges) == 0:
            print(1, 1)
        else:
            l, r = list(mustChanges)[0]
            flag = True
            for i in range(n):
                if grid[i][l] < grid[i][r]:
                    flag = False
                    break
            if flag:
                print(l + 1, r + 1)
            else:
                print(-1)

Résumé

Trier + Simulation

原网站

版权声明
本文为[Rétrospective du roi dragon blanc]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207070037372731.html