学校周赛(2)

news2024/11/17 11:38:30

A.Minimize!

题目

在这里插入图片描述

思路

本题只需要遍历c的取值,实时更新答案即可

代码
#include<iostream>
#include<algorithm>
using namespace std;

void todo(){
    int a,b;
    cin>>a>>b;
    int ans=INT_MAX;
    for(int c=a;c<=b;c++){
        ans=min(ans,(c-a)+(b-c));
    }
    cout<<ans<<endl;
}

int main(){
    int t;cin>>t;
    while(t--){
        todo();
    }
    return 0;
}

B.osu!mania

题目

在这里插入图片描述

思路

本题只需要将图从下到上进行遍历并记录#的位置即可

代码
#include<iostream>
#include<vector>
using namespace std;

void todo() {
    vector<int> ans;
    int n; cin >> n;
    int num;
    vector<string> cnt(n);
    for (int i = 0; i < n; i++) {
        cin >> cnt[i];
    }
    num = cnt[0].size();
    for (int i = n-1; i >=0; i--) {
        for (int j = 0; j < num; j++) {
            if (cnt[i][j] == '#') {
                ans.push_back(j+1);
            }
       }
    }
    for (int x : ans) {
        cout<<x<<" ";
    }
    cout << endl;
}

int main() {
    int t; cin >> t;
    while (t--) {
        todo();
    }
    return 0;
}

C.The Legend of Freya the Frog

题目

在这里插入图片描述

思路

首先我们将路分为沿x沿y方向进行考虑,分别计算两者至少需要几步,由于每次都是先向x轴方向前进,所以如果是x大的话则yx要少走一步,如果y大或者y==x时,说明yx走了相同的步数。

代码
#include<iostream>
#include<vector>
using namespace std;

void todo() {
    int ans = 0;
    int x, y, k;
    cin >> x >> y >> k;
    //至少走几步
    x = ((x % k) ? 1 : 0)+ x / k;
    y = ((y % k) ? 1 : 0)+y / k;
    //cout << x << " " << y<<endl;
    ans = (x > y) ? (x*2-1):(y*2) ;
    cout << ans << endl;
}

int main() {
    int t; cin >> t;
    while (t--) {
        todo();
    }
    return 0;
}

D.Satyam and Counting

题目

在这里插入图片描述
在这里插入图片描述

思路

本题我采用的方法时哈希+维护的方式,首先记录y=0y=1,以及每一个x位置的点数,我们进行一个枚举和判断,我们枚举与y轴平行的高进行分析。
第一次枚举:当高为直角边(此处对应x为两个点)时,是一个组合,取y=1的作为另一个直角边,可以组成y[1]-1个三角形,同理y=0时,对应的时y[0]-1,总和起来时y[0]+y[1]-2
第二次枚举:当高不为直角边时(设顶点为(x,y)),查看与其y不相同的线上是否存在两个点组成直角三角形,由于本题的特殊性高一定为1,所以想要续成直角边,对应其余两点的x坐标一定是x-1,y-1

代码
#include<iostream>
#include<vector>
using namespace std;

void todo() {
    long long ans = 0;
    int n; cin >> n;
    vector<vector<int>> cnt(n + 1, vector<int>(2));
    vector<int> cnt_x(n + 1);
    vector<int> cnt_y(n + 1);
    for (int i = 0; i < n; i++) {
        int x, y;
        cin >> x >> y;
        cnt[x][y]++;
        cnt_x[x]++;
        cnt_y[y]++;
    }
    //维护一个直角边,平行于y轴的边
    for (int i = 0; i < n + 1; i++) {
        if (cnt_x[i] == 2) ans += cnt_y[0] + cnt_y[1] - 2;
    }
    for (int i = 1; i < n; i++) {
        if (cnt[i][0] && cnt[i - 1][1] && cnt[i + 1][1]) ans++;
        if (cnt[i][1] && cnt[i - 1][0] && cnt[i + 1][0]) ans++;
    }
    cout << ans << endl;
}

int main() {
    int t; cin >> t;
    while (t--) {
        todo();
    }
    return 0;
}

E.Klee’s SUPER DUPER LARGE Array!!!

题目

在这里插入图片描述

思路

