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

2024年四川省大学生程序设计竞赛 补题记录

文章目录

    • Problem A. 逆序对染色(思维+树状数组)
    • Problem B. 连接召唤(贪心)
    • Problem E. L 型覆盖检查器(模拟)
    • Problem F. 小球进洞:平面版(几何)
    • Problem G. 函数查询
    • Problem H. GG 和 YY 的石子游戏(签到)
    • Problem L. 毛肚下清汤?(签到)

Problem A. 逆序对染色(思维+树状数组)

  • 难似我了
    在这里插入图片描述
#include <bits/stdc++.h>using namespace std;#define int long longstruct BIT
{const int n;vector<int> tree;BIT(int n) : n(n), tree(n + 1) {};// 询问前x个数的和int Query(int x){int res = 0;for (int i = x; i > 0; i -= (i & -i)) res += tree[i];return res;}// 第l个位置+zvoid Modify(int l, int z){if (l <= 0) return;for (int i = l; i <= n; i += (i & -i)) tree[i] += z;}// 区间求和int rangeQuery(int l, int r){return Query(min(n, r)) - Query(max(0ll, l - 1));}
};void solve()
{int n; cin >> n;vector<int> a(n + 1), pos(n + 1);for (int i = 1; i <= n; i ++ ){cin >> a[i];pos[a[i]] = i;}vector<vector<int>> mem(n + 1);vector<bool> st(n + 1);for (int i = 1; i <= n; i ++ ){int t = pos[a[i] - 1] + 1;if (i >= t){mem[t].push_back(i);st[a[i]] = true;}}BIT bit(n);int ans = 0;for (int i = 1; i <= n; i ++ ){for (auto t : mem[i]) bit.Modify(a[t], 1);if (st[a[i]]) bit.Modify(a[i], -1);if (a[i - 1] + 1 <= a[i] - 1) ans += bit.rangeQuery(a[i - 1] + 1, a[i] - 1);}cout << ans << '\n';
}signed main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int t = 1;// cin >> t;while (t -- ){solve();}
}

Problem B. 连接召唤(贪心)

  • 贪心,优先1-5,2-4,3-3匹配,我的代码里单独考虑了出现23的情况,题解好像简单一些,但是能a的代码就是好代码 我就不重写了(
#include <bits/stdc++.h>using namespace std;#define int long longtypedef pair<int, int> PII;void solve()
{vector<int> cnt(6);for (int i = 1; i <= 5; i ++ ) cin >> cnt[i];int ans = 0;int minn = min(cnt[1], cnt[5]);ans += minn;cnt[1] -= minn; cnt[5] -= minn;minn = min(cnt[2], cnt[4]);ans += minn;cnt[2] -= minn; cnt[4] -= minn;ans += cnt[3] / 2;cnt[3] %= 2;auto cal = [&](int id){int need = 6 - id;int nw = 0;for (int i = 1; i < id; i ++ ){if (!cnt[i]) continue;int minn = min((nw + cnt[i]) / need, cnt[id]);cnt[i] -= (minn * need - nw); cnt[id] -= minn; for (int j = 1; j < i; j ++ ) cnt[j] = 0;ans += minn;nw = cnt[i];}if (nw != 0 && cnt[id]){int need = 6 - nw;int c = need / id;if (cnt[id] >= c){need -= c * id;if (need == 0){cnt[id] -= c;ans ++ ;for (int i = 1; i < id; i ++ ) cnt[i] = 0;}else{if (cnt[id] >= need){cnt[id] -= need;ans ++ ;for (int i = 1; i < id; i ++ ) cnt[i] = 0;}}}}if (id == 5) ans += cnt[id] / 2;else if (id == 4 || id == 2) ans += cnt[id] / 3;else if (id == 1) ans += cnt[id] / 6;cnt[id] = 0;};if (cnt[1] && cnt[2] && cnt[3]){cnt[1] -= 1; cnt[2] -= 1; cnt[3] -= 1;ans ++ ;if (cnt[2]) cal(2);if (cnt[1]) cal(1);}else if (cnt[2] && cnt[3] && cnt[5]){cnt[5] -- ; cnt[3] -- ;ans ++ ;if (cnt[5]) cal(5);if (cnt[2]) cal(2);}else if (cnt[2] && cnt[3]){if (cnt[2] >= 2){cnt[2] -= 2; cnt[3] -- ;ans ++ ;}if (cnt[2]) cal(2);}else{for (int i = 5; i >= 1; i -- ){if (cnt[i]) cal(i);}}cout << ans << '\n';
}signed main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int t = 1;cin >> t;while (t -- ){solve();}
}

