零基础洛谷刷题记录
Day01 2024.11.18
Day02 2024.11.25
Day03 2024.11.26
Day04 2024.11.28
Day05 2024.11.29
Day06 2024 12.02
Day07 2024.12.03
Day08 2024 12 05
Day09 2024.12.07
Day10 2024.12.09
Day11 2024.12.10
Day12 2024.12.14
文章目录
- 零基础洛谷刷题记录
- 1320:题目描述
- 1320:AC代码
- 1320:学习成果
- 1152:题目描述(成功写出)
- 1152:AC代码
- 1152:学习成果
- 1615:题目描述(成功写出)
- 1615:AC代码
- 1615:学习成果
压缩技术(续集版)
1320:题目描述
设某汉字由 N×N 的 0 和 1 的点阵图案组成。
我们依照以下规则生成压缩码。连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下。第一个数表示连续有几个 0,第二个数表示接下来连续有几个 1,第三个数再接下来连续有几个 0,第四个数接着连续几个 1,以此类推……
1320:AC代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<math.h>int main()
{int arr[200000];char string[200][200];scanf("%s", string[0]);int N = 0;for (int i = 0; string[0][i] != '\0'; i++){N++;}for (int i = 1; i < N; i++){scanf("%s", string[i]);}int k = 0;for (int i = 0; i < N * N; i++){arr[i] = 1;}if (string[0][0] == '1'){arr[0] = 0;k++;}for (int i = 0; i < N; i++){for (int j = 0; j < N; j++){if (j + 1 == N){if (string[i][j] == string[i + 1][0]){arr[k]++;}else{k++;}}else{if (string[i][j] == string[i][j + 1]){arr[k]++;}else{k++;}}}}printf("%d ", N);for (int i = 0; i < k; i++){printf("%d ", arr[i]);}printf("\n");return 0;
}
1320:学习成果
- 注意题目细节
欢乐的跳
1152:题目描述(成功写出)
一个 n 个元素的整数数组,如果数组两个连续元素之间差的绝对值包括了 [1,n−1] 之间的所有整数,则称之符合“欢乐的跳”,如数组{1,4,2,3} 符合“欢乐的跳”,因为差的绝对值分别为3,2,1。
给定一个数组,你的任务是判断该数组是否符合“欢乐的跳”。
1152:AC代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<math.h>int main()
{long long int arr[1005];int n;scanf("%d", &n);int answer[1005];for (int i = 1; i < n; i++){answer[i] = 0;}scanf("%lld", &arr[0]);for (int i = 1; i < n; i++){scanf("%lld", &arr[i]);if (abs(arr[i] - arr[i - 1]) > 0 && abs(arr[i] - arr[i - 1]) < n){answer[abs(arr[i] - arr[i - 1])] = 1;}}for (int i = 1; i < n; i++){if (answer[i] == 0){printf("Not jolly\n");return 0;}}printf("Jolly\n");return 0;
}
1152:学习成果
- 是之前写不出来的题目勒!不错不错!
- 注意范围
西游记公司
1615:题目描述(成功写出)
事情是这样的:
西游记中的孙沙猪三徒弟在西天取经之后开始进入厦门大学经贸系学习经济,在 1 个小时的学习后,他们用特殊手段毕业了。
然后,他们创办了三个公司:“花果山生态旅游山庄集团公司” “高老庄猪肉美食城有限公司” 和 “流沙河轮渡有限公司”。虽然这三家公司出自 “经卷出版社” 社长唐三藏的徒弟们,但是每家公司都仍然保持着 0 元以下的财政收入。
于是,他们想到了一个无聊的方法:向别人偷!其中,孙悟空偷猪八戒的平底锅之前,猪八戒可以一直抢沙和尚的笔记本。
现在,作为猪八戒手下首席智士的你,要帮助既聪明又愚蠢的猪八戒用那种不正当的手段挽救这个公司!
你可以这样做:你已经知道孙悟空什么时候要来偷猪八戒的东西,而猪八戒又要在什么时间去抢沙和尚的东西,又知道猪八戒每秒钟可以偷沙和尚 n 台笔记本,帮猪八戒算一算,自己在有限的时间内能偷到沙和尚多少台笔记本,使得他有足够的时间来防御大师兄。
1615:AC代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<math.h>int main()
{char sun[9];char zhu[9];int tou;long long int shijian;int zhu_hour, sun_hour;int zhu_min, sun_min;int zhu_second, sun_second;scanf("%s", sun);scanf("%s", zhu);scanf("%d", &tou);//处理孙悟空偷猪八戒的时间if (sun[2] == ':'){sun_hour = ((int)sun[0] - 48) * 10 + ((int)sun[1] - 48);if (sun[4] == ':'){sun_min = ((int)sun[3] - 48);if (sun[6] == '\0'){sun_second = (int)sun[5] - 48;}else{sun_second = ((int)sun[5] - 48) * 10 + (int)sun[6] - 48;}}else if (sun[5] == ':'){sun_min = ((int)sun[3] - 48) * 10 + ((int)sun[4] - 48);if (sun[7] == '\0'){sun_second = (int)sun[6] - 48;}else{sun_second = ((int)sun[6] - 48) * 10 + (int)sun[7] - 48;}}}else if(sun[1]==':'){sun_hour = (int)sun[0] - 48;if (sun[3] == ':'){sun_min = (int)sun[2] - 48;if (sun[5] == '\0'){sun_second = (int)sun[4] - 48;}else{sun_second = ((int)sun[4] - 48) * 10 + (int)sun[5] - 48;}}else if (sun[4] == ':'){sun_min = ((int)sun[2] - 48) * 10 + (int)sun[3] - 48;if (sun[6] == '\0'){sun_second = (int)sun[5] - 48;}else{sun_second = ((int)sun[5] - 48) * 10 + (int)sun[6] - 48;}}}//处理猪八戒抢沙师弟的时间if (zhu[2] == ':'){zhu_hour = ((int)zhu[0] - 48) * 10 + ((int)zhu[1] - 48);if (zhu[4] == ':'){zhu_min = ((int)zhu[3] - 48);if (zhu[6] == '\0'){zhu_second = (int)zhu[5] - 48;}else{zhu_second = ((int)zhu[5] - 48) * 10 + (int)zhu[6] - 48;}}else if (zhu[5] == ':'){zhu_min = ((int)zhu[3] - 48) * 10 + ((int)zhu[4] - 48);if (zhu[7] == '\0'){zhu_second = (int)zhu[6] - 48;}else{zhu_second = ((int)zhu[6] - 48) * 10 + (int)zhu[7] - 48;}}}else if (zhu[1] == ':'){zhu_hour = (int)zhu[0] - 48;if (zhu[3] == ':'){zhu_min = (int)zhu[2] - 48;if (zhu[5] == '\0'){zhu_second = (int)zhu[4] - 48;}else{zhu_second = ((int)zhu[4] - 48) * 10 + (int)zhu[5] - 48;}}else if (zhu[4] == ':'){zhu_min = ((int)zhu[2] - 48) * 10 + (int)zhu[3] - 48;if (zhu[6] == '\0'){zhu_second = (int)zhu[5] - 48;}else{zhu_second = ((int)zhu[5] - 48) * 10 + (int)zhu[6] - 48;}}}//计算时间差int cha_hour = zhu_hour - sun_hour;int cha_min = zhu_min - sun_min;int cha_second = zhu_second - sun_second;if (cha_second < 0){cha_min --;cha_second += 60;}if (cha_min < 0){cha_hour --;cha_min += 60;}shijian = cha_hour * 3600 + cha_min * 60 + cha_second;long long int number = shijian * tou;printf("%lld\n", number);return 0;
}
1615:学习成果
- 从字符串中取数的问题
- 两个int变量的乘积要用long long存储
- 是之前没写出来的题目哟