一、十四届C/C++程序设计C组试题
十四届程序C组试题A
#include
int main()
{
long long sum = 0;
int n = 20230408;
int i = 0;
// 累加从1到n的所有整数
for (i = 1; i
//十四届程序C组试题B
#include
#include
#include
#include
// 时间字符串解析为结构体 tm
void parseTime(char* timeString, struct tm* timeStruct) {
sscanf(timeString, "%d-%d-%d %d:%d:%d",
&timeStruct->tm_year, &timeStruct->tm_mon, &timeStruct->tm_mday,
&timeStruct->tm_hour, &timeStruct->tm_min, &timeStruct->tm_sec);
// tm_year表示的是自1900年以来的年数,需要减去1900
timeStruct->tm_year -= 1900;
// tm_mon表示的是0-11的月份,需要减去1
timeStruct->tm_mon -= 1;
}
// 每一对相邻的上下班打卡之间的时间差
int calculateTimeDifference(char* time1, char* time2) {
struct tm start, end;
// 解析时间字符串为结构体 tm
parseTime(time1, &start);
parseTime(time2, &end);
// 使用 mktime 将 tm 结构体转换为时间戳
time_t startTime = mktime(&start);
time_t endTime = mktime(&end);
// 计算时间差
return difftime(endTime, startTime);
}
int main() {
// 打卡记录数组
char* punchRecords[] = {
"2022-01-01 07:58:02",
"2022-01-01 12:00:05",
"2022-01-01 16:服务器托管网01:35",
"2022-01-02 00:20:05"
};
int numRecords = sizeof(punchRecords) / sizeof(punchRecords[0]);
// 按照时间顺序对打卡记录进行排序
for (int i = 0; i 0) {
// 交换记录
char* temp = punchRecords[j];
punchRecords[j] = punchRecords[j + 1];
punchRecords[j + 1] = temp;
}
}
}
// 计算总工作时长
int totalWorkDuration = 0;
for (int i = 0; i
十四届程序C组试题C
#include
int main() {
int n; // 事件数量
scanf("%d", &n);
int A[n], B[n], C[n]; // 存储每个事件中的A、B、C值
int maxEvents = -1; // 最多发生的事件数量
int X = 0, Y = 0, Z = 0; // 初始士兵数量
for (int i = 0; i Y + Z) || (Y > X + Z) || (Z > X + Y)) {
// 更新最多发生的事件数量
maxEvents = i + 1;
}
}
printf("%dn", maxEvents);
return 0;
}
#include
int maximize_substrings(char* s)
{
int count = 0;
int i, n;
// 遍历字符串,从第二个字符开始
for (i = 1; s[i] != ''; ++i)
{
// 如果当前位置是'?',则尽量使其与前一个字符不同
if (s[i] == '?') {
s[i] = (s[i - 1] == '1') ? '0' : '1';
}
// 计算互不重叠的00和11子串的个数
if (s[i] == s[i - 1])
{
count += 1;
}
}
return count;
}
int main()
{
char input_str[] = "1?0?1";
int result = maximize_substrings(input_str);
printf("互不重叠的00和11子串个数:%dn", result);
return 0;
}
#include
#include
// 函数:计算最小翻转次数
int min_flips_to_match(char S[], char T[])
{
int n = strlen(S);
int flips = 0;
// 从第二个位置到倒数第二个位置进行遍历
for (int i = 1; i
#include
#include
#define MOD 998244353
// 函数:计算矩阵子矩阵价值的和
int matrixSubmatrixSum(int n, int m, int matrix[n][m])
{
// 预处理,计算每个位置的最大值和最小值
int maxVal[n][m];
int minVal[n][m];
for (int i = 0; i 0)
{
maxVal[i][j] = (maxVal[i][j] > maxVal[i - 1][j]) ? maxVal[i][j] : maxVal[i - 1][j];
minVal[i][j] = (minVal[i][j] 0)
{
maxVal[i][j] = (maxVal[i][j] > maxVal[i][j - 1]) ? maxVal[i][j] : maxVal[i][j - 1];
服务器托管网 minVal[i][j] = (minVal[i][j] matrix[i][j]) ? maxVal[i][j] : matrix[i][j];
minVal[i][j] = (minVal[i][j] {1, 2, 3},{4, 5, 6},{7, 8, 9}};
// 计算答案
int result = matrixSubmatrixSum(n, m, matrix);
// 输出结果
printf("Sum of submatrix values: %dn", result);
return 0;
}
#include
#include
#define MOD 998244353
int matrix_value_sum(int matrix[][100], int n, int m, int a, int b) {
int result = 0;
for (int i = 0; i max_val) ? matrix[x][y] : max_val;
min_val = (matrix[x][y]
#include
#define max(a, b) ((a) > (b) ? (a) : (b))
int max_xor_difference(int arr[], int n) {
int prefix_xor_left[100000];
int prefix_xor_right[100000];
// 计算从左往右的前缀异或和
prefix_xor_left[0] = arr[0];
for (int i = 1; i = 0; --i) {
prefix_xor_right[i] = prefix_xor_right[i + 1] ^ arr[i];
}
// 计算两个不相交子段内数的异或和的差值的最大值
int max_difference = 0;
for (int i = 0; i
#include
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
void find_numbers(int arr[], int n) {
int i_min = -1, j_min = -1;
for (int i = 0; i 1) {
if (i_min == -1 || i
#include
long long calculate_subtree_size(int m, long long k) {
long long subtree_size = 1;
// 计算当前结点的深度
long long depth = 0;
while (k > 0) {
k = (k - 1) / m;
depth++;
}
// 计算子树的结点数量
for (long long i = depth - 1; i > 0; --i) {
subtree_size = subtree_size * m + i;
}
return subtree_size;
}
int main() {
int m;
printf("Enter the degree of the tree (m): ");
scanf("%d", &m);
long long k;
printf("Enter the node number (k): ");
scanf("%lld", &k);
long long result = calculate_subtree_size(m, k);
printf("Number of nodes in the subtree corresponding to node %lld: %lldn", k, result);
return 0;
}
二、十四届C/C++程序设计B组试题
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
CLion Nova是一款备受期待的集成开发环境(IDE),由JetBrains专门为C/C++开发者设计。这款IDE提供了许多新的功能和改进,使用 ReSharper C++/Rider C++ 语言引擎而不是 CLion服务器托管网 “传统” 引擎,以满足…