Codeforces Round 883 (Div. 3)

2023-11-07

A. Rudolph and Cut the Rope

只需要按照钉子距离的高度a_{i}和绳子的长度b_{i}的差值进行排序即可

代码

int n;
pii a[N];
bool cmp(pii a,pii b)
{
    return a.x-a.y<b.x-b.y;
}
 
void solve()
{
    cin>>n;
    for(int i=1;i<=n;i++)
      cin>>a[i].x>>a[i].y;
    sort(a+1,a+1+n,cmp);
    reverse(a+1,a+1+n);
    int res=0;
    for(int i=1;i<=n;i++)
    {
        if(a[i].x<=a[i].y)
        {
            break;
        }
        res++;
    }
    cout<<res<<endl;
}

B. Rudolph and Tic-Tac-Toe

模拟即可

代码

void solve()
{
    int n=3;
    for(int i=1;i<=n;i++)
      for(int j=1;j<=n;j++)
         cin>>s[i][j];
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(s[i][j]==s[i][j+1]&&s[i][j+1]==s[i][j+2]&&s[i][j]!='.')
            {
                cout<<s[i][j]<<endl;
                return;
            }
            if(s[i][j]==s[i+1][j]&&s[i+1][j]==s[i+2][j]&&s[i][j]!='.')
            {
                cout<<s[i][j]<<endl;
                return;
            }
            if(s[i][j]==s[i+1][j+1]&&s[i+1][j+1]==s[i+2][j+2]&&s[i][j]!='.')
            {
                cout<<s[i][j]<<endl;
                return;
            }
            if(s[i][j]==s[i+1][j-1]&&s[i+1][j-1]==s[i+2][j-2]&&s[i][j]!='.')
            {
                cout<<s[i][j]<<endl;
                return;
            }
        }
    }
    cout<<"DRAW"<<endl;
}

C. Rudolf and the Another Competition

统计出每个人的过题的数量x_{i}和罚时t_{i}然后依次先对比过题数然后再对比罚时即可

void solve()
{
	cin>>n>>m>>t;
    vector<pii>p(n+10);
    int res=0;
    for(int i=0;i<n;i++)
    {
    	p[i].x=p[i].y=0;
    	vector<int>a;
    	int s=0;
    	for(int j=0;j<m;j++)
    	{
    		int x;
    		cin>>x;
    		a.push_back(x);
    	}
    	sort(a.begin(),a.end());
    	
    	for(int j=0;j<m;j++)
    	{
    		s=s+a[j];
    	    if(s<=t)
    	    {
    	    	p[i].x+=1;
    	    	p[i].y+=s;
    	    }	
    	}
    	if(i>0)
    	{
    		if((p[0].x<p[i].x)||(p[0].x==p[i].x&&p[i].y<p[0].y))res++;
    	}
    }
    cout<<res+1<<endl;
 
    
}

D. Rudolph and Christmas Tree

先统计所有三角形的面积,然后减去重叠部分即可,重叠部分可以根据初中学过的相似三角形定理对应边成比例即可

void solve()
{
    cin>>n>>d>>h;
    for(int i=1;i<=n;i++)
      cin>>y[i];
    sort(y+1,y+1+n);
    double s=n*d*h*0.5;
    for(int i=2;i<=n;i++)
    {
        int v=h+y[i-1];
        if(v>y[i])
        {
            double x=v-y[i]*1.0;
            double t=x/h*d*x*0.5;
            s-=t;
        }
    }
    printf("%f\n",s);
}

E2. Rudolf and Snowflakes (hard version)

根据样例中的图解

img

节点个数假设为n

n=1+4{1}+4{2}=21

我们假设他有k个子节点,会扩展x次那我们可以推出一个方程

n=1+k+k{2}+…+k{x}

所以只要将n分解成多项式即可

我们可以看出这个具有单调性,所以可以利用二分来快速求得答案

先枚举指数 x\in[2,60] 然后再二分k即可

