当前位置: 首页 > news >正文

第二十次CCF计算机软件能力认证

数学专场

第一题:称检测点查询

解题思路:计算欧几里得距离

#include<iostream>
#include<vector>
#include<algorithm>using namespace std;typedef pair<int , int> PII;
int n , x , y;
vector<PII>v;int main()
{cin >> n >> x >> y;for(int i = 1;i <= n;i ++){int a , b;cin >> a >> b;v.push_back({(a - x) * (a - x) + (b - y) * (b - y) , i});}sort(v.begin() , v.end());for(int i = 0;i < 3;i ++)cout << v[i].second << endl;return 0;
}

第二题:风险人群筛查

解题思路:

对于每一个记录一定是连续的,因此查询逗留的就是检查每一条数据有几个连续的点在矩阵中即可

对于每一个点使用线性规划直接检查是否在矩阵中即可

#include<iostream>using namespace std;const int N = 1010;
int n , k , t , xl , yl , xr , yr;
int x[N] , y[N];
int throu = 0 , stay = 0;bool in(int u)
{if(x[u] >= xl && x[u] <= xr && y[u] >= yl && y[u] <= yr) return true;return false;
}bool check() // 检查是否经过
{for(int i = 0;i < t;i ++)if(in(i)) return true;return false;
}bool check1() // 检查连续
{for(int i = 0;i < t;i ++){int j = i;while(j < t && in(j)) j ++;if(j - i >= k) return true;i = j;}return false;
}int main()
{cin >> n >> k >> t >> xl >> yl >> xr >> yr;while(n --){for(int i = 0;i < t;i ++)cin >> x[i] >> y[i];if(check()) throu ++;if(check1()) stay ++;}cout << throu << endl << stay << endl;return 0;
}

第三题:点亮数字人生

解题思路:

直接模拟(真的阴间的模拟90分)

