文章目录

  • 202012-1 期末预测之安全指数
  • 202009-1 称检测点查询
  • 202006-1 线性分类器
  • 201912-1 报数
  • 201909-1 小明种苹果
  • 201903-1 小中大
  • 201812-1 小明上学
  • 201809-1 卖菜
  • 201803-1 跳一跳
  • 201712-1 最小差值
  • 201312-1 出现次数最多的数

202012-1 期末预测之安全指数

#include <iostream>
using namespace std;int Judge(int sum)
{if(sum > 0)return sum;elsereturn 0;
}int main()
{int n, score, w, sum;sum = 0;cin >> n;while(n--){cin >> score >> w;int t = score * w;sum += t;}//cout << sum << endl;/*if(sum > 0)cout << sum;elsecout << "0";*/cout << Judge(sum) << endl;return 0;
}

202009-1 称检测点查询

70,第一次考试紧张吧,没写好,后来发现挺简单的,考试还是把人家规定的4个小时坐完再走啊。

#include <iostream>
#include <string>
#include <cstring>
#define N 200
using namespace std;void bubblesort(int s[], int);
void bubblesort(int s[], int n)
{int i, j;for(i = n - 1; i > 0; i--)for(j = 1; j <= i; j++)if(s[j - 1] > s[j]){int temp = s[j - 1];s[j - 1] = s[j];s[j] = temp;}
}int sub[N + 1], sub1[N + 1];int main()
{int n, x0, y0, i, x, y, cnt = 0;scanf("%d%d%d", &n, &x0, &y0);for(i = 0; i < n; i++){scanf("%d%d", &x, &y);sub[i] = (x - x0) * (x - x0) + (y - y0) * (y - y0);}for(i = 0; i < n; i++)sub1[i] = sub[i];bubblesort(sub, n);if(sub[0] == sub[1] && sub[0]== sub[2]){for(i = 0; i < n; i++)if(sub[0] == sub1[i])if(cnt != 3){printf("%d\n", i + 1);cnt++;}}else if(sub[0] == sub[1]){for(i = 0; i < n; i++)if(sub[0] == sub1[i]){printf("%d\n", i+1);cnt++;}for(i = 0; i < n; i++)if(sub[2] == sub1[i])if(cnt != 3){printf("%d\n", i+1);cnt++;}}else{for(i = 0; i < n; i++)if(sub[0] == sub1[i])printf("%d\n", i+1);for(i = 0; i < n; i++)if(sub[1] == sub1[i])printf("%d\n", i+1);for(i = 0; i < n; i++)if(sub[2] == sub1[i])printf("%d\n", i+1);}return 0;
}
#include <stdio.h>
#include <limits.h>
#define N 1000int l[N + 1];int main()
{int n, x0, y0, i, j, x, y;scanf("%d%d%d", &n, &x0, &y0);for (i = 0; i < n; i++) {scanf("%d%d", &x, &y);l[i] = (x0 - x) * (x0 - x) + (y0 - y) * (y0 - y);}for (i = 0; i < 3; i++){int min = INT_MAX;for (j = 0; j < n; j++)if (l[j] < min)min = l[j];for(j = 0; j < n; j++)if (min == l[j]){printf("%d\n", j + 1);l[j] = INT_MAX;break;}}return 0;
}

202006-1 线性分类器

自己写的只有50分

#include <iostream>
using namespace std;
const int N = 1000;int main()
{int n, m, t1, t2, t3, d1, d2, judge = 0, i, j = 0, i1 = 0, i2 = 0;char c;int a1[N], a2[N], b1[N], b2[N];bool ju, is = true;cin >> n >> m;for (i = 0; i < n; i++){cin >> d1 >> d2 >> c;if (c == 'A')judge = 1;if (c == 'B')judge = 2;switch (judge){case 1:a1[i1] = d1;a2[i1] = d2;i1++;break;case 2:b1[i2] = d1;b2[i2] = d2;i2++;break;default:break;}}for (i = 0; i < m; i++){cin >> t1 >> t2 >> t3;ju = (t1 + t2 * a1[j] + t3 * a2[j]) > 0;for (j = 0; j < i1; j++) if (ju == (t1 + t2 * a1[j] + t3 * a2[j]) > 0)is = true;else {is = false;break;}if (is == true){j = 0;ju = (t1 + t2 * b1[j] + t3 * b2[j]) > 0;for (j = 0; j < i2; j++)if (ju == (t1 + t2 * b1[j] + t3 * b2[j]) > 0)is = true;else {is = false;break;}}if (is)cout << "Yes" << endl;elsecout << "No" << endl;}return 0;
}