Problem E. L 型覆盖检查器(模拟)

#include <bits/stdc++.h>
using namespace std;
#define int long longstring g[510];
pair<int, int> dx[] = {{-1, 0}, {0, 1}, {0, -1}, {-1, 0}};
pair<int, int> dy[] = {{0,1}, {1,0}, {1,0}, {0,-1}};
char fx[] = {'D', 'L', 'R', 'D'};
char fy[] = {'L', 'U', 'U', 'R'};void solve()
{int n, m;cin >> n >> m;for (int i = 1; i <= n; i++) {cin >> g[i];g[i] = " " + g[i];}if (g[1][m] != '.') {cout << "No" << endl;return;}vector<pair<int, int>> cc;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {if (g[i][j] == 'C')cc.push_back({i, j});}}vector<vector<int>> st(n + 1, vector<int>(m + 1, 0));for (int i = 0; i < cc.size(); i++) {int a = cc[i].x, b = cc[i].y;st[a][b] = i + 1;for (int j = 0; j < 4; j++) {int x1 = a + dx[j].x, y1 = b + dx[j].y;int x2 = a + dy[j].x, y2 = b + dy[j].y;if (x1 < 1 || x1 > n || x2 < 1 || x2 > n)continue;if (y1 < 1 || y1 > m || y2 < 1 || y2 > m)continue;if (st[x1][y1] != 0) continue;if (st[x2][y2] != 0) continue;if (g[x1][y1] == fx[j] && g[x2][y2] == fy[j]) {st[x1][y1] = i + 1, st[x2][y2] = i + 1;}}}bool flag = 0;map<int, int> jk;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {if (i == 1 && j == m) continue;if (st[i][j] == 0){cout << "No" << endl;return;}jk[st[i][j]]++;}}for (auto bb : jk) {if (bb.y != 3) {cout << "No" << endl;return;}}cout << "Yes" << endl;
}signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int t = 1;cin >> t;while (t--){solve();}
}

Problem F. 小球进洞:平面版(几何)

  • 待补

Problem G. 函数查询

  • 待补

Problem H. GG 和 YY 的石子游戏(签到)

#include<bits/stdc++.h>
using namespace std;
int t,m,ans;
long long n,a;
int main()
{scanf("%d",&t);for(int i=1;i<=t;i++){cin>>n;ans=0;if(n%3==0){ans=1;}a=(n/3)+n%3;cout<<ans<<" "<<a<<"\n";}return 0;
}

Problem L. 毛肚下清汤?(签到)

#include <bits/stdc++.h>using namespace std;#define int long longtypedef pair<int, int> PII;void solve()
{int n; cin >> n;priority_queue<PII, vector<PII>, greater<PII>> red, green;for (int i = 1; i <= n; i ++ ){int a, b, c, d; cin >> a >> b >> c >> d;if (c == 0 && d == 0) continue;else if (c == 1 && d == 0) red.push({a, i});else if (c == 0 && d == 1) green.push({b, i});else{if (a > b) green.push({b, i});else red.push({a, i});}}cout << red.size() << ' ';while (red.size()){auto t = red.top();red.pop();cout << t.second << ' ';}cout << '\n';cout << green.size() << ' ';while (green.size()){auto t = green.top();green.pop();cout << t.second << ' ';}cout << '\n';
}signed main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int t = 1;// cin >> t;while (t -- ){solve();}
}

相关文章:

2024年四川省大学生程序设计竞赛 补题记录