#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include<iostream>
#include<unordered_map>
#include<algorithm>
#include<vector>
#include<cstring>
#include<sstream>
#include<queue>using namespace std;typedef unordered_map<int , int> MPII;
typedef vector<int> VI;
typedef pair<int , int> PII;
const int N = 5010 , M = 1e6 + 10;
int h[M] , ne[M] , e[M] , idx = 0;
MPII input;
int n , m , t , q;
unordered_map<int , vector<int>>input_num , query;
bool st[M];
int in[M] , copy_in[M];
int res[M];struct Logic
{string logic;int cnt;VI w;
}nodes[M];inline int change_input(int u)
{return 5000 + u;
}inline void add(int a , int b)
{e[idx] = b , ne[idx] = h[a] , h[a] = idx ++;
}inline bool check()
{queue<int>q;int cnt = 0;for(int i = 1;i <= n;i ++)if(!in[i]) q.push(i) , cnt ++;while(!q.empty()){int t = q.front();q.pop();for(int i = h[t];~i;i = ne[i]){int j = e[i];in[j] --;if(!in[j]) q.push(j) , cnt ++;}}return cnt == n;
}inline void init()
{memset(h , -1 , sizeof h);memset(ne , 0 , sizeof ne);memset(e , 0 , sizeof e);memset(copy_in , 0 , sizeof copy_in);idx = 0;input.clear();memset(st , 0 , sizeof st);input_num.clear() , query.clear();memset(in , 0 , sizeof in);for(int i = 1;i <= n;i ++)nodes[i].logic = "" , nodes[i].cnt = 0 , nodes[i].w.clear();
}inline int eval(int j)
{int ans = 0;int cnt = nodes[j].cnt;if(nodes[j].logic == "NOT") ans = nodes[j].w[0] ^ 1;else if(nodes[j].logic == "AND"){ans = 1;for(int i = 0;i < cnt;i ++)ans &= nodes[j].w[i];}else if(nodes[j].logic == "OR"){for(int i : nodes[j].w)ans |= i;}else if(nodes[j].logic == "XOR"){ans = nodes[j].w[0];for(int i = 1;i < cnt;i ++)ans ^= nodes[j].w[i];}else if(nodes[j].logic == "NAND"){ans = 1;for(int i : nodes[j].w)ans &= i;ans = ans ^ 1;}else{for(int i : nodes[j].w)ans |= i;ans = ans ^ 1;}return ans;
}inline void cal(int u)
{queue<PII>q;int copy[M];memcpy(copy , copy_in , sizeof copy_in);for(int i = 1;i <= m;i ++) q.push({input_num[u][i - 1] , change_input(i)});while(!q.empty()){auto t = q.front();q.pop();int x = t.first , y = t.second;for(int i = h[y];~i;i = ne[i]){int j = e[i];copy[j] --;nodes[j].w.push_back(x);if(!copy[j]){int ans = eval(j);res[j] = ans;q.push({ans , j});}}}
}int main()
{scanf("%d" ,&t);while(t --){init();scanf("%d %d" ,&m ,&n);getchar();for(int i = 1;i <= n;i ++){char s[N];// getline(cin , s);fgets(s , 2000 , stdin);stringstream ss(s);string str;ss >> str;string logic = str;ss >> str;int cnt = stoi(str);nodes[i].logic = logic;nodes[i].cnt = cnt;while(ss >> str) {if(str[0] == 'O') // 表示第 n 个器件的输出连接到此输入端{int x = stoi(str.substr(1));add(x , i);in[i] ++;copy_in[i] ++;}else // 表示第 m 个输入信号连接到此输入端{int x = stoi(str.substr(1));int y = change_input(x);add(y , i);copy_in[i] ++;if(!input[y]) input[y] = x; // 将输入端进行重新编号}}}scanf("%d" ,&q);for(int i = 0;i < q;i ++)for(int j = 1;j <= m;j ++){int x;scanf("%d" ,&x);input_num[i].push_back(x);}for(int i = 0;i < q;i ++){int x;scanf("%d" ,&x);for(int j = 0;j < x;j ++){int y;scanf("%d" ,&y);query[i].push_back(y);}}if(!check()) // 检查是否自环{puts("LOOP");continue;}for(int i = 0;i < q;i ++) {memset(res , 0 , sizeof res);cal(i);for(int j = 1;j <= n;j ++)nodes[j].w.clear();for(int p : query[i])printf("%d " ,res[p]);puts("");}}
}

第四题:星际旅行

解题思路:

根据AB直线到圆心的距离和三角形的三边关系可以

两种情况:

(1)当两点A、B构成的直线不经过圆,最短距离 |AB| 的直线距离

(2)当两点A、B构成的直线经过圆,我们连接A点和圆心O点,B点和圆心O点,可以构成一个三角形,使用余弦定理可以得到AB边所对的角的弧度,然后可以求出所对应的弧长。

import mathdef SLdist(x , y):w = len(x)ans = 0for i in range(w):ans += (x[i] - y[i]) ** 2return ans ** 0.5n , m = map(int , input().split())
r = int(input())
black = list(map(int , input().split()))
l , d , tangent = [] , [] , []
for _ in range(m):temp = list(map(int , input().split()))l.append(temp)ans = 0for i in range(n):ans += (temp[i] - black[i]) ** 2# 点到圆心的距离d.append(ans ** 0.5)# 切线长tangent.append((ans - r * r) ** 0.5)res = [0 for i in range(m + 10)]
for i in range(m):A = l[i]for j in range(i):B = l[j]a , b , c = d[i] , d[j] , SLdist(A , B)# 海伦公式p = (a + b + c) / 2h = ((p * (p - a) * (p - b) * (p - c)) ** 0.5)h = h * 2if h >= r * c or a * a + c * c <= b * b or b * b + c * c <= a * a:res[i] += cres[j] += ccontinuealpha1 = math.acos(r / a)alpha2 = math.acos(r / b)beta = math.acos((a * a + b * b - c * c) / (2 * a * b))alpha = beta - alpha1 - alpha2x = (a * a - r * r) ** 0.5 + (b * b - r * r) ** 0.5 + alpha * rres[i] += xres[j] += x
for i in range(m):print(f'{res[i]:.15f}')
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>using namespace std;const int N = 110, M = 2010;int n, m;
double R;
double o[N], p[M][N];
double d[M], rd[M];
double ans[M];inline double sqr(double x)
{return x * x;
}int main()
{scanf("%d%d%lf", &n, &m, &R);for (int i = 0; i < n; i ++ ) scanf("%lf", &o[i]);for (int i = 0; i < m; i ++ ){double s = 0;for (int j = 0; j < n; j ++ ){scanf("%lf", &p[i][j]);s += sqr(p[i][j] - o[j]);}d[i] = sqrt(s);rd[i] = sqrt(s - sqr(R));}for (int i = 0; i < m; i ++ )for (int j = 0; j < i; j ++ ){double s = 0;for (int k = 0; k < n; k ++ ) s += sqr(p[i][k] - p[j][k]);double c = sqrt(s), a = d[i], b = d[j];double p = (a + b + c) / 2;double area = sqrt(p * (p - a) * (p - b) * (p - c));double h = area * 2 / c;if (h >= R || sqr(b) >= sqr(a) + s || sqr(a) >= sqr(b) + s){ans[i] += c, ans[j] += c;continue;}double angle1 = acos((sqr(a) + sqr(b) - s) / (2 * a * b));double angle2 = acos(R / a);double angle3 = acos(R / b);double t = (angle1 - angle2 - angle3) * R + rd[i] + rd[j];ans[i] += t, ans[j] += t;}for (int i = 0; i < m; i ++ )printf("%.12lf\n", ans[i]);return 0;
}

第五题:密信与计数

int p = tr[t][i];if (!p) tr[t][i] = tr[ne[t]][i];else{ne[p] = tr[ne[t]][i];cnt[p] += cnt[ne[p]];q[ ++ tt] = p;}}}
}int main()
{cin >> n >> m;for (int i = 0; i < 26; i ++ )for (int j = 1; j <= n; j ++ ){string str;cin >> str;g[str[0] - 'a'][j] = {i, stoi(str.substr(1))};}string str;while (cin >> str){insert(str);strs.push_back(str);}build();f[0][0][1] = 1;for (int i = 0; i <= m; i ++ ){int sum = 0;for (int j = 0; j <= idx; j ++ )for (int k = 1; k <= n; k ++ ){if (!f[i][j][k]) continue;sum = (sum + f[i][j][k]) % MOD;for (auto& s: strs){if (i + s.size() > m) continue;bool flag = true;int x = j, y = k;for (auto c: s){int u = c - 'a';auto& t = g[u][y];x = tr[x][t.row];if (cnt[x]){flag = false;break;}y = t.next;}if (flag){auto& v = f[i + s.size()][x][y];v = (v + f[i][j][k]) % MOD;}}}if (i) printf("%d\n", sum);}return 0;
}

