第十五次CCF计算机软件能力认证
第一题:小明上学
小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。
为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。
他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。
京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。
假设红绿灯被设定为红灯 r 秒,黄灯 y 秒,绿灯 g 秒,那么从 0 时刻起,[0,r) 秒内亮红灯,车辆不许通过;[r,r+g) 秒内亮绿灯,车辆允许通过;[r+g,r+g+y) 秒内亮黄灯,车辆不许通过,然后依次循环。
倒计时的显示牌上显示的数字 l(l>0) 是指距离下一次信号灯变化的秒数。
一次上学的路上,小明记录下了经过每段路的时间,和各个红绿灯在小明到达路口时的颜色和倒计时秒数。
希望你帮忙计算此次小明上学所用的时间。
输入格式
第一行包含空格分隔的三个正整数 r、y、g,表示红绿灯的设置。
第二行包含一个正整数 n,表示小明总共经过的道路段数和看到的红绿灯数目。
接下来的 n 行,每行包含空格分隔的两个整数 k、t。k=0 表示经过了一段道路,耗时 t 秒,此处 t 不超过 1e6;k=1、2、3 时,分别表示看到了一个红灯、黄灯、绿灯,且倒计时显示牌上显示的数字是 t,此处 t 分别不会超过 r、y、g。
输出格式
输出一个数字,表示此次小明上学所用的时间。
数据范围
1≤n≤100,
1≤r,y,g≤1e6,
测试点 1,2 中不存在任何信号灯。
测试点 3,4 中所有的信号灯在被观察时均为绿灯。
测试点 5,6 中所有的信号灯在被观察时均为红灯。
测试点 7,8 中所有的信号灯在被观察时均为黄灯。
测试点 9,10 中将出现各种可能的情况。输入样例:
30 3 30 8 0 10 1 5 0 11 2 2 0 6 0 3 3 10 0 3
输出样例:
70
样例解释
小明先经过第一段道路,用时 10 秒,然后等待 5 秒的红灯,再经过第二段道路,用时 11 秒,然后等待 2 秒的黄灯和 30 秒的红灯,再经过第三段、第四段道路,分别用时 6、3 秒,然后通过绿灯,再经过最后一段道路,用时 3 秒。
共计 10+5+11+2+30+6+3+3=70 秒。
#include<iostream>using namespace std;int r , y , g;
int n;int main()
{cin >> r >> y >> g;cin >> n;long long res = 0;while(n --){int a , b;cin >> a >> b;if(a == 0) res += b;else{if(a == 1) res += b;else if(a == 2) res += b + r;}}cout << res << endl;return 0;
}
第二题:小明放学
解题思路:
灯时的总循环时间是r+y+g
#include<iostream>using namespace std;typedef long long ll;ll r , y , g , n;
ll res = 0;int main()
{cin >> r >> y >> g;cin >> n;while(n --){ll a , b;cin >> a >> b;if(!a) res += b;else{/*灯时的总循环时r + y + g使用数轴求解*/// 红灯if(a == 1) b = r - b;// 黄灯else if(a == 2) b = r + y + g - b;// 绿灯else b = r + g - b;b += res;b = b % (r + g + y);if(b < r) res += r - b;else if(b >= r + g) res += r + g + y - b + r;}}cout << res << endl;return 0;
}
第三题:CIDR合并
纯计算机网络的知识(应该是网络层的知识)
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 100010;int n;
struct IP
{string v;int k;bool operator< (const IP& t) const{if (v != t.v) return v < t.v;return k < t.k;}bool is_substr(IP& t){if (t.k < k) return false;if (v.substr(0, k) != t.v.substr(0, k)) return false;return true;}int get_number(string str){int res = 0;for (int i = 0; i < 8; i ++ )res = res * 2 + str[i] - '0';return res;}void print(){for (int i = 0; i < 32; i += 8){if (i) printf(".");printf("%d", get_number(v.substr(i, 8)));}printf("/%d\n", k);}
}ip[N];IP merge(IP& a, IP& b)
{IP res;res.k = -1;if (a.k != b.k) return res;if (a.v.substr(0, a.k - 1) != b.v.substr(0, b.k - 1)) return res;res.k = a.k - 1;res.v = a.v.substr(0, a.k - 1);while (res.v.size() <= 32) res.v += '0';return res;
}int main()
{scanf("%d", &n);char str[20];int d[4];for (int i = 0; i < n; i ++ ){scanf("%s", str);memset(d, 0, sizeof d);int cnt = 0;ip[i].k = -1;for (int j = 0; str[j]; j ++ ){if (str[j] == '/'){ip[i].k = atoi(str + j + 1);break;}if (str[j] == '.') continue;while (str[j] && str[j] != '.' && str[j] != '/')d[cnt] = d[cnt] * 10 + str[j ++ ] - '0';j -- ;cnt ++ ;}for (int j = 0; j < 4; j ++ )for (int k = 7; k >= 0; k -- )if (d[j] >> k & 1)ip[i].v += '1';elseip[i].v += '0';if (ip[i].k == -1) ip[i].k = cnt * 8;}sort(ip, ip + n);int k = 1;for (int i = 1; i < n; i ++ )if (!ip[k - 1].is_substr(ip[i]))ip[k ++ ] = ip[i];n = k;k = 1;for (int i = 1; i < n; i ++ ){ip[k ++ ] = ip[i];while (k >= 2){auto t = merge(ip[k - 2], ip[k - 1]);if (t.k != -1){k -= 2;ip[k ++ ] = t;}else break;}}n = k;for (int i = 0; i < n; i ++ )ip[i].print();return 0;
}
第四题:数据中心
经典克鲁斯卡尔算法
#include<iostream>
#include<algorithm>
#include<vector>using namespace std;const int N = 1e6 + 10;
int n , m , root;
int p[N];struct node
{int a , b , c;
};bool cmp(node a , node b)
{return a.c < b.c;
}vector<node>edge;int find(int x)
{if(p[x] != x) p[x] = find(p[x]);return p[x];
}int main()
{cin >> n >> m >> root;for(int i = 1;i <= n;i ++)p[i] = i;while(m --){int a , b , c;cin >> a >> b >> c;edge.push_back({a , b , c});}sort(edge.begin() , edge.end() , cmp);int res = 0;for(int i = 0;i < edge.size();i ++){int pa = find(edge[i].a) , pb = find(edge[i].b);if(pa != pb){p[pa] = pb;res = edge[i].c;}}cout << res << endl;return 0;
}
第五题:管道清洁
网络流问题
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 210, M = (500 + N) * 2 + 10, INF = 1e6;int n, m, S, T;
int h[N], e[M], f[M], w[M], ne[M], idx;
int q[N], dist[N], pre[N], incf[N];
bool st[N];
int din[N], dout[N];void add(int a, int b, int c, int d)
{e[idx] = b, f[idx] = c, w[idx] = d, ne[idx] = h[a], h[a] = idx ++ ;e[idx] = a, f[idx] = 0, w[idx] = -d, ne[idx] = h[b], h[b] = idx ++ ;
}bool spfa()
{int hh = 0, tt = 1;memset(dist, 0x3f, sizeof dist);memset(incf, 0, sizeof incf);q[0] = S, dist[S] = 0, incf[S] = INF;while (hh != tt){int t = q[hh ++ ];if (hh == N) hh = 0;st[t] = false;for (int i = h[t]; ~i; i = ne[i]){int j = e[i];if (f[i] && dist[j] > dist[t] + w[i]){dist[j] = dist[t] + w[i];pre[j] = i;incf[j] = min(f[i], incf[t]);if (!st[j]){q[tt ++ ] = j;if (tt == N) tt = 0;st[j] = true;}}}}return incf[T] > 0;
}int EK(int tot)
{int flow = 0, cost = 0;while (spfa()){int t = incf[T];flow += t, cost += t * dist[T];for (int i = T; i != S; i = e[pre[i] ^ 1]){f[pre[i]] -= t;f[pre[i] ^ 1] += t;}}if (flow != tot) return -1;return cost;
}int main()
{int C, E;scanf("%d%*d%d", &C, &E);while (C -- ){memset(h, -1, sizeof h);idx = 0;memset(din, 0, sizeof din);memset(dout, 0, sizeof dout);scanf("%d%d", &n, &m);S = 0, T = n + 1;int down_cost = 0;while (m -- ){int a, b;char c;scanf("%d %d %c", &a, &b, &c);int down, up;if (c == 'A') down = 1, up = INF, down_cost += E;else if (c == 'B') down = up = 1, down_cost += E;else if (c == 'C') down = 0, up = INF;else down = 0, up = 1;add(a, b, up - down, E);din[b] += down, dout[a] += down;}int tot = 0;for (int i = 1; i <= n; i ++ )if (din[i] > dout[i]){add(S, i, din[i] - dout[i], 0);tot += din[i] - dout[i];}else add(i, T, dout[i] - din[i], 0);int c = EK(tot);if (c != -1) c += down_cost;printf("%d\n", c);}return 0;
}
相关文章:

第十五次CCF计算机软件能力认证
第一题:小明上学 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。 为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。 他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。 京…...

ThreadPoolExecutor线程池详解
ThreadPoolExecutor线程池详解 1. 背景 项目最近的迭代中使用到了ThreadPoolExecutor线程池,之前都只是知道怎么用,没有了解过线程池的底层原理,项目刚上线,有时间整理一下线程池的用法,学习一下线程池的底层实现与工…...

【VB6|第22期】用SQL的方式读取Excel数据
日期:2023年8月7日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方ÿ…...

融云:从「对话框」跳进魔法世界,AIGC 带给社交的新范式
8 月 17 日(周四),融云将带来直播课-《北极星如何协助开发者排查问题与预警风险?》欢迎点击上方报名~ AIGC 与社交结合的应用主要分两种,一是发乎于 AIGC,以大模型为基础提供虚拟伴侣等服务的 Appÿ…...

UWB伪应用场景 - 别再被商家忽悠
近几年UWB技术在网上宣传得如火如荼,与高精度定位几乎或等号,笔者认为这是营销界上的一大成功案例。 UWB超宽带技术凭借着低功耗、高精度,确实在物联网行业混得风生水起,但在无数实际应用案例中,根据客户的反馈情况&a…...

【快应用】list组件属性的运用指导
【关键词】 list、瀑布流、刷新、页面布局 【问题背景】 1、 页面部分内容需要瀑布流格式展示,在使用lsit列表组件设置columns进行多列渲染时,此时在里面加入刷新动画时,动画只占了list组件的一列,并没有完全占据一行宽度&…...

js 面试题总结
js 面试题总结 文章目录 js 面试题总结近百道面试题1、实现 子元素 在父元素中垂直居中的方式2、实现 子元素 在父元素中水平 垂直居中的方式3、描述 Keepealive 的作用,有哪些钩子函数,如何控制组件级存列表?4、请写出判断对象是数组的三个方法5、请说…...

HTML之表单标签
目录 表单标签 Form表单 定义: 基本语法结构: form属性: enctyoe属性 fieldeset标签 fieldeset属性 legend标签 label标签 优势 label属性 input标签 input属性 input标签中的type属性 text text输入框有以下配套属性 searc bu…...

Java经典面试题总结(一)
Java经典面试题总结(一) 题一:Java编译运行原理题二:JDK,JVM,JRE三者之间的关系题三:谈一下对冯诺依曼体系的了解题四:重载与重写的区别题五:拆箱装箱是指什么࿱…...

Android监听设备亮灭屏广播(动态广播代码)
MainActivity中 public class MainActivity extends Activity {private WakeAndLockReceiver wakeAndLockReceiver;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//注册亮屏和息…...

【前端面试手撕题】简易深拷贝、深拷贝、寄生组合式继承、发布订阅模式、观察者模式
FED16 简易深拷贝 描述 请补全JavaScript代码,要求实现对象参数的深拷贝并返回拷贝之后的新对象。 注意: 参数对象和参数对象的每个数据项的数据类型范围仅在数组、普通对象({})、基本数据类型中]无需考虑循环引用问题 <!DO…...

【生物医学】应激(应激反应)全身适应综合征
最近在探索疲劳、负荷、应激方面的底层发生机制,遂整理了一些相关内容,以脑图方式呈现。本文以生物医学向为主。 OK,开始基础介绍:应激 (stress)是指在收到外部或内部、心理社会刺激下的非特异性适应反应。 本文主要收集整理了相…...

浅析基于安防监控EasyCVR视频汇聚融合技术的运输管理系统
一、项目背景 近年来,随着物流行业迅速发展,物流运输费用高、运输过程不透明、货损货差率高、供应链协同能力差等问题不断涌现,严重影响了物流作业效率,市场对于运输管理数字化需求愈发迫切。当前运输行业存在的难题如下…...

VBA技术资料MF41:VBA_将常规数字转换为文本数字
【分享成果,随喜正能量】时有落花至,远随流水香。人生漫长,不攀缘,不强求,按照自己喜欢的方式生活,不必太过在意,顺其自然就好。路再长也有终点,夜再黑也有尽头。 我给VBA的定义&am…...

Wavefront .OBJ文件格式解读【3D】
OBJ(或 .OBJ)是一种几何定义文件格式,最初由 Wavefront Technologies 为其高级可视化器动画包开发。 该文件格式是开放的,已被其他 3D 图形应用程序供应商采用。 OBJ 文件格式是一种简单的数据格式,仅表示 3D 几何体&…...

JavaScript:ES6中类与继承
在JavaScript编程中,ES6引入了一种更现代、更清晰的方式来定义对象和实现继承,那就是通过类和继承机制。本文将以通俗易懂的方式解释ES6中类与继承的概念,帮助你更好地理解和应用这些特性。 1. 类的创建与使用 类是一种模板,用于…...

通用指令(汇编)
一、数据处理指令1)数学运算数据运算指令的格式数据搬移指令立即数伪指令加法指令带进位的加法指令减法指令带借位的减法指令逆向减法指令乘法指令数据运算指令的扩展 2)逻辑运算按位与指令按位或指令按位异或指令左移指令右移指令位清零指令 3ÿ…...