参考了一下题解,修改后的:

#include <iostream>
using namespace std;const int N = 1000;
int a1[N], a2[N];
char s[N];int main()
{int n, m, t1, t2, t3, i, judge;char ju_fir, ju_sec;cin >> n >> m;for (i = 0; i < n; i++)cin >> a1[i] >> a2[i] >> s[i];for (int j = 0; j < m; j++){judge = 1;ju_fir = 'm'; ju_sec = 'n';cin >> t1 >> t2 >> t3;for (i = 0; i < n; i++) {if (t1 + t2 * a1[i] + t3 * a2[i] > 0)ju_fir = s[i];elseju_sec = s[i];if (ju_fir == ju_sec) {judge = 0;break;}}if (judge)cout << "Yes" << endl;elsecout << "No" << endl;}return 0;
}

201912-1 报数

#include <iostream>
using namespace std;int isseven(int); // 声明函数,作用是判断一个数里面有7或能被7整除
int isseven(int n) // 定义函数
{int i = n, j;while (i) // 判断这个数里面有7 {j = i % 10;if (j == 7)return 1;i /= 10;}if (n % 7 == 0) // 判断一个数能被7整除 return 1;elsereturn 0;
}int main()
{int n, i, j, ju, jia, yi, bin, ding;jia = yi = bin = ding = 0; // 初始化四个数均为0 cin >> n;for(i = 1, j = 1; i <= n; i++, j++)if (isseven(j)){i--; // 有一个人不报数就不会算进报的数里面 ju = j % 4; // ju的作用就是判断谁不报数 switch (ju){case 1:jia++;break;case 2:yi++;break;case 3:bin++;break;default:ding++;break;}}cout << jia << endl << yi << endl << bin << endl << ding << endl;return 0;
}

201909-1 小明种苹果

#include <iostream>
#include <math.h>
#include <limits>
using namespace std;int apple[1234][1234];
int s[1234]; // 每棵树的疏果个数int main()
{int n, m, t, k, p, max;cin >> n >> m;// 输入每颗苹果树上的果子数和它们分别的疏果数目 for(int i = 0; i < n; i++)for (int j = 0; j < m + 1; j++)cin >> apple[i][j];// 初始化t和k为0 t = 0, k = 0;// t是没有进行疏果时的苹果总数 for (int i = 0; i < n; i++)t += apple[i][0];max = INT_MIN; // max代表疏果最多的果树的疏果数// 算出每棵树分别的疏果个数,最多疏果的果树个数为p for (int i = 0; i < n; i++)for (int j = 1; j < m + 1; j++){s[i] += abs(apple[i][j]);if (s[i] > max)max = s[i];}p = max;// 找到疏果最多果树的编号为k for (int i = 0; i < n; i++)if (s[i] == max){k = i + 1;break;}// 减去疏果数就是最后的总果数 for (int i = 0; i < n; i++)t -= s[i];cout << t << " " << k << " " << p << endl;return 0;
}

201903-1 小中大

#include <iostream>
#define N 100000
using namespace std;int s[N + 1];int main()
{int n, max, min, ju;double mm;cin >> n;// 这里最好用 for循环一次性全赋值,单独给max和min可能会把自己搞蒙for (int i = 0; i < n; i++)cin >> s[i];max = s[0]; min = s[n - 1];if (n & 1)mm = s[n / 2];elsemm = ((double)s[n / 2] + s[n / 2 - 1]) / 2;if (max < min){int t = max;max = min;min = t;}ju = mm;if(mm == ju)printf("%d %d %d", max, ju, min);elseprintf("%d %.1lf %d", max, mm, min);return 0;
}

201812-1 小明上学