相关文章:

第二十次CCF计算机软件能力认证

数学专场 第一题&#xff1a;称检测点查询 解题思路&#xff1a;计算欧几里得距离 #include<iostream> #include<vector> #include<algorithm>using namespace std;typedef pair<int , int> PII; int n , x , y; vector<PII>v;int main() {ci…...

一篇文章带你了解Java发送邮件:使用JavaMail API发送电子邮件的注意事项、发送附件等

Java发送邮件&#xff1a;使用JavaMail API发送电子邮件 作者&#xff1a;Stevedash 发表于&#xff1a;2023年8月13日 15点48分 来源&#xff1a;Java 发送邮件 | 菜鸟教程 (runoob.com) 电子邮件在现代通信中扮演着至关重要的角色&#xff0c;而在Java编程中&#xff0c;…...

kubernetes的日志

1、日志在哪里 kubelet组件&#xff0c;systemd方式部署&#xff0c;journalctl -u kubelet 查看 其他组件&#xff0c;pod方式部署&#xff0c;kubectl logs 查看 容器运行时将日志写入 /var/log/pods 系统日志&#xff0c;/var/log/message 2、查看服务日志 #首先检查服…...

设计HTML5文本

网页文本内容丰富、形式多样&#xff0c;通过不同的版式显示在页面中&#xff0c;为用户提供最直接、最丰富的信息。HTML5新增了很多文本标签&#xff0c;它们都有特殊的语义&#xff0c;正确使用这些标签&#xff0c;可以让网页文本更严谨、更符合语义。 1、通用文本 1.1、标…...

msvcr120.dll丢失怎样修复?总结三个dll修复方法

当我遇到msvcr120.dll丢失的问题时&#xff0c;我感到有些困惑和焦虑。因为这个问题会导致我无法运行依赖这个文件的应用程序。msvcr120.dll是运行时库文件的一部分&#xff0c;为应用程序提供了必要的运行时支持。它的丢失会导致应用程序无法正常运行&#xff0c;这让我意识到…...

选择题方法论——颉斌斌

文章目录 一、仔细阅读文章结构Ⅰ 时间对比Ⅱ 抛砖引玉Ⅲ 开门见山Ⅳ 一分为二Ⅴ 两者关系Ⅵ 研究性文章 1 如何精准定位1.1 定位明显的题1.2 定位不明显的题1.3 定位找不到出题句的题 2 对比选项两点2.1 接收信息2.2 对比信息 3 选择题答案特点4 评估选项5 选择题的固有缺陷5.…...

23.8.8 杭电暑期多校7部分题解

1008 - H.HEX-A-GONE Trails 题目大意 有两个玩家和一棵树&#xff0c;初始状态玩家一和玩家二分别在两个点 x , y x,\space y x, y&#xff0c;每次操作可以走一个与当前点有连边并且双方都没走到过的点&#xff0c;问最后是谁赢 解题思路 因为不能走走过的点&#xff0c…...

《24海南大学835软件工程考研经验贴》

1.经验之谈 首先&#xff0c;我是一个二战的考生&#xff0c;一战给我带来的经验有几点。第一&#xff0c;数学、专业课这两门越早复习越好&#xff0c;越拖到后面你就会发现来不及了&#xff0c;这学不完&#xff0c;那学不完的。第二、我认为是比较关键的一点&#xff0c;一定…...

【yolo系列:运行报错AttributeError: module ‘torch.nn‘ has no attribute ‘Mish‘】