苏宁数据治理实战方法论和三字经
随着移动互联网和大数据的蓬勃发展,“数据即资产”的理念深入人心。大数据已发展成为具有战略意义的生产资料,在各行各业发挥着极其重要的作用,而大数据也给很多企业带来了前所未有的自豪感和自信感。 但是,大数据真的是越“大”越…...

创建型设计模式:3、单例模式(C++实现实例 线程安全)
目录 1、单例模式(Singleton Pattern)的含义 2、单例模式的优缺点 (1)优点: (2)缺点: 3、C实现单例模式的示例(简单) 4、C实现单例模式的示例ÿ…...

JavaWeb学习笔记
Maven:自动导入配置jar包。 Maven项目架构管理工具:核心思想:约定大于配置 Maven:环境优化 1.修改web.xml为最新的 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee&…...

ad+硬件每日学习十个知识点(24)23.8.4(时序约束,SignalTap Ⅱ)
文章目录 1.建立时间和保持时间2.为什么要建立时序约束?3.SignalTap Ⅱ4.SignalTap Ⅱ使用方法5.HDL的仿真软件(modelsim)6.阻抗匹配 1.建立时间和保持时间 答: 2.为什么要建立时序约束? 答: 3.Sign…...

FortiGate防火墙日志审计运维
环境介绍 CPU:8核,内存:16GB,硬盘:100GB 操作系统版本:CentOS-7-x86_64-DVD-2003 平台版本:鸿鹄2.7.0 安装组件 安装环境支持确认 鸿鹄计算引擎使用了 AVX2 高级指令集做向量计算加速…...

