IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Educational Codeforces Round 124 (Rated for Div. 2)(A-C) -> 正文阅读

[C++知识库]Educational Codeforces Round 124 (Rated for Div. 2)(A-C)

A. Playoff

题意:

告诉你会执行2的n次方次比赛,参赛选手的标号也从1~2的n次方,两两pk,如果二者编号和是偶数,那么编号大的获胜进入下一轮,否则是奇数小的进入下一轮

思路:

不难发现,第一轮时每一组偏小的都会获胜也就是奇数会获胜,而进入到第二轮全是奇数,那么他们的和全是偶数,之后也是如此,因为偶数都被淘汰了,所以都会是出现奇数pk奇数的情况,所以输出最大的奇数即可,也就是2^n-1;
?

#include<bits/stdc++.h>

using namespace std;

int main()
{
    long long  n,i,j,t;
    cin>>t;
    while(t--)
    {
        cin>>n;
        long long d1=1;
        for(i=0;i<n;i++) d1*=2;
        cout<<d1-1<<endl;
    }
    return 0;
}

B. Prove Him Wrong

题意:

给你一个数组长度为n的数组,要求你可以执行无数次操作,每次操作选择任意一对数ai和aj,要求使得ai和aj都等于|ai-aj|,并且要保证操作之后整个数组的和不会减小,求是否能够成,不能则输出no,能则输出你构成的数租

思路:

其实题目的要求就是要求2*|a_{i}-a_{j}|>=a_{i}+a_{j}?拆分一下就是a_{i}>=3*a_{j}

所以就从最小的1开始,不断乘3,看看能否在1e9以内构成这个数组,如果越界就输出no

#include<bits/stdc++.h>

using namespace std;

int main()
{
    int n,i,j,t;
    cin>>t;
    while(t--)
    {
        cin>>n;
        long long  d1=1,flag=0;
        vector<int >a;
        for(i=0;i<n;i++)
        {
            a.push_back(d1);
            if(d1>1e9) {
                flag=1;
            }
            d1*=3;
        }
        if(flag==1)
        {
            cout<<"NO"<<endl;
        }
        else
        {
            cout<<"YES"<<endl;
            for(auto x:a)
            {
                cout<<x<<" ";
            }
            cout<<endl;
        }
    }
    return 0;
}

C. Fault-tolerant Network

题意:

题意提出来就是给你两排电脑,每一排电脑默认相连,并且每台电脑会有它的权值,然后你去连边,连边的花费就是两台电脑的权值和,现在要求你花费最少的价格,使得假设任意一台电脑死机后,剩下的电脑还是能够连通。且每一排电脑相领的两台电脑已经默认相连就像这样:

思路:

首先要去思考,如何连接才能使得断开任意一点剩下的还能都在一个环里呢?不难发现,如果他们从头连到尾像这样,那么断开任意一个点,剩下的都还是能继续连通的。

当然如果是交叉,那也可以

那么这是我连完两条线的情况,其实到这里就应该要发现,只要我对于任意一排主机来说,只要我连到了第一个点和最后一个点,那么他们之间就永远不会断开,都能从一头走到另外一排

所以对于每一排来说我都需要连头和尾两个点,那么最多就需要连接四条线,直接暴力跑出来,距离头部a0,b0,尾部an,bn距离最短的点有哪些,就解决了四条线的情况

那么还有三条线的情况,如何完成三条线连接到四个首尾点呢?

那么假设我一条线能连接两个首尾点,剩下两条线再分别连剩下的不就行了吗?

首先是一条线连接头部的:?

当然连接还有连接尾部的,加起来就两种了

那么还有头和尾部先连的:

?直接连接a0和bn即也有两种情况

所以三条线的有四种情况,两条线的两种情况,四条线的一种情况,总共7种

#include<bits/stdc++.h>

using namespace std;

const int maxn=2e5+1000;

#define int long long
int a[maxn],b[maxn];
signed main()
{
    int n,i,j,t;
    cin>>t;
    while(t--)
    {
        cin>>n;
        for(i=0;i<n;i++)
        {
            cin>>a[i];
        }
        for(i=0;i<n;i++)
        {
            cin>>b[i];
        }
        long long ans1=0,ans2=0,ans3=0,ans4=0,ans5=0,ans6=0,ans7=0;
        ans1=abs(a[0]-b[0])+abs(a[n-1]-b[n-1]);
        ans2=abs(a[n-1]-b[0])+abs(a[0]-b[n-1]);
        long long a0=0x3f3f3f3f,b0=0x3f3f3f3f,an=0x3f3f3f3f,bn=0x3f3f3f3f;
        for(i=0;i<n;i++)
        {
            a0=min(a0,abs(b[i]-a[0]));
            an=min(an,abs(b[i]-a[n-1]));
            b0=min(b0,abs(a[i]-b[0]));
            bn=min(bn,abs(a[i]-b[n-1]));
        }
        ans3=abs(a[0]-b[0])+bn+an;
        ans4=abs(a[n-1]-b[n-1])+a0+b0;
        ans5=abs(a[0]-b[n-1])+b0+an;
        ans6=abs(a[n-1]-b[0])+a0+bn;
        ans7=a0+b0+an+bn;
        cout<<min({ans1,ans2,ans3,ans4,ans5,ans6,ans7})<<endl;
    }
    return 0;
}

?

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:14:26  更:2022-03-12 17:15:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:21:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码