void solve()
{
   cin>>n;
   for(int i=2;i<=60;i++)
   {
   	  int l=1,r=n+1;
   	  
   	  auto check=[&](int x){
   	  	int s=0,t=1;
   	  	for(int j=0;j<=i;j++)
   	  	{
   	  		s+=t;
   	  		if(s>inf)s=inf;
   	  		if((__int128_t)t*x>inf)t=inf;
   	  		else t*=x;
   	  	}
   	  	return s;
   	  };
   	  
   	  while(l+1<r)
   	  {
   	  	int mid=l+r>>1;
   	  	if(check(mid)>=n)r=mid;
   	  	else l=mid;
   	  }
   	  if(check(r)==n)
   	  {
   	  	cout<<"YES"<<endl;
   	  	return;
   	  }
   }
   cout<<"NO"<<endl;
  return;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Codeforces Round 883 (Div. 3) 的相关文章

  • 服务器故障排查方法总结

    服务器故障排查方法总结 问题描述 查找步骤 1 查找top检查服务器负载是否有问题 2 在服务器中查看网站的访问记录 3 这个时候先对数据库进行重启 对apache进行重启 4 查找数据库错误日志 问题描述 每当出现网站访问不了的时候 估计
  • Java list修改某个元素值的方法

    修改list中下标为index对象的值 set index element 增添 add index element

随机推荐

  • 在Android上修改读取IMEI码的方法

    我们知道 如果是移动设备 厂家都提供了IMEI码写入及读出的方法 但由于我们的是非移动设备 可是我们也需要写入IMEI码 供第三方的软件读取 如正版地图等 我们找到frameworks base telephony java android
  • selenium 隐式等待如何使用_selenium 中使用等待的三种方法

    现在很多的 web 网站使用 AJAX 技术 当页面加载到浏览器 这个页面的很多元素显示出来的可能不一致 如果一个元素还未加载出来 在定位的时候 就会抛出异常 ElementNotVisibleException 这个时候就要使用等待方法解
  • 【转】latex常见错误对照表

    原文链接 http www cs utexas edu witchel errorclasses html Latex Error Classes Ambiguous Errors This is a list of error class
  • 【低功耗蓝牙】① 蓝牙广播数据格式分析

    摘要 本文章主要讲解了蓝牙的发展史 蓝牙信号 蓝牙广播数据的格式 最后使用ESP32芯片MicroPython固件给出了蓝牙广播的具体代码 是蓝牙初学者很好的参考资料 也可以参考下我在B站的蓝牙视频教程 ESP32教程 第二章 低功耗蓝牙B
  • 创建多个线程、数据共享问题分析与案例代码

    创建多个线程 数据共享问题分析与案例代码 创建和等待多个线程 在实际的工作中 可能要创建的线程不止一个 也许有多个 所以 这里展示一下创建多个线程的一种写法 大家可以举一反三 在lesson4 cpp的上面位置 书写线程入口函数 mypri
  • Python框架区别是什么?比较常用的框架有哪些?

    前言 本文的文字及图片来源于网络 仅供学习 交流使用 不具有任何商业用途 版权归原作者所有 如有问题请及时联系我们以作处理 众所周知 Python开发框架大大减少了开发者不必要的重复劳动 提高了项目开发效率的同时 还使得创建的程序更加稳定
  • webpack原理

    1 webpack核心概念 entry 一个可执行模块或库的入口文件 chunk 多个文件组成的一个代码块 例如把一个可执行模块和它所有依赖的模块组合和一个 chunk 这体现了webpack的打包机制 loader 文件转换器 例如把es
  • 海康网络摄像机与电脑交互,有网络和无网络两种方式读取URL视频流,以及无网络情况下配置IP地址

    目录 1 准备工具 2 通过WiFi的接口连接 3 无网络情况下进行交互 4 海康官方软件 5 RTSP视频流 a RTSP b 视频流 c rtsp流地址 1 准备工具 电脑 台式或笔记本 网线 普通网线即可 POE海康网络摄像机 不需要
  • Nerf如何制作自己的llff数据集

    Nerf三维重建使用Pycharm运行自己的数据集 20230427更新 Nerf代码讲解 从零简单复现论文代码 Nerf环境配置教程 你好 这里是 出门吃三碗饭 本人 本文章接下来将介绍自己制作Nerf数据集 让你自己动手渲染第一个三维模
  • PyCharm 代码调试教程

    目录 一 图文教程 二 调试相关的快捷键 调试的过程分为三步 第一步 在你想要调试的地方 打上断点 第二步 使用调试模式来运行这个 python 程序 第三步 使用各种手段开始代码调试 一 图文教程 1 首先第一步和第二步 我用下面这张图表
  • Spring Cloud Config 实现配置中心,看这一篇就够了

    Spring Cloud Config 是 Spring Cloud 家族中最早的配置中心 虽然后来又发布了 Consul 可以代替配置中心功能 但是 Config 依然适用于 Spring Cloud 项目 通过简单的配置即可实现功能 配
  • ArcGIS:如何添加字段、属性表的连接、字段的计算?

    目录 01 加载原始数据 02 加载的数据分析与处理 2 1 查看tracts要素的属性表 2 2 为tracts要素的属性表添加 人口密度 字段 03 与tract pop属性表进行连接 3 1 为什么要连接 3 2 连接有什么需要注意的
  • vue 导出 导入

    vue 导出 方法一 1 util自带工具包 Export2Excel js 2 引用 import export json to excel from utils Export2Excel 3 导出方法 formatJson filter
  • 基于lua-nginx-module(openresty)的WEB应用防火墙

    独乐乐 不如众乐乐 分享给大家一篇WEB应用防火墙的文章 基于Lua Nginx实现 以下是ngx lua waf的作者全文输出 Github地址 https github com loveshell ngx lua waf ngx lua
  • MySQL 5.7 root登录问题

    For Mac 安装完成后 当使用 mysql u root p 登录时 出现下面错误 ERROR 1045 28000 Access denied for user root localhost using password NO 可通过
  • 正则替换下划线为字母大写

    本人需要手工将数据库中的字段批量转换为java对象的字段 比如 将TRADE DATE 转换为 tradeDate 最终的结果为 1 xxx xml 格式如下 result property tradeDate column TRADE D
  • calendar 字符串日期转时间戳

    public class TestDate public static void main String args SimpleDateFormat dateFormat new SimpleDateFormat yyyy MM dd 指定
  • github上传本地项目代码

    github上传本地项目代码 小白教程 github上申请一个账号 https github com 下载一个git工具 https gitforwindows org 进入github首页 点击新项目new repository 如下图所
  • Java中Comparable和Comparator区别小结

    阅读目录 一 Comparable简介 二 Comparator简介 三 Comparable和Comparator区别比较 回到顶部 一 Comparable简介 Comparable是排序接口 若一个类实现了Comparable接口 就
  • Codeforces Round 883 (Div. 3)

    A Rudolph and Cut the Rope 只需要按照钉子距离的高度a i 和绳子的长度b i 的差值进行排序即可 代码 int n pii a N bool cmp pii a pii b return a x a y