最近运行yolov7报错AttributeError: module ‘torch.nn‘ has no attribute ‘Mish‘ 网上搜罗了一系列的报错方法但是都不怎么好解决&#xff0c;那么在这里给出具体解决方法&#xff0c;以及一些别人的参考文章。 这里先解释自己的&#xff0c;然后再给出别人的相对应的报错…...

Leetcode 剑指 Offer II 039. 直方图最大矩形面积

题目难度: 困难 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定非负整数数组 heights &#xff0c;数组中的数字用来表示柱状…...

SpringBoot案例-部门管理-修改

目录 前言 查看页面原型&#xff0c;明确需求 页面原型 需求 阅读接口文件 思路分析 功能接口开发 控制层&#xff08;Controller类&#xff09; 业务层&#xff08;Service类&#xff09; 业务类 业务实现类 持久层&#xff08;Mapper类&#xff09; 接口测试 前…...

element-ui表格数据为空,图片占位提示

当表格的绑定数据为空时常需要显示暂无数据等字样&#xff0c;这时候就用到了empty-text <el-table:data"tableData"stripeborderempty-text"暂无数据"> 但&#xff0c;当数据为空&#xff0c;想用图片展示呢&#xff0c;如下图 方法一&#xff1a…...

C++ STL vector 模拟实现

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;C之STL &#x1f525;<3>创作者&#xff1a;我的代码爱吃辣 ☂️<4>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<5>前言&#xff1a;上次我们已经数字会用…...

51单片机学习--红外遥控(外部中断)

需要利用下面这个红外接收头&#xff0c;OUT口会发出红外信号对应的高低电平&#xff0c;由于发送的速度很快&#xff0c;所以需要把OUT引脚接在外部中断引脚上&#xff0c;当OUT一旦产生下降沿&#xff0c;马上进中断&#xff0c;这样响应会更及时。 外部中断引脚位于P3_2和P…...

后端开发10.规格模块

概述 简介 效果图...

腾讯出了一个新聊天软件M8

众所周知&#xff0c;如今国内互联网&#xff0c;微信和QQ无疑是社交领域的霸主。 下载:https://www.123pan.com/s/BP5A-RW4xh.html 不过&#xff0c;它们也有各自局限性&#xff0c;比如难以结识新朋友、功能过于复杂等。 这让用户产生厌倦&#xff0c;再加上近几年AI、元宇…...

C++ QT(一)

目录 初识QtQt 是什么Qt 能做什么Qt/C与QML 如何选择Qt 版本Windows 下安装QtLinux 下安装Qt安装Qt配置Qt Creator 输入中文配置Ubuntu 中文环境配置中文输入法 Qt Creator 简单使用Qt Creator 界面组成Qt Creator 设置 第一个Qt 程序新建一个项目项目文件介绍项目文件*.pro样式…...

微信小程序时钟

微信小程序自定义时钟&#xff0c;模拟翻牌时钟。1、页面布局 <view class"date-time-box"><view class"date-box">{{nowDate}}</view><view class"time-box"><view><image class"pic01 {{move[0]?move…...

HttpRunner自动化工具之设置代理和请求证书验证

httprunner设置代理&#xff1a; httprunner 库本身没有提供设置代理的接口&#xff0c;但是底层使用了urllib.requests 等库&#xff0c;可以设置HTTP_PROXY 和HTTPS_PROXY 环境变量&#xff0c;常用的网络库会自动识别这些环境变量。 日常调试使用代理&#xff08;如charles…...

opsForHash() 与 opsForValue 请问有什么区别?

&#x1f449;&#xff1a;&#x1f517;官方API参考手册 如图&#xff0c;opsForHash()返回HashOperations<K,HK,HV>但是 opsForValue()返回ValueOperations<K,V>… 区别就是opsForHash的返回值泛型中有K,HK,HV,其中K是Redis指定的某个数据库里面某一个关键字(由…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

深度解析云存储:概念、架构与应用实践

在数据爆炸式增长的时代&#xff0c;传统本地存储因容量限制、管理复杂等问题&#xff0c;已难以满足企业和个人的需求。云存储凭借灵活扩展、便捷访问等特性&#xff0c;成为数据存储领域的主流解决方案。从个人照片备份到企业核心数据管理&#xff0c;云存储正重塑数据存储与…...

Python爬虫(52)Scrapy-Redis分布式爬虫架构实战:IP代理池深度集成与跨地域数据采集

目录 一、引言&#xff1a;当爬虫遭遇"地域封锁"二、背景解析&#xff1a;分布式爬虫的两大技术挑战1. 传统Scrapy架构的局限性2. 地域限制的三种典型表现 三、架构设计&#xff1a;Scrapy-Redis 代理池的协同机制1. 分布式架构拓扑图2. 核心组件协同流程 四、技术实…...