#include <iostream>
using namespace std;int main()
{int r, y, g, n, sum = 0, k, t;// 输入三个数,分别是红灯、黄灯和绿灯 cin >> r >> y >> g;// 输入条件个数 cin >> n;while (n--){cin >> k >> t;switch (k) // 判断k以确定红绿灯的颜色 {case 0: sum += t;break;case 1:sum += t;break;case 2: // 黄灯的时候,要再等一个红灯 sum += t + r;break;default: // 绿灯不需要等待 break;}}// 输出小明用的时间 cout << sum << endl;return 0;
}

201809-1 卖菜

#include <iostream>
#define N 1000
using namespace std;// 确定两个数组,分别是前一天和后一天的菜价。
int s[N + 1], r[N + 1];int main()
{int n;cin >> n; // n代表着有几家菜店 for (int i = 1; i <= n; i++)cin >> s[i];// 把第一家菜店和最后一家的分别按照特殊情况计算 r[1] = (s[1] + s[2]) / 2;r[n] = (s[n] + s[n - 1]) / 2;// 计算相邻三家店的平均值 for (int i = 2; i < n; i++)r[i] = (s[i - 1] + s[i] + s[i + 1]) / 3;// 输出每家店的菜价 for (int i = 1; i <= n; i++)cout << r[i] << " ";return 0;
}

201803-1 跳一跳

#include <stdio.h>int main()
{int i, sum = 0, j, a, p = 2;for (i = 0;; i++){scanf("%d", &j);if (j == 1) {p = 2;sum += 1;a = 1;}else if (j == 2 && i == 0 || j == 2 && a == 1) {sum += p;a = 2;p += 2;}else if (j == 2 && a == 2) {sum += p;p += 2;}else if (j == 0)break;}printf("%d", sum);return 0;
}

201712-1 最小差值

#include <stdio.h>
#include <limits.h>
#define N 1000int s1[N + 1], s2[N + 1];
void bubblesort(int s[], int);
void bubblesort(int s[], int n)
{int i, j;for(i = n - 1; i > 0; i--)for(j = 1; j <= i; j++)if (s[j - 1] > s[j]){int t = s[j];s[j] = s[j - 1];s[j - 1] = t;}
}int main()
{int n, i, min;scanf("%d", &n);for (i = 0; i < n; i++)scanf("%d", &s1[i]);bubblesort(s1, n);for (i = 0; i < n - 1; i++)s2[i] = s1[i + 1] - s1[i];min = INT_MAX;for(i = 0; i < n - 1; i++)if (min > s2[i])min = s2[i];printf("%d", min);return 0;
}

201312-1 出现次数最多的数

#include <iostream>
#include <string.h>
// 在CSP认证中要写明这个头文件,不然memset会报错,可以用cstring,而且不能用string,本地IDE不需要
#define N 10000
using namespace std;int main()
{int n, t, max = 0, max_c = 0;// 这里将s数组定义为全局变量可以不用初始化s,而且能够减少一个警告使用栈太大,同时不必使用string.h头文件int s[N + 1];memset(s, 0, sizeof(s));  // 将数组中所有元素初始化为0cin >> n;for (int i = 0; i < n; i++){cin >> t;s[t]++; // 这里的意思是把重复出现的越多s[t]的大小就会越大。}for (int i = 1; i <= 10000; i++)// 这里i代表的才是输入数据,所以小的先被判断// 后面即使出现了s[i] == max_c也不会换数据,实现输出最小的一个if (s[i] > max_c){max = i; // 确定众数是几max_c = s[i];}cout << max << endl;return 0;
}