本题考查的是数学+二分,在数学方面考察了一个等差数列求和,一个二次函数最值问题。
我们通过二分去寻找我们对应的i,我们按照题目意思将其分为左右两侧分别求和sum1 sum2,我们对应的答案则为|sum1-sum2|,通过化简得到[(2k+i)(i+1)-(n-i-1)(2k+n+i)]/2,不难看出这是一个二次函数,我们取绝对值之后,最小的结果对应着与0最接近的点,我们统计大于0当中最近的点,和小于0中最接近的点,最后返回其中对应的最小答案

代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

//等差数列
long long sum(long long a, long long b) {
    return ((b - a + 1) * (a + b)) >> 1;
}

void todo() {
    int n, k; cin >> n >> k;
    int l = 0, r = n-1 ; 
    while (l+1 < r) {
        int i = (l + r) / 2;
        long long sum1 = sum(k,k+i);
        long long sum2 = sum(k+i+1,k+n-1);

        //ans=abs(sum1-sum2)=| [(2k+i)(i+1)-(n-i-1)(2k+n+i)]/2 | ==>  二次函数
        //要绝对值最小则就是使答案向0逼近
        //找到左右侧距离0最近的两个点

        if (sum2-sum1>0) {
            l = i;  
        }
        else { 
            r = i;  

        }
    }
    //返回两点之间的最小值
    cout << min(abs(sum(k, k + l) - sum(k + l + 1, k + n - 1)), abs(sum(k, k + r) - sum(k + r + 1, k + n - 1))) << endl;
}

int main() {
    int t; cin >> t;
    while (t--) {
        todo();
    }
    return 0;
}

F. Firefly’s Queries (补题中)

题目

在这里插入图片描述

思路
代码

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

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

相关文章

二叉树的前序遍历,中序遍历,后序遍历以及层次遍历(递归方式+C语言代码)

#include<stdlib.h> #include<stdio.h> #include<assert.h> //定义一个二叉树结点结构体 typedef int ElemTpye; typedef struct TreeNode {ElemTpye data;struct TreeNode* left;struct TreeNode* right; }TreeNode; //创建结点 TreeNode* createTreenode(E…

【qt】QQ仿真项目1

一览全局: QQ仿真项目 一.创建项目添加资源文件二.创建数据库三.自定义标题栏Qt类四.加载样式表标题栏按钮的搭配五.标题栏实现移动窗体六.标题栏按钮连接信号槽七.标题栏双击最大化和还原八.基类窗口实现标题栏按钮信号九.重写基类窗口绘图事件确保设置样式表生效十.用户登录界…

Spring Gateway学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程&#xff1a;封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…

C++20中头文件concepts的使用

<concepts>是C20中新增加的头文件&#xff0c;此头文件是concepts库的一部分&#xff0c;主要用于模板编程、泛型编程。包括 1.core language concepts&#xff1a; std::same_as&#xff1a;指定一种类型(type)与另一种类型是否相同。 std::derived_from&#xff1a;指定…

学习之什么是装饰器

什么是装饰器 本质&#xff1a;就是一个函数&#xff0c;能为其它的函数增加额外功能 # 目标函数 def power_num(n):"""计算并返回1-n之间每个数的平方和:param n::return:"""total 0for i in range(1, n1):total i ** 2"""…

【网络安全】-访问控制-burp(1~6)

文章目录 前言   1.Lab: Unprotected admin functionality  2.Lab: Unprotected admin functionality with unpredictable URL   3.Lab: User role controlled by request parameter   4.Lab:User role can be modified in user profile  5.Lab: User ID controlled by…

爬虫入门 Selenium使用

爬虫入门 & Selenium使用 特别声明&#x1f4e2;&#xff1a;本教程只用于教学&#xff0c;大家在使用爬虫过程中需要遵守相关法律法规&#xff0c;否则后果自负&#xff01;&#xff01;&#xff01; 项目代码&#xff1a;https://github.com/ziyifast/ziyifast-code_inst…

systemd-analyze命令:Linux系统启动分析

