23.3.9打卡 AtCoder Beginner Contest 259

news2024/11/16 8:28:28

A题

A

题解

对于x特判一下就好

代码

void solve()
{
    ll x,d;
    cin>>n>>m>>x>>t>>d;
    if(n>m)
    {
        n=min(n,x);
        if(n<m)
        {
            cout<<t;
            return;
        }
        cout<<(m-n)*d+t;
    }else
    {
        m=min(m,x);
        cout<<(m-n)*d+t;
    }
    return;
}

B

B
三角函数全还给高中老师了哭

题解

上图!
B题解
根据上图的结论, 可以得到

 x=a*cos(d)-b*sin(d);
 y=a*sin(d)+b*cos(d);

代码

void solve()
{
    cin>>n>>m>>cnt;
    double s=2.0*M_PI*cnt/360;
    double x,y;
    x=1.0*n*cos(s)-1.0*m*sin(s);
    y=1.0*n*sin(s)+1.0*m*cos(s);
    // cout<<<<endl;
    printf("%.8lf %.8lf",x,y);
    return;
}

C

翻译的题面有点错误, 这里就不放图了

题意

给出两个串a和b, 可以在a中任意两个相同的字符中插入一个相同的字符, 问是否可以使得a==b

题解

双指针
从下标0开始, a和b串都直接向后找不同的字符并记录相同的字符串有多少个
假设a向后找到第一一个与前面不同的字符为a1
       b向后找到第一一个与前面不同的字符为b1
a中相同的字符数量为a2
b中相同的字符数量为b2

  1. a1!=b1 显而易见 此时再怎么操作也不可能使得a==b
  2. a2=0且b2=0 不需要操作
  3. a2>0且b2>0且a2<b2 将a2操作到a2==b2为止即可
  4. a2=0且b2>0 无法操作但却需要操作的情况
  5. a2>0&&b2>0&&a2>b2 操作只能添加不能减少
  6. 最后需要特判b的指针是否走到了终点

1 4 5都是错误的, 6需要额外判断

代码

写的什么一坨屎, 没有技巧只有特判是吧

void solve()
{
    cin>>s1>>s2;
    cnt=s2.size();
    ll j=0;
    for(int i=0;i<s1.size();i++)
    {
        ll a,b;
        a=b=0;
        while(i<s1.size()-1&&s1[i]==s1[i+1])
        {
            a++;
            i++;
        } 

        while(j<s2.size()-1&&s2[j]==s2[j+1])
        {
            b++;
            j++;
        }
        // cout<<i<<s1[i]<<' '<<j<<s2[j]<<endl;
        if(s1[i]!=s2[j]) 
        {
            no
            return;
        }
        if(a==0&&b>0)
        {
            no
            return;
        }
        if(a>b)
        {
            no
            return;
        }
        j++;
    }
    if(j!=s2.size()) 
    {
        no
        return;
    }
    yes
    return;
}

D

D

题意

有n个圆, s点和t点都在某两个圆上, 问s0是否能通过圆周走到t位置

题解

暴力 n 2 n^{2} n2求每两个圆之间是否连通, 使用并查集存储连通的状态
有点像kruskal但并不需要求最小只需要连通 (那不就是单纯的并查集吗)

代码

ll find(ll x)
{
    if(x!=arr[x]) arr[x]=find(arr[x]);
    return arr[x];
}

ll cal(ll x)
{
    return x*x;
}

void solve()
{
    cin>>n;
    ll sx,sy,tx,ty,ans1,ans2;
    cin>>sx>>sy>>tx>>ty;
    rep(i,1,n) cin>>x[i]>>y[i]>>r[i];

    rep(i,1,n)
    {
        arr[i]=i;
        if(cal(x[i]-sx)+cal(y[i]-sy)==cal(r[i])) ans1=i;
        if(cal(x[i]-tx)+cal(y[i]-ty)==cal(r[i])) ans2=i;
    }

    rep(i,1,n)
        rep(j,i+1,n)
        {
            if(cal(x[i]-x[j])+cal(y[i]-y[j])>cal(r[i]+r[j])) continue;
            if(cal(x[i]-x[j])+cal(y[i]-y[j])<cal(r[i]-r[j])) continue;
            ll a,b;
            a=find(i);
            b=find(j);
            arr[a]=b;
        }
    if(find(ans1)==find(ans2)) yes
    else no
    
    return;
}