CSP认证题解第一题相关推荐

  1. 2019年3月CCF CSP 认证题解第一题

    第一题:201903-1 [题目背景] 在数据分析中,最小值最大值以及中位数是常用的统计信息. [题目描述] 老师给了你n个整数组成的测量数据,保证有序(可能为升序或降序),可能存在重复的数据.请统计 ...

  2. CSP认证题解第二题

    文章目录 202012-2 期末预测之最佳阈值 202009-2 风险人群 201909-2 小明种苹果(续) 201903-2 二十四点 201812-2 小明放学 201809-2 买菜 2018 ...

  3. python认证考试_Python入门习题(39)——CCF CSP认证考试真题:公共钥匙盒

    CCF CSP认证考试真题:共钥匙盒 问题描述 试题编号:201709-2 试题名称:公共钥匙盒 时间限制:1.0s 内存限制:256.0MB 问题描述 有一个学校的老师共用N个教室,按照规定,所有的 ...

  4. CSP认证历年真题题解 (Python)

    文章目录 此篇文章是小菜本菜使用Python做CCF-CSP的一些记录,希望能够以此帮助到正在为题目苦苦思考,但还没有找到解决思路的朋友们.诚然,这里的代码还有很多值得改进之处,希望各位码友不吝赐教. ...

  5. CCF CSP认证菜鸟刷题日志

    CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...

  6. CCF CSP认证历年真题 满分代码(持续更新中)

    目标 在接下来的半年到一年时间内,补全CCF认证历年真题(A-D)的满分代码(E题随缘). 考虑到CCF认证这个东西是可以混分的,我计划对D.E题额外增加部分分代码,或许有助于不同层次的选手备赛. 除 ...

  7. CCF-CSP认证 历届第一题

    写在前面: 大二菜鸡实锤了.CCF加油吧,不选Python选择用C++.柿子先挑软的捏 历届第一题刷一下. 201903-1. 小中大 201809-1. 卖菜 201803-1. 跳一跳 20171 ...

  8. CCF能力认证历届第一题

    写在前面:今天上午的河大赛把我给写自闭了,倒不是因为题目有多难,而是我脑子抽了.古风排序写出来了,简单的没写出来.3进制和8进制之间的相互转换,按理应该是先把3进制或8进制转成10进制,再把得到的这个 ...

  9. 第二十次csp认证 第四题 星际旅行题解

    问题描述 试题编号: 202009-4 试题名称: 星际旅行 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个 维欧几里得空间的宇宙中,小 A 打算完成一次星际旅行. 利 ...

最新文章

  1. linux用户空间 限制吗,在Linux中限制用户空间
  2. HSRP多组基础配置实验
  3. 第三十一篇:SOUI布局之相对于特定兄弟窗口
  4. « android通过xml配置实现的动画效果milestone的基本信息 » android...
  5. 《去哪网编程题》表达式合法判断
  6. dash 和 bash 切换
  7. oracle状态blocked,oracle 监听状态为BLOCKED
  8. Python使用库读取数据
  9. 基于Kinetis系列微控制器K60芯片的I2C接口函数程序说明1
  10. 网站制作教程:如何建设自己的网站?
  11. Android手机怎么找回微信好友,安卓手机微信好友删除怎么找回?这三种方法真香...
  12. 批处理 Win10锁屏背景图片的提取
  13. 读书笔记之《人性的优点》
  14. 如何优雅的完成一场说来就来的APP自建
  15. python中的除法运算定律_四年级上册数学《运算定律》教学总结(精选6篇)
  16. Mac min忘记登录密码
  17. 制作持久化的 Kali U盘
  18. 鸿蒙内核源码分析系列 | 读懂HarmonyOS内核源代码!
  19. 零基础可以学习PLC自动化吗?从哪里入手学习PLC自动化,自动化编程用到什么编程软件呢?凭良学校-西门子S7-200/SMART 200 PLC编程自动化应用培训
  20. uml活动图 各个功能的操作流程和分支_软件工程专题:UML活动图

热门文章

  1. 带哨兵的冒泡排序_冒泡排序与快速排序
  2. Win11如何修改用户名?
  3. 【Java面试】基础篇详细介绍(已包含所有基础面试题)
  4. jQuery--属性操作(attr、removeAttr、prop、removeProp)详解
  5. Cell Biolabs 乙醇分析试剂盒
  6. 不用接私活!普通程序员学会这个也能年入百万!
  7. AC日记——[USACO1.1]坏掉的项链Broken Necklace 洛谷 P1203
  8. iOS 10 消息推送(UserNotifications)秘籍总结
  9. MAC程序员常用服务和最新科技平台
  10. 密钥生成器KeyGenerator