CCF-CSP19<2020-06>-第1/2题

本次难度: 

202006-1 线性分类器

题目:202006-1

题目分析:

给定n个点,并标记为AB两类,问给定直线是否能将其分为两个点集。

简单数学知识,点在直线上满足ax+by+c=0,点在直线割平面所得的上下其值会正负相反。

AC代码:

// -*- coding:utf-8 -*-// File    :   202006-1.cpp
// Time    :   2024/03/26
// Author  :   wolf#include <iostream>
#include <vector>
const int N = 1e8 + 10;
using namespace std;
vector<pair<int, int>> A, B;
#define ll long long// 判断该点在直线的哪一侧
int func(ll t0, ll t1, ll t2, ll x, ll y)
{return (t0 + t1 * x + t2 * y) > 0 ? 1 : -1;
}int main()
{int n, m;cin >> n >> m;// 读入n个点,使用两个vector进行存储for (int i = 0; i < n; i++){ll x, y;char type;cin >> x >> y >> type;if (type == 'A')A.push_back(make_pair(x, y));else if (type == 'B')B.push_back(make_pair(x, y));}while (m--){ll t0, t1, t2;cin >> t0 >> t1 >> t2;bool ans = true; // 标记,假设是满足的int A_std, B_std;// 设定A标准 B标准,就是在A集合和B集合各自随便抓一个点,代表它们集合中的点应该在直线哪边// 当且仅当A集合内的点都和A标准相等,B集合内的点都和B标准相等,再A标准不等于B标准,才满足题意A_std = func(t0, t1, t2, A[0].first, A[0].second);for (unsigned int i = 0; i < A.size(); i++){if (func(t0, t1, t2, A[i].first, A[i].second) != A_std){ans = false;break;}}B_std = func(t0, t1, t2, B[0].first, B[0].second);for (unsigned int i = 0; i < B.size(); i++){if (func(t0, t1, t2, B[i].first, B[i].second) != B_std){ans = false;break;}}if (A_std != B_std && ans == true)cout << "Yes" << endl;elsecout << "No" << endl;}return 0;
}

202006-2 稀疏矩阵(100)

题目:202006-2

题目分析:

如题,给定两个向量,但是是稀疏的。稀疏就是该向量大多数位置都是0,只有少数有值。

最简单的想法就是用数组模拟这两个向量,然后for循环模拟相加,但这样显然超时间,考虑负数的话要达到10^12,应该是0分。

再进一步,想到两重循环遍历这两个向量,index相等时相乘,30分,在10^5时就会超时,只能过前三个点,因此30分。

要完成10^9的数据规模,应该是O(n),即只能遍历一次。那么就遍历一个向量A,对于这个向量A的每一个,用while使得B不超过A的当前index但尽可能增大,这样大概就是2O(n)的复杂度,因此能100分。

AC代码:

// -*- coding:utf-8 -*-// File    :   202006-2.cpp
// Time    :   2024/03/25
// Author  :   wolf#include <algorithm>
#include <iostream>
#include <vector>
#define ll long longusing namespace std;
vector<pair<int, int>> v1, v2;
bool cmp(pair<int, int> a, pair<int, int> b)
{return a.first < b.first;
}int main()
{int n, a, b;cin >> n >> a >> b;for (int i = 0; i < a; i++){int index, value;cin >> index >> value;v1.push_back(make_pair(index, value));}for (int i = 0; i < b; i++){int index, value;cin >> index >> value;v2.push_back(make_pair(index, value));}ll ans = 0;// 30分答案// for (unsigned int i = 0; i < v1.size(); i++)// {//     for (unsigned int j = 0; j < v2.size(); j++)//     {//         if (v1[i].first == v2[j].first)//             ans += v1[i].second * v2[j].second;//     }// }// 100分答案sort(v1.begin(), v1.end(), cmp);sort(v2.begin(), v2.end(), cmp);unsigned int v2i = 0;for (unsigned int v1i = 0; v1i < v1.size(); v1i++){while (v2[v2i].first < v1[v1i].first && v2i < v2.size())v2i++;if (v1[v1i].first == v2[v2i].first)ans += v1[v1i].second * v2[v2i].second;}cout << ans << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云备份day02

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C云备份项目 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 主要内容介绍了第三方库jsoncpp和bundle库的使用 文章目录 云备…

android 使用ollvm混淆so

使用到的工具 ndk 21.4.7075529&#xff08;android studio上下载的&#xff09;cmake 3.10.2.4988404&#xff08;android studio上下载的&#xff09;llvm-9.0.1llvm-mingw-20230130-msvcrt-x86_64.zipPython 3.11.5 环境配置 添加cmake mingw环境变量如下图: 编译 下载…

Codeforces Round 836 (Div. 2) D. Range = √Sum

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e18, maxm 4e4 5; c…

Redis 常用命令以及结构

目录 1、目的 2、分析 2.1 String (字符串) 2.2 List(列表) 在右侧插入数据 获取&#xff0c;返回列表里指定元素。 获取索引为N的元素 设置指定索引位置的元素值 2.3 Hash (哈希) Redis---Hash 底层结构介绍 设置hash 值 删除Hash 值 2.4 ZSET 1、添加 先写权重…

PyQt qrc2py 使用PowerShell将qrc文件转为py文件并且将导入模块PyQt或PySide转换为qtpy模块开箱即用

前言 由于需要使用不同的qt环境&#xff08;PySide&#xff0c;PyQt&#xff09;所以写了这个脚本&#xff0c;使用找到的随便一个rcc命令去转换qrc文件&#xff0c;然后将导入模块换成qtpy这个通用库(支持pyside2-6&#xff0c;pyqt5-6)&#xff0c;老版本的是Qt.py(支持pysi…

【力扣每日一题】1026. 节点与其祖先之间的最大差值

LC 1026. 节点与其祖先之间的最大差值 题目描述 给定二叉树的根节点 root&#xff0c;找出存在于 不同 节点 A 和 B 之间的最大值 V&#xff0c;其中 V |A.val - B.val|&#xff0c;且 A 是 B 的祖先。 &#xff08;如果 A 的任何子节点之一为 B&#xff0c;或者 A 的任何子…

算法刷题Day23 | 回溯算法基础理论、 77. 组合

目录 0 引言1 回溯算法基础理论1.1 回溯算法模板1.2 2 组合2.1 我的解题2.2 剪枝操作 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;算法专栏&#x1f4a5; 标题&#xff1a;算法刷题Day23 | 回溯算法基础理论、 77. 组合❣️ 寄语&#xff1a;书…

贪心算法|455.分发饼干

力扣题目链接 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int index s.size() - 1; // 饼干数组的下标int result 0;for (int i g.size() - 1; i > 0;…

简约好用的TCPUDP小工具

csdn下载地址&#xff1a; https://download.csdn.net/download/a876106354/89077745

SSL/TLS协议

SSL 与 TLS — 通信协议之间的区别 — AWS 【ssl认证、证书】SSL双向认证和SSL单向认证的区别(示意图)_ssl单向认证和双向认证的区别-CSDN博客 什么是SSL和TLS-SSL和TSL的工作原理-SSL和TSL的概念-华为云 获取 SSL/TLS 证书 | EMQX 文档

木棍【dfs搜索优化】

木棒 题目描述 输入样例&#xff1a; 9 5 2 1 5 2 1 5 2 1 4 1 2 3 4 0输出样例&#xff1a; 6 5【思路】 优化 【AC代码】 #include <iostream> #include <algorithm> #include <cstring>using namespace std;const int N 70;int w[N], sum, length,…

阿里云邮件服务器多少钱?邮件服务器租用费用

阿里云邮件服务器租用费用&#xff0c;2核2G3M带宽99元一年、2核4G4M服务器199元一年&#xff0c;不只是云服务器ECS&#xff0c;还可以选择轻量应用服务器。 0、在阿里云CLUB中心领取 aliyun.club 当前最新的优惠券和服务器报价单 1、阿里云服务器ECS经济型e实例&#xff0c;2…

【BPNN】BP神经网络代码

主代码 function main() clc clear close all %% 1.原始数据 %输入 SR1[20.55 22.44 25.37 27.13 29.45 30.10 30.96 34.06 36.42 38.09 39.13 39.99 ...41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63]; SR2[0.6 0.75 0.85 0.9 1.05 1.35 1.45 1.6 1.7 1.85 2.15 2.2 2.25…

eNSP配置命令笔记

配置命令 一、基本命令二、静态路由 参考博文&#xff1a;博文1、博文2 一、基本命令 undo terminal monitor //在用户视图执行&#xff0c;关闭终端的告警或日志显示 system-view //进入系统视图,简化sys sysname <name> //修改设备名称interface <接口名(g0/0/…

专题三——二分算法

目录 原理 模板 朴素二分算法 非朴素二分算法 一二分查找 二在排序数组中查找元素的第一个和最后一个位置 三点名 四x的平方根 五搜索插入位置 六山脉数组的峰顶索引 七寻找峰值 八寻找旋转排序数组中的最小值 原理 定义两个指针&#xff1a;left指向数组第一个元…

如何看到 synchronized 背后的“monitor 锁”?

Java全能学习+面试指南:https://javaxiaobear.cn 获取和释放 monitor 锁的时机 我们都知道,最简单的同步方式就是利用 synchronized 关键字来修饰代码块或者修饰一个方法,那么这部分被保护的代码,在同一时刻就最多只有一个线程可以运行,而 synchronized 的背后正是利用 …

ACWing: 1049 大盗阿福

#暴力bfs&#xff1a; """ 题目描述 阿福是一名经验丰富的大盗。趁着月黑风高&#xff0c;阿福打算今晚洗劫一条街上的店铺。 这条街上一共有 N家店铺&#xff0c;每家店中都有一些现金。 阿福事先调查得知&#xff0c;只有当他同时洗劫了两家相邻的店铺时&…

Redis -- 缓存雪崩问题

缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机&#xff0c;导致大量请求到达数据库&#xff0c;带来巨大压力。 可能原因 : 同一时间大量的key到期 ; 解决方案&#xff1a; 给不同的Key的TTL添加随机值 利用Redis集群提高服务的可用性 给缓存业务添加降…

渗透测试靶机----Raven-1

渗透测试靶机----Raven-1 开启靶机&#xff0c;登录窗&#xff0c;平平无奇 开扫&#xff1a; 先看看ip 这里发现192.168.217.166 发现相关服务端口&#xff0c;这里看到80&#xff0c;还是老样子&#xff0c;先80入手打开发现一个熟悉的站点&#xff1a; 这里可以使用漏扫工具…

Python你想要修改文件内容的同时保留原文件的元数据(如创建时间、修改时间等)

在Python中&#xff0c;如果你想要修改文件内容的同时保留原文件的元数据&#xff08;如创建时间、修改时间等&#xff09;&#xff0c;你需要先读取原文件的内容&#xff0c;然后创建一个新的文件写入修改后的内容&#xff0c;同时复制原文件的元数据到新文件上。然而&#xf…