文章目录 Problem A. 逆序对染色&#xff08;思维树状数组&#xff09;Problem B. 连接召唤&#xff08;贪心&#xff09;Problem E. L 型覆盖检查器&#xff08;模拟&#xff09;Problem F. 小球进洞&#xff1a;平面版&#xff08;几何&#xff09;Problem G. 函数查询Proble…...

17_事件的处理

目录 绑定事件与解绑事件优化事件的绑定和解绑方式处理不同事件类型的绑定处理同一事件类型多个事件处理函数事件冒泡与更新时机问题 绑定事件与解绑事件 既然要处理事件&#xff0c;那么首先面临的问题是如何在 vnode 中描述这个事件&#xff0c;在 vnode.props 中&#xff0…...

1FreeRTOS学习(队列、二值信号量、计数型信号量之间的相同点和不同点)

相同点&#xff1a; &#xff08;1&#xff09;传递区间 队列、二值信号量、计数型信号量均可用在任务与任务&#xff0c;任务与中断之间进行消息传递 &#xff08;2&#xff09; 传递方式 创建队列--发送队列--接受队列 创建二值信号量--发送二值信号量--接受二值信号量 创建计…...

数据库设计与范式及其应用

数据库设计是数据库管理系统&#xff08;DBMS&#xff09;中的核心环节&#xff0c;良好的数据库设计不仅可以提高数据存取的效率&#xff0c;还能增强数据的可维护性和一致性。范式&#xff08;Normalization&#xff09;是一种设计原则&#xff0c;用于减少数据冗余和提高数据…...

笔记-配置PyTorch(CUDA 12.2)

文章目录 前言一、安装 PyTorch&#xff08;CUDA 12.2&#xff09;1. 创建并激活 Conda 环境2. 安装 PyTorch&#xff08;CUDA 12.2&#xff09;3. 安装 torch_geometric 及依赖项4. 验证安装 总结 前言 一、安装 PyTorch&#xff08;CUDA 12.2&#xff09; 1. 创建并激活 Con…...

[C++]——红黑树(附源码)

目录 一、前言 二、正文 2.1 红黑树的概念 2.2 红黑树的性质 2.3红黑树节点的定义 2.4 红黑树的插入 2.4.1 情况一 2.4.2 情况二 ​编辑 2.4.3 情况三 2.5 红黑树的验证 三、全部代码 四、结语 一、前言 在上一篇博客中&#xff0c;为小伙伴们进行了AVL树的讲解&#…...

网络文件系统搭建

在CentOS7上搭建网络文件系统&#xff08;NFS&#xff09;&#xff0c;并让客户端进行挂载&#xff0c;具体步骤如下&#xff1a; 1. 服务器端操作 安装NFS服务器软件包&#xff1a; 执行以下命令安装NFS服务&#xff1a; sudo yum install nfs-utils -y 启动并启用NFS服务&…...

基于vue、VantUI、django的程序设计

首先构建vue项目&#xff0c;构建项目点这里 安装 npm install axios axios简介 Axios 是一个基于 promise 的 HTTP 库&#xff0c;用于发起请求和接收响应&#xff0c;实现异步操作 基本使用 axios对象 请求响应拦截 在utils文件夹里新建ajax.js 创建一个axios对象并…...

京准电钟解读:NTP网络对时服务器助力厂区改造方案

京准电钟解读&#xff1a;NTP网络对时服务器助力厂区改造方案 京准电钟解读&#xff1a;NTP网络对时服务器助力厂区改造方案 1&#xff09;系统概述 时钟系统可通过网络进行管理及时间校对&#xff0c;为厂区提供高精度、全天时、全天候 的授时服务&#xff0c;统一全厂各种系统…...

本地docker-compose仓库搭建以及推送docker镜像到仓库

前言 以下部分知识只适用于linux&#xff0c;不适合小白&#xff0c;请自行甄别执行 1.搭建 #参考 https://blog.csdn.net/u011535199/article/details/107457275 version: 3 services:registry:restart: alwaysimage: registry:2ports:- 5000:5000environment:#REGISTRY_HT…...

WPF+MVVM案例实战(八)- 自定义开关控件封装实现

