21年的CSP-S阴(tang)完了
2026-07-05 15:24:03
发布于:天津
21年的CSP-S阴完了
*(就这么阴(唐)吧)
2.1 球的体积交(比较正常,但是计算量:请输入文本)[痞老板];
2.2 最大子段和(有必要弄的七扭八怪的吗?)↓最简版;
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 1005;int a[MAXN], dp[MAXN],n;
int main(){
cin >> n;
for (int i = 1; i <= n; ++i) cin >> a[i];
dp[1] = a[1];
int ans = dp[1];
for (int i = 2; i <= n; ++i) dp[i] = max(a[i], dp[i-1] + a[i]),ans = max(ans, dp[i]);
cout << max(ans, 0) << endl;
return 0;
}
2.3 base64。原题↓
01 #include <iostream>
02 #include <string>
03 using namespace std;
04
05 char base[64];
06 char table[256];
07
08 void init()
09 {
10 for (int i = 0; i < 26; i++) base[i] = 'A' + i;
11 for (int i = 0; i < 26; i++) base[26 + i] = 'a' + i;
12 for (int i = 0; i < 10; i++) base[52 + i] = '0' + i;
13 base[62] = '+', base[63] = '/';
14
15 for (int i = 0; i < 256; i++) table[i] = 0xff;
16 for (int i = 0; i < 64; i++) table[base[i]] = i;
17 table['='] = 0;
18 }
19
20 string encode(string str)
21 {
22 string ret;
23 int i;
24 for (i = 0; i + 3 <= str.size(); i += 3) {
25 ret += base[str[i] >> 2];
26 ret += base[(str[i] & 0x03) << 4 | str[i + 1] >> 4];
27 ret += base[(str[i + 1] & 0x0f) << 2 | str[i + 2] >> 6];
28 ret += base[str[i + 2] & 0x3f];
29 }
30 if (i < str.size()) {
31 ret += base[str[i] >> 2];
32 if (i + 1 == str.size()) {
33 ret += base[(str[i] & 0x03) << 4];
34 ret += "==";
35 }
36 else {
37 ret += base[(str[i] & 0x03) << 4 | str[i + 1] >> 4];
38 ret += base[(str[i + 1] & 0x0f) << 2];
39 ret += "=";
40 }
41 }
42 return ret;
43 }
44
45 string decode(string str)
46 {
47 string ret;
48 int i;
49 for (i = 0; i < str.size(); i += 4) {
50 ret += table[str[i]] << 2 | table[str[i + 1]] >> 4;
51 if (str[i + 2] != '=')
52 ret += (table[str[i + 1]] & 0x0f) << 4 | table[str[i +2]] >> 2;
53 if (str[i + 3] != '=')
54 ret += table[str[i + 2]] << 6 | table[str[i + 3]];
55 }
56 return ret;
57 }
58
59 int main()
60 {
61 init();
62 cout << int(table[0]) << endl;
63
64 int opt;
65 string str;
66 cin >> opt >> str;
67 cout << (opt ? decode(str) : encode(str)) << endl;
68 return 0;
69 }
假设输入总是合法的(一个整数和一个不含空白字符的字符串,用空格隔开),完成下面的判断题和单选题:
(1).程序总是先输出一行一个整数,再输出一行一个字符串。( )
官方:答案是错误,因为 第67行后面有endl,会输出3行.
I think,虽然输出3行但是确实先输出一行整数,再输出一行字符串。题干只描述输出的先后顺序,没有限定 “总共只输出两行”。看图:

====================================================
3.1~3.2:题量居然不是5:5,是4:6
3.1:谁能想到是dijkstra啊
3.2:1.没有题干只有代码(acgo网站内)
..........2.

全部评论 2
第67行有endl神了
2天前 来自 广东
16
昨天 来自 天津
1
ceshi
3天前 来自 天津
1
















有帮助,赞一个