e题只能说是看都没看

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

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

相关文章

ARM 学习(一)

ARM 处理器的运行模式ARM处理器共有7种运行模式&#xff0c;如下表所示&#xff1a;处理器模式描述用户模式&#xff08;User&#xff09;正常程序运行模式中断模式&#xff08;IRQ&#xff09;用于通常的中断处理快速中断模式&#xff08;FIQ&#xff09;用于高速传输和通道处…

qt控件增加渐变色效果

ui->returnBtn->setStyleSheet("color: rgb(0, 0, 0);""background:qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, ""stop:0 #5f5f5f, stop:0.5 #ffffff, stop:0.98 #5f5f5f);""border:none;");效果如下图&#xff1a; …

java-3月xly笔记

时间安排&#xff1a; 朱祥祥 会议号&#xff1a;417 523 3263 服务器&#xff1a;doc.canglaoshi.org jdk下载&#xff1a;https://repo.huaweicloud.com/java/jdk/ jdk配置环境变量 检测命令&#xff1a; &#xff08;1&#xff09;winr&#xff0c;输入cmd&#xff0c…

ActiveMQ反序列化漏洞原理+复现

ActiveMQ反序列化漏洞 ActiveMQ ActiveMQ是开源消息总线&#xff0c;消息中间件 工作原理 通过使用消息队列&#xff0c;实现服务的异步处理&#xff0c;主要目的是减少请求响应时间和解耦合。 消息队列&#xff0c;服务器A将客户发起的请求放入服务器B的消息队列中&#…

裸辞两个月还能不能找到工作?亲身经历告诉你结果·····

这是我在某论坛看到的一名网友的吐槽&#xff1a; 软件测试四年&#xff0c;主要是手动测试&#xff08;部分自动化测试和性能测试&#xff0c;但是用的是公司内部自动化工具&#xff0c;而且我自动化方面是弱项。&#xff09;现在裸辞两个月了&#xff0c;面试机会少而且面试…

树与二叉树(二叉树的表示,性质,遍历,还原)

基本术语&#xff1a;A&#xff08;或B&#xff09;是I的祖先&#xff0c;I是A&#xff08;或B&#xff09;的子孙&#xff1b;D是I的双亲&#xff0c;I是D的孩子&#xff1b;节点的孩子个数称为节点的度&#xff1b;树中节点的最大度数称为树的度&#xff1b;度大于0的节点称为…

Git 命令行5步解决冲突方法(亲测有效)

总体步骤如下&#xff1a; git pull --rebase 解决冲突文件 file1.c。git add file1.cgit commit -m "*****" git pushgit rebase --continue &#xff0c;此时冲突消失强推&#xff0c;git push origin xxxx -f 本人解决的例子如下&#xff1a; 第一步、拉取…

SSH框架 (一) SpringMVC

1.SpringMVC 1.1 概述 Spring MVC 是 Spring 提供的一个基于 MVC 设计模式 的轻量级 Web 开发框架&#xff0c;本质上相当于 Servlet相当于对其的进一步封装 核心组件 DispatcherServlet。 Spring MVC框架 内部采用松耦合、可插拔的组件结构&#xff0c; 具有高度可配置性&am…

1/4车、1/2车、整车悬架H2/H∞控制仿真合集

目录 前言 1. 1/4悬架系统 1.1数学模型 1.2 H2/H∞求解反馈阵阵 1.3仿真分析 2. 1/2悬架系统 2.1数学模型 2.2 H2/H∞求解反馈阵阵 2.3仿真分析 3. 整车悬架系统 3.1数学模型 整车7自由度主动悬架数学模型 3.2 H2/H∞求解反馈阵阵 3.3仿真分析 4.总结 参考文献 …

Java-Web之s2-001与CommonsCollections

本文源自我个人入坑Java-Web安全的一点小经验&#xff0c;献给那些看得懂java代码但不知道从哪里入手代审的师傅们&#xff1a;&#xff09; Struts2之s2-001 环境配置 说说环境配置的问题&#xff0c;大多数人对漏洞复现的恐惧感还是来自于环境的配置&#xff0c;也许配了大…

