c和python AC的标准不一样
查看原帖
c和python AC的标准不一样
1027116
Ohuoo楼主2023/9/15 11:40

同样的思路,用c能过,用python不能过.... python最后两个测试点超时... 什么时候能优化一下python 的判题啊...

#include <stdio.h>

int n, k;
int ans = 0;

void dfs(int now, int step, int sumN) {
    if (sumN == n && step == k) {
        ans++;
        return;
    }
    if (sumN > n || step == k) {
        return;
    }
    int end = (n - sumN) / (k - step);
    for (int i = now; i <= end; i++) {
        dfs(i, step + 1, sumN + i);
    }
}

int main() {
    scanf("%d %d", &n, &k);
    dfs(1, 0, 0);
    printf("%d\n", ans);
    return 0;
}
# @Time    : 2023/9/15 10:51
# @Author  : Ohuo
# @FileName: P1025 [NOIP2001 提高组] 数的划分.py
# @Software: PyCharm

n, k = map(int, input().split())
ans = 0


def dfs(now, step, sumN):
    global ans
    if sumN == n and step == k:
        ans += 1
        return
    if sumN > n or step == k:
        return
    end = int((n - sumN) / (k - step))
    for i in range(now, end + 1):
        dfs(i, step + 1, sumN + i)


if __name__ == '__main__':
    dfs(1, 0, 0)
    print(ans)

2023/9/15 11:40
加载中...