首页 > 其他分享 >A. Make it Beautiful - 构造 + 数学

A. Make it Beautiful - 构造 + 数学

时间:2023-04-26 13:44:08浏览次数:32  
标签:Beautiful 输出 int Make 构造 long 数组

题意:

  给定一个单调递增的数组,是否能通过任意调整顺序使对任意一个元素a[i]满足a[i]!=a[1]+a[2]+a[3]+...+a[i-1],如果能,输出“YES”并输出修改后的数组;如果不能输出“NO”。

分析:

  如果数组元素都相等则一定不能满足条件,由于数组单调递增,所以只需要把a[1]后面的元素从大到小输出即可满足条件。

代码:

#include <bits/stdc++.h>

#define endl '\n'

using namespace std;

typedef long long ll;

const int N=60;

int a[N];

void solve()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i];
        if(a[1]==a[n])
        {
            cout<<"NO"<<'\n';
            continue;
        }
        cout<<"YES"<<'\n';
        cout<<a[1]<<' ';
        for(int i=n;i>1;i--) cout<<a[i]<<' ';
        cout<<'\n';
    }
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    solve();
}

 

标签:Beautiful,输出,int,Make,构造,long,数组
From: https://www.cnblogs.com/yaowww/p/17355650.html

相关文章

  • C. Restore the Array - 构造 + 思维
    题意:对于长度为n的数组a,存在长度为n-1的数组b有b[i]=max(a[i],a[i+1]),t组测试数据,给出n和b数组,构造a数组。分析:对b数组相邻两元素反过来求最小值,看了codeforces中题解证明感觉很明了。有以下三种分类:1.a[1]=b[1]2.a[i]=min(b[i-1,b[i])3.a[n-1]=b[n......
  • 利用CMake生成同一解决方案下多个项目管理文件
    ​  有的时候,我们需要在同一解决方案下管理多个项目,如果通过VS将项目一个一个添加,这项工作将变得十分繁琐。举例来讲,拿服务端和客户端的SOCKET通信来说,服务端和客户端两部分代码应作为两个单独的项目进行编译,而为了在同一解决方案下对这两个(或多个)项目进行管理,此时便可以借助C......
  • Codeforces 1781G - Diverse Coloring(构造)
    vp时候想到大致思路了,但是死活调不对,赛后套取cf的数据调了好久才过/ll首先直觉告诉我们答案不会太大。稍微猜一猜可以猜出除了四个点的菊花之外答案都是\(n\bmod2\),下面我们来通过构造证明这件事情。首先,链的情况是trivial的,直接根据奇偶性间隔染色即可。如果不是链,那么......
  • Codeforces Round #306 (Div. 2) D. Regular Bridge 构造
    Anundirectedgraphiscalledk-regular,ifthedegreesofallitsverticesareequalk.Anedgeofaconnectedgraphiscalledabridge,ifafterremovingitthegraphisbeingsplitintotwoconnectedcomponents.Buildaconnectedundirectedk-regularg......
  • UE4 构造Json
    先记录:格式一:数组嵌套 实现1FStringGenerateJson(constFStringMsg)2{3TSharedPtr<FJsonObject>RootJsonObj=MakeShareable<FJsonObject>(newFJsonObject);4RootJsonObj->SetStringField(TEXT("prompt"),Msg);56TAr......
  • Makefile.am
    在automake的Makefile文件中,指定编译类库或者bin文件的路径时,由于需要加载的目录比较多,可能会换行,换行的内容需要在末尾增加反斜杠\,但是要注意,反斜杠后面不可以跟任何空格字符,如果有,会导致该条目出错,就是对应的编译的类库或者bin,无法正常编译,也不会报错。反斜杠后跟空格,在文本中不......
  • 构造函数私有化或保护化
    构造函数私有化或保护化摘自:https://blog.csdn.net/caoyangxiaoyao/article/details/81184786构造函数私有化/保护化可以将构造函数设置为私有函数,但是这样做就无法从外部直接调用构造函数,因此就无法直接构造这个类的对象。1.如果你不想让外面的用户直接构造一个类(类A)的对象,而是......
  • make_ext4fs error: make_file: failed to allocate inode
    make_ext4fserror:make_file:failedtoallocateinodeerror:do_inode_allocate_extents:Failedtoallocate1146blocksmakemenuconfigTargetImages--->[*]ext4--->(60000)Maximumnumberofinodesinrootfilesystem无脑6000改为60000同样的还有改sys......
  • Cmake使用
    [待更新中]find_package用法必读:注意,要想在自己的项目中使用find_package命令查找包的前提是:包的开发者用CMake配置好了这个包,并提供了<PackageName>Config.cmake或Find<PackageName>.cmake的配置文件。有2种搜包模式Module和Config模式默认采用Module模式,找不到的时......
  • codeforces 359B B. Permutation(简单构造)
    题目链接:codeforces359B题目大意:给出n和k,要求构造一个长度为2*n的排列,满足如下的式子:∑i=1n|a2∗i−1−a2∗i|−|∑i=1na2∗i−1−a2∗i|=2∗k题目分析:首先最终构造的2*k一定是小于n的偶数,如果我们直接放入自然数的排列,结果是0,我们将2*i-1和2*i分为一组,每次调换组内位置(每组只能......