在 Ubuntu 下编写 C++

在 Ubuntu 下编写 C 在 Ubuntu 上面编写 C&#xff0c;本章节内容主要介绍在 Ubuntu 在终端窗口下使用 vi/vim 编辑一 个 C源文件。通过编写最简单的示例“Hello,World&#xff01;”。带领大家学习如何在 Ubuntu 终端下编 辑和编译 C。这里要求大家会在 Ubuntu 上使用 vi/vim…

图片动画化应用中的动作分解方法

作者 | FesianXu 前言 最近基于AI的换脸应用非常的火爆&#xff0c;同时也引起了新一轮的网络伦理大讨论。如果光从技术的角度看&#xff0c;对于视频中的人体动作信息&#xff0c;通常可以通过泰勒展开分解成零阶运动信息与一阶运动信息&#xff0c;如文献[1,2]中提到的&…

Multisim 14.3 安装教程

1、首先解压Multisim 安装包。 2、解压完成后&#xff0c;双击点进去&#xff0c;找到setup这个文件&#xff0c;点进去。 3、找到setup文件里面的install.exe文件&#xff0c;并鼠标右键 “找到以管理员身份运行”。 4、选择“我接受上述许可协议”&#xff0c;点击下一步。 …

InceptionTime 复现

下载数据集&#xff1a; https://www.cs.ucr.edu/~eamonn/time_series_data/ 挂梯子&#xff0c;开全局模式即可 配置环境 虚拟环境基于python3.9&#xff0c; tensorflow下载&#xff1a;pip install tensorflow&#xff0c;不需要tensorflow-gpu&#xff08;高版本python&…

电脑怎么既录屏又录人脸?分享2个宝藏方法,轻松学会

在如今的数字时代&#xff0c;视频已成为人们表达和传递信息的最佳方式。无论是用于工作、教育、演示还是娱乐&#xff0c;录制高质量的视频已成为不可或缺的需求。然而&#xff0c;有些场景需要同时录制屏幕和人脸&#xff0c;电脑怎么既录屏又录人脸&#xff1f;本文将分享两…

Unity入门精要03---透明效果

本节知识架构 1.渲染顺序与渲染队列 如果采用了透明度混合即要是实现半透明效果&#xff0c;那么就要关闭深度写入&#xff0c;那么此时渲染顺序就会变得非常非常重要&#xff0c;不然会出现不正确的遮挡效果。具体的分析可见书中解释 一句话概括就是因为没有写入深度&#xf…

【3.9】RedisAOF日志、字符串、操作系统进程管理

4. 进程管理 进程、线程基础知识 什么是进程 我们编写的代码只是一个存储在硬盘的静态文件&#xff0c;通过编译后就会生成二进制可执行文件&#xff0c;当我们运行这个可执行文件后&#xff0c;它会被装载到内存中&#xff0c;接着 CPU 会执行程序中的每一条指令&#xff0c;…

ubuntu 使用 CMake 构建 Qt5 项目

Qt 概述 概念 Qt 是一个跨平台的 C 图形用户界面应用程序框架 常见的 C GUI: Qt 和 MFC 跨平台 Windows Linux MacOS 嵌入式平台 版本 包括商业版和开源免费版 案例 Linux 桌面环境 KDE WPS Office Qt 安装 下载地址: https://download.qt.io/archive/qt/ http…

37.Java进阶之实现动态编译

文章目录1. 作为程序员的最高追求2.如何实现动态编译2.1 生成源码2.2 调用编译器API对Test源码文件进行编译生成字节码2.3 调用类加载器对字节码进行加载得到Class对象2.4 使用Class对象创建对象进行使用3. Java编译API学习4. 类加载机制4.1 类加载过程4.2 类加载器的层次结构4…

【数据结构】研究链表带环问题

&#x1f4af;&#x1f4af;&#x1f4af;&#x1f4af; 本篇主要研究的是链表带环问题&#xff0c;快慢指针的应用&#xff0c;分析不同解法对带环链表的处理&#xff0c;梳理完本篇你将对链表的理解更加透彻Ⅰ.研究链表带环问题Ⅱ.扩展带环问题1.为什么慢指针和快指针一定会相…