一、命令简介 用途: systemd-analyze ​命令用于分析系统引导过程的时间性能。标签: 系统管理&#xff0c;性能分析。相关命令: systemd-bootchart​, systemd-cgtop​, systemd-resolve​. ‍ 二、命令参数 命令格式 systemd-analyze [OPTIONS...] COMMAND ...选项和参数…

GUI-Guider LVGL 添加自定义代码

添加自定义代码时&#xff0c;分为上线两端 1.上部分可有可无 2.下部分为你触发事件时调用的语句 具体集合下方图片 示例参考

运放模块的选型参数

增益带宽积-----尤其重要&#xff1a; GWB 增益*带宽 压摆率&#xff1a; 高带宽的运放一般都是电流型运放&#xff1a; 注意压摆率计算公式里面的Vopp参数是放大后的电压最大值&#xff1a; 参数&#xff0c;布局一定参考数据手册&#xff01;&#xff01;&#xff01;&…

Python编码系列—Python备忘录模式:掌握对象状态保存与恢复技术

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

快速理解使用mq(二)——用户、虚拟HOST、Queue的创建

一、用户的创建 直接添加即可 二、虚拟Host创建 创建完成选择所属用户 点进去新建的host 管理对应权限 三、queue 创建 选择对应host 直接添加即可

系统分析师14:需求工程

1 内容概要 2 需求工程概述 需求工程&#xff1a;需求开发【含需求分析】和需求管理系统分析&#xff1a;软件需求分析、硬件需求分析、网络需求分析软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望考虑“做什么”&#xff0c;而不考虑“怎么做”&#xff0c…

2025 年 IT 前景:机遇与挑战并存,人工智能和云计算成重点

云计算de小白 投资人工智能&#xff1a;平衡潜力与实用性 到 2025 年&#xff0c;人工智能将成为 IT 支出的重要驱动力&#xff0c;尤其是在生成式人工智能领域。人工智能的前景在于它有可能彻底改变业务流程、增强决策能力并开辟新的收入来源。然而&#xff0c;现实情况更加微…

4款工具搞定PDF去水印,线上+软件一应俱全!

作为一名文员&#xff0c;我每天都得和各种文档打交道&#xff0c;其中PDF文件是最常见的。有时候&#xff0c;我们收到的PDF文件会带有水印&#xff0c;这不仅影响了阅读体验&#xff0c;还可能在分享时造成不便。所以&#xff0c;学会如何去除PDF水印对我来说至关重要。今天&…

力扣 滑动窗口最大值

滑动窗口最大值 题目描述 题目分析 维护一个定长窗口的最大值&#xff0c;每当窗口滑动时都有一个新的元素进入和一个原有的元素离开。 比较简单的方法就是用一个优先队列维护窗口最大值 但是堆的计算成本时最坏时是 O ( n log ⁡ n ) O(n\log n) O(nlogn) 优化&#xff1a;…

uni-app在线预览pdf

这里推荐下载pdf.js 插件 PDF.js - Browse Files at SourceForge.net 特此注意 如果报 Promise.withResolvers is not a function 请去查看版本兼容问题 降低pdf.js版本提高node版本 下载完成后 在 static 文件夹下新建 pdf 文件夹&#xff0c;将解压文件放进 pdf 文件…

面试加分必看,11道接口安全测试面试题!

今天&#xff0c;分享一些在面试中可能会遇到的接口安全测试面试问题&#xff0c;助你在面试中从容不迫。 01.HTTPS 与 HTTP 的区别&#xff1f; 02.OSI七层模型是指&#xff1f; 03.你所知道的 HTTP 状态码&#xff1f; 04.你知道SQL注入吗&#xff1f; 05.SQL 注入与XSS…

Xiaojie雷达之路---doa估计(dbf、capon、music算法)

Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本篇文章主要是介绍一下雷达信号处理中的dbf、capon、music测角算法,一起来看看吧!!! 前言 本文从信号模型、dbf原理、capon原理、music原理以及代码仿真进行展开描述。 信号模型 阵列接收到…

c++与Python用笛卡尔的心形函数输出爱心

我突然想到输出爱心是否可以用笛卡尔的心形函数 在IDLE里用Python输出下面这个图形 在小熊猫c里用c输出下面这个图形 如果当你要输出这些的时候会怎么办 低级:纯输出 print( ********* ********* ***************** ***************** …