pyhon卡脖子
查看原帖
pyhon卡脖子
1275961
meng_yiran楼主2024/12/30 15:47

这题py做只有20,但是一样的代码转c就是100

n,m=map(int,input().split())
lis=[[] for _ in range(n+3)]
for i in range(m):
    a,b=map(int,input().split())
    lis[a].append(b)
for i in range(1,n+1):
    lis[i].sort()

def bfs(x,lis_bfs):
    lis_bfs[x]=False
    print(x,end=' ')
    for i in range(len(lis[x])):
        point=lis[x][i]
        if lis_bfs[point]:
            bfs(lis[x][i],lis_bfs)


bfs(1,lis_bfs=[True]*(n+1))
print()


def dfs(x):
    lis_dfs=[True]*(n+1)
    deque=[]
    lis_dfs[x]=False
    deque.append(x)
    while deque:
        x=deque.pop(0)
        print(x,end=' ')
        for i in range(len(lis[x])):
            if lis_dfs[lis[x][i]]:
                lis_dfs[lis[x][i]]=False
                deque.append(lis[x][i])

dfs(1)
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;

// 广度优先搜索函数
void bfs(int x, vector<bool> &lis_bfs, const vector<vector<int>> &lis) {
    lis_bfs[x] = false;
    cout << x << " ";
    for (int i = 0; i < lis[x].size(); ++i) {
        int point = lis[x][i];
        if (lis_bfs[point]) {
            bfs(point, lis_bfs, lis);
        }
    }
}

// 深度优先搜索函数
void dfs(int x, vector<vector<int>> &lis) {
    vector<bool> lis_dfs(lis.size(), true);
    queue<int> deque;
    lis_dfs[x] = false;
    deque.push(x);
    while (!deque.empty()) {
        x = deque.front();
        deque.pop();
        cout << x << " ";
        for (int i = 0; i < lis[x].size(); ++i) {
            if (lis_dfs[lis[x][i]]) {
                lis_dfs[lis[x][i]] = false;
                deque.push(lis[x][i]);
            }
        }
    }
}

int main() {
    int n, m;
    cin >> n >> m;
    vector<vector<int>> lis(n + 3);
    for (int i = 0; i < m; ++i) {
        int a, b;
        cin >> a >> b;
        lis[a].push_back(b);
    }
    for (int i = 1; i < n + 1; ++i) {
        sort(lis[i].begin(), lis[i].end());
    }

    vector<bool> lis_bfs(n + 1, true);
    bfs(1, lis_bfs, lis);
    cout << endl;

    dfs(1, lis);
    cout << endl;

    return 0;
}

有没有大佬完善一下我py,让他能过,转语言是靠大模型弄的,真的很绝望(哪怕是一些猜想,主意也好)

2024/12/30 15:47
加载中...