首页 / 客观题库

80385 - CSP-S2025阅读题3

基础语法

题目(材料题)

01 #include <algorithm>

02 #include <cstdio>

03 #include <cstring>

04 #include <vector>

05 #define ll long long

06 int n, m;

07 std::vector<int> k, p;

08 inline int mpow(int x, int k) {

09     int ans = 1;

10     for (; k; k = k >> 1, x = x * x) {

11         if (k & 1)

12             ans = ans * x;

13     }

14     return ans;

15 }

16 std::vector<int> ans1, ans2;

17 int cnt1, cnt2;

18 inline void dfs(std::vector<int>& ans, int& cnt, int l, int r, int v) {

19     if (l > r) {

20         ++cnt;

21         ans.push_back(v);

22         return;

23     }

24     for (int i = 1; i <= m; ++i) {

25         dfs(ans, cnt, l + 1, r, v + k[l] * mpow(i, p[l]));

26     }

27     return;

28 }

29 std::vector<int> cntans1;

30 int main() {

31     scanf("%d%d", &n, &m);

32     k.resize(n + 1);

33     p.resize(n + 1);

34     for (int i = 1; i <= n; ++i) {

35         scanf("%d%d", &k[i], &p[i]);

36     }

37     dfs(ans1, cnt1, 1, n >> 1, 0);

38     dfs(ans2, cnt2, (n >> 1) + 1, n, 0);

39     std::sort(ans1.begin(), ans1.end());

40     int newcnt1 = 1;

41     cntans1.push_back(1);

42     for (int i = 1; i < cnt1; ++i) {

43         if (ans1[i] == ans1[newcnt1 - 1]) {

44             ++cntans1[newcnt1 - 1];

45         } else {

46             ans1[newcnt1++] = ans1[i];

47             cntans1.push_back(1);

48         }

49     }

50     cnt1 = newcnt1;

51     std::sort(ans2.begin(), ans2.end());

52     int las = 0;

53     ll ans = 0;

54     for (int i = cnt2 - 1; i >= 0; --i) {

55         for (; las < cnt1 && ans1[las] + ans2[i] < 0; ++las)

56             ;

57         if (las < cnt1 && ans1[las] + ans2[i] == 0)

58             ans += cntans1[las];

59     }

60     printf("%lld\n", ans);

61     return 0;

62 }
||

删除第 51 行的 “std::sort(ans2.begin(), ans2.end());” 后,代码输出的结果不会受到影响。

正确

错误

假设不发生溢出,函数mpow(x, k)的功能是求 x^k

正确

错误

代码第39~50行的目的是将ans1数组进行"去重"操作。

正确

错误

( 单选 )

当输入为"3 15 1 2 -1 2 1 2"时,输出结果为?

A 4

B 8

C 0

D 10

( 单选 )

记p数组元素最大值为P,该代码的时间复杂度是?

A $O(n)$

B $O(m^(n·log(mn)))$

C $O(m^(n/2)·log(m^(n/2)))$

D $O(m^(n/2)·(log(m^(n/2)) + logP))$

( 单选 )

本题所求出的是?

A 满足 $a,b,c \in [1,m]$的整数方程 $a^3+b^3=c^3$的解的数量

B 满足 $a,b,c \in [1,m]$的整数方程 $a^2+b^2=c^2$的解的数量

C 满足 $x_i \in [1,m]$的整数方程 $\sum_{i=1}^n k_i·x_i^p$的解的数量

D 满足 $x_i \in [0,m]$的整数方程 $\sum_{i=1}^n k_i·x_i^p$的解的数量

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36