.Codeforces Round 883 (Div. 3)

简介: 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<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](https://ucc.alicdn.com/images/user-upload-01/img_convert/9bd8aa661c4d3abf3556b11da7519991.png)




节点个数假设为$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;

}


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;

}


```

相关文章
|
缓存 前端开发 JavaScript
前端性能优化的方式
前端性能优化的方式
144 1
|
机器学习/深度学习 人工智能 算法
AI项目成功的4要素
如何确保你的项目保持在正轨上。如果你是产品经理,想要用机器学习来做一些事情,这里列出了 4 件最重要的事情
|
10月前
|
机器学习/深度学习 编解码 计算机视觉
RT-DETR改进策略【Backbone/主干网络】| 2023 U-Net V2 替换骨干网络,加强细节特征的提取和融合
RT-DETR改进策略【Backbone/主干网络】| 2023 U-Net V2 替换骨干网络,加强细节特征的提取和融合
622 10
RT-DETR改进策略【Backbone/主干网络】| 2023 U-Net V2 替换骨干网络,加强细节特征的提取和融合
【洛谷 P1036】[NOIP2002 普及组] 选数 题解(深度优先搜索+判断质数+枚举子集)
**NOIP2002普及组选数问题**:给定$n$个整数和一个整数$k$,需找出所有$k$个数的组合,计算它们的和为素数的种类数。输入包含$n$和$k$,以及$n$个整数;输出是符合条件的组合数。例如,对于输入`4 3`和数组`[3, 7, 12, 19]`,输出为`1`。代码使用递归枚举子集并检查质数的方法。
499 0
|
机器学习/深度学习 算法 算法框架/工具
深度学习中epoch、batch、batch size和iterations详解
深度学习中epoch、batch、batch size和iterations详解
1686 0
|
人工智能 Oracle 搜索推荐
CRM系统哪家好?深入分析与选择指南
2024年,市场竞争激烈,选择合适的CRM系统对提升客户关系管理和销售效率至关重要。销售易CRM、纷享销客、Zoho CRM、HubSpot CRM、Microsoft Dynamics 365、Oracle CRM、SAP CRM、腾讯企点、客如云及金蝶云之家等系统凭借各自的功能特色与技术创新脱颖而出,为企业提供从销售自动化到数据分析的全方位解决方案,助力不同规模企业实现高效运营与数字化转型。
|
Cloud Native Devops 持续交付
构建未来:云原生技术在企业数字化转型中的关键作用
【5月更文挑战第18天】 随着数字浪潮的不断推进,企业正面临着前所未有的转型压力与机遇。本文深入探讨了云原生技术如何成为支持企业敏捷开发、自动化运维和资源优化的核心。通过分析微服务架构、容器化、持续集成/持续部署(CI/CD)以及DevOps文化的融合,揭示了云原生技术如何推动企业IT架构的现代化,并加速其业务创新的步伐。文中还将展示实际案例,以证明云原生实施对企业竞争力提升的实际效益。
|
SQL 分布式计算 OLAP
医疗在线OLAP场景下基于Apache Hudi 模式演变的改造与应用
医疗在线OLAP场景下基于Apache Hudi 模式演变的改造与应用
234 2
|
NoSQL Linux 网络安全
Redis集群搭建
Redis集群搭建
|
SQL Java 数据库连接
封装数据库工具类(增删改查、日期类)
封装数据库工具类(增删改查、日期类)
202 0

热门文章

最新文章