文章目录 1、案例运行效果2、项目准备2、功能实现1、控件模板实现2、控件封装1、目录与文件创建2、各文件功能实现 3、开关界面与主窗体菜单实现1、开关界面实现2、主窗体菜单实现 4、源代码获取 1、案例运行效果 2、项目准备 打开项目 Wpf_Examples&#xff0c;新建ToggleBut…...

单机kafka性能需要高性能的硬件做支撑

一般来说&#xff0c;单机kafka在硬件支持的情况下&#xff0c;能支持每秒100万写入&#xff0c;如果硬件没有那么好的话(机械硬盘&#xff0c;容器内给内存8G&#xff0c; CPU也不是很好)&#xff0c;就只能减少每秒的写入量&#xff0c;每秒写入5万都比较不错了。 如果强行每…...

Spark 的 Http Broadcast 和 Torrent Broadcast 广播实现类的对比

在 Apache Spark 中&#xff0c;广播机制用于高效地将小型只读数据分发到集群中的各个执行器&#xff08;Executor&#xff09;。Spark 中主要有两种不同的广播实现方式&#xff1a;Http Broadcast 和 Torrent Broadcast。这两种方式的核心目标都是将数据高效地分发给所有工作节…...

030_Subplot_In_Matlab中多图绘制之subplot函数

基于子图的多图方法 专业的论文中通常涉及到多个有逻辑关系的图拼接在一起&#xff0c;构成相互支持或者对照。所以很早之前&#xff0c;Matlab就有这个子图的函数subplot。 这个函数的基本语义有三类&#xff1a; 在图窗上划分出一个矩形区域建立一个坐标系&#xff0c;并指…...

免费云服务器有什么使用限制和注意事项?

在数字化时代&#xff0c;云计算已经成为许多企业和个人用户的重要工具。对于初创企业、开发者和学生来说&#xff0c;免费的云服务器提供了一个低成本的解决方案&#xff0c;使他们能够进行项目开发、学习和实验。但在使用过程中也存在一些限制和注意事项。以下是主要的使用限…...

3-ZYNQ 折腾记录 -PS_PL AXI Interfaces

Zynq UltraScale MPSoC集成了功能丰富的四核或双核Arm Cortex-A53 MPCore基于处理系统(Processing System, PS)和可编程逻辑(Programmable Logic, PL)的单一设备。 PS和PL可以使用多个接口和其他信号进行紧密或松散的耦合。这使设计人员能够有效地将用户创建的硬件加速器和其他…...

总结test

1.IO流 |-- 字节流操作任何类型文件|-- 字符流操作纯字符类文件|-- BIO 传统IO流&#xff0c;阻塞型的&#xff0c;也就是BIO&#xff0c;当执行IO流时&#xff0c;CPU只能等待执行完当前任务&#xff0c;才能去执行其他线程任务|-- NIO非阻塞型IO流&#xff0c;CPU可以同时执行…...

在 On hold 期刊 eLife 上发表一篇生信文章需要什么工作量?

生信碱移 科研圈动态 根据弗雷赛斯以及相关媒体最新消息&#xff0c;中科院一区TOP&#xff0c;著名生命科学期刊 eLife [IF: 6.4]已被科睿唯安官方 On hold&#xff01; ▲ 官网截图。图片来源&#xff1a;https://mjl.clarivate.com/home eLife是一本专注于生物医学和生命科…...

使用Django框架开发企业级Web应用

&#x1f496; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4bb; Gitee主页&#xff1a;瑕疵的gitee主页 &#x1f680; 文章专栏&#xff1a;《热点资讯》 使用Django框架开发企业级Web应用 1 引言 2 Django简介 3 安装Python与Django 4 创建Django项目 5 设计应用结构 6 创…...

认识线程 — JavaEE

目录 认识线程&#xff08;Thread&#xff09; 1 线程是什么? 2 为什么要有线程 3 进程和线程的区别 区别一 区别二 区别三 区别四 4. Java的线程和操作系统线程的关系 认识线程&#xff08;Thread&#xff09; 1 线程是什么? 一个线程就是一个 "执行流"。…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...