基于yolo v5与Deep Sort进行车辆以及速度检测与目标跟踪实战
项目实验结果展示: 基于yolo v5与Deep Sort进行车辆以及速度检测与目标跟踪实战——项目可以私聊 该项目可以作为毕业设计,以及企业级的项目开发,主要包含了车辆的目标检测、目标跟踪以及车辆的速度计算,同样可以进行二次开发。 …...

以指标驱动,保险、零售、制造企业开启精益敏捷运营的新范式
近日,以“释放数智生产力”为主题的 Kyligence 用户大会在上海前滩香格里拉大酒店成功举行。大会包含上午的主论坛和下午的 4 场平行论坛,并举办了闭门会议、Open Day 等活动。来自金融、零售、制造、医药等行业的客户及合作伙伴带来了超过 23 场主题演讲…...

MyBatis-动态SQL-foreach
目录 标签有以下常用属性: 小结 <froeach> <foreach>标签有以下常用属性: collection:指定要迭代的集合或数组的参数名(遍历的对象)。item:指定在迭代过程中的每个元素的别名(遍历…...

VUE框架:vue2转vue3全面细节总结(3)路由组件传参
大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人_python人工智能视觉(opencv)从入门到实战,前端,微信小程序-CSDN博客 最新的uniapp毕业设计专栏也放在下方了: https://blog.csdn.net/lbcy…...

音视频技术开发周刊 | 305
每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 大神回归学界:何恺明宣布加入 MIT 「作为一位 FAIR 研究科学家,我将于 2024 年加入麻省理工学院(MIT)电气工程与计算机科学…...

vue 图片base64转化
import html2canvas from ‘html2canvas’ html2canvas(canvasDom, options).then(canvas > { //此时的图片是base64格式的,我们将图片格式转换一下 let type ‘png’; let imgData canvas.toDataURL(type); // 照片格式处理 let _fixType function(type) { …...

TS学习03-类
类 calss A {name: stringconstructor(name:string) {this.name name}greet() {return hello, this.name} } let people new A(RenNing)继承 子类是一个派生类,他派生自父类(基类),通过 extends关键字 派生类通常被称作 子类…...

FastAPI(七)应用配置
目录 一、在apps下新建文件夹config 二、新建配置文件app_conf.py 一、在apps下新建文件夹config 二、新建配置文件app_conf.py from functools import lru_cachefrom pydantic.v1 import BaseSettingsclass AppConfig(BaseSettings):app_name: str "Windows10 插件&qu…...