小编Atu*_*tul的帖子

将n作为k数之和写入的方式的数量,每个部分都有限制

标题说明了一切.

我需要分割nk部分之和,其中每个部分k i应该在给定数组的1 <= k i <= r i的范围内r.

例如 -

n = 4, k = 3 and r = [2, 2, 1]
ans = 2
#[2, 1, 1], [1, 2, 1]
Run Code Online (Sandbox Code Playgroud)

订单很重要.(2,1,1)和(1,2,1)是不同的.

我教使用星和酒吧的方法解决它,而是因为上界[R 我不知道接近它.

我实现了一个直接递归函数,它只适用于小值.

原始问题的制约因素是

1 <= n <= 107

1 <= k <= 105

1 <= ri <= 51

所有计算都将在Prime Modulo下完成.

我在这里发现了类似的问题,但我不知道如何在程序中实现.这里

我的蛮力递归功能 -

#define MAX 1000
const int md = 1e9 + 7; …
Run Code Online (Sandbox Code Playgroud)

algorithm math combinatorics polynomial-math

6
推荐指数
1
解决办法
206
查看次数

我如何计算以 m 为模的主要电力塔

问题来了——我得到了一个质数 P 和一个数 K。我需要计算 P ^ P ^ P ... k 次模到 m。

这里P是素数。

(P ^ (P ^ (P ^ P .... k times))) % m
Run Code Online (Sandbox Code Playgroud)

几个例子

对于 P = 2, K = 3, m = 3

2 ^ 2 ^ 2 % 3 = 1
Run Code Online (Sandbox Code Playgroud)

对于 P = 5,K = 3,m = 3

5 ^ 5 ^ 5 % 3 = 2
Run Code Online (Sandbox Code Playgroud)

我可以使用蛮力,但问题是数字会变得非常大。

这是限制条件

2 <= p < 10 ^ 8
1 <= k < 10 ^ 8 
1 …
Run Code Online (Sandbox Code Playgroud)

algorithm math primes number-theory modular-arithmetic

5
推荐指数
1
解决办法
975
查看次数

使用公共和私有重载构造函数时的c ++垃圾成员值

#include <iostream>

using namespace std;
class date{

    public:
        int month;
        int day;
        int year;

    private:
        date(int x, int y, int z);
    public:
        date(int x, int y);
};

date::date(int x, int y, int z): month{x}, day{y}, year{z} {

    cout << "Hello you called me PRIVATE constructor" << endl;

} 

date::date(int x, int y){
    cout << "Hello you called me PUBLIC constructor" << endl;
    date(x, y, 100);
}


int main(){

    date x{11, 21};

    cout << x.month << endl;
    cout << x.day << …
Run Code Online (Sandbox Code Playgroud)

c++ constructor class

3
推荐指数
1
解决办法
72
查看次数

请解释一下这个奇怪的行为c++乘以数字然后取模

我对 C++ 的经验较少,主要用 python 编写代码。在网上解决一些编程挑战时,有一部分代码我必须将两个数字相乘并用 mod 减少它。

v = (u*node) % 100000
Run Code Online (Sandbox Code Playgroud)

其中 u 和 node 是范围为 1 - 100000 的 int 值。由于时间限制问题,我用 C++ 编写了代码。这是我写的

long long v = (u * node) % 100000;
Run Code Online (Sandbox Code Playgroud)

提交时我在所有测试用例中都遇到运行时错误。我下载了失败的测试用例并在本地计算机上运行,​​我得到了完美的输出。

看到社论后,我将该行更改为类似这样的内容

long long v = u;
v = (v*node) % 100000;
Run Code Online (Sandbox Code Playgroud)

并提交。我通过了所有测试用例。请任何人解释一下这两行之间有什么区别..

变量数据类型 -

int u
int node
Run Code Online (Sandbox Code Playgroud)

c++ type-conversion

2
推荐指数
1
解决办法
778
查看次数

如何使用python生成此序列

例如,如果q = 2,那么我必须生成[1,1]到[2,2]之间的所有序列.如果q = 3,则生成[1,1,1]到[3,3,3]之间的序列.对于q = 4,则生成[1,1,1,1]至[4,4,4,4]之间的序列等.

序列的例子.对于q = 3

(1, 1, 1)
(1, 1, 2)
(1, 1, 3)
(1, 2, 1)
(1, 2, 2)
(1, 2, 3)
(1, 3, 1)
(1, 3, 2)
(1, 3, 3)
(2, 1, 1)
(2, 1, 2)
(2, 1, 3)
(2, 2, 1)
(2, 2, 2)
(2, 2, 3)
(2, 3, 1)
(2, 3, 2)
(2, 3, 3)
(3, 1, 1)
(3, 1, 2)
(3, 1, 3)
(3, 2, 1)
(3, 2, 2)
(3, …
Run Code Online (Sandbox Code Playgroud)

python python-itertools

0
推荐指数
1
解决办法
91
查看次数

如何在python中异或两个二进制字符串

我需要在两个二进制字符串之间进行XOR运算.

xor("00110011", "11001100") = "11111111"
Run Code Online (Sandbox Code Playgroud)

我目前正在使用此功能

def xor(x, y):
    ans = ""
    for i in xrange(len(x)):
        if x[i] == "0" and y[i] == "1" or x[i] == "1" and y[i] == "0":
            ans += "1"
        else:
            ans += "0"
    return ans
Run Code Online (Sandbox Code Playgroud)

请给我好方法

python xor

-2
推荐指数
1
解决办法
4882
查看次数