首页 > 其他分享 >Educational Codeforces Round 100 (Rated for Div. 2) B. Find The Array(思维)

Educational Codeforces Round 100 (Rated for Div. 2) B. Find The Array(思维)

时间:2022-10-07 20:23:11浏览次数:82  
标签:Educational Rated 下标 奇数 LL Codeforces 偶数 ji ou

https://codeforces.com/contest/1463/problem/B

题目大意:

给定n个数字的数组a,让我们凑出数组b;

满足b[i]要么可以整除b[i+1],要么可以被b[i+1]整除,同时2*求和abs(a[i]-b[i])[1,n]<=sum(a[1]+,,,+a[n])。

表示这样的b数组是一定存在的,让我们构造出这样的b数组出来。
input 
4
5
1 2 3 4 5
2
4 6
2
1 1000000000
6
3 4 8 1 2 3
output 
3 3 3 3 3
3 6
1 1000000000
4 4 8 1 3 3

难怪评分1400,半天不知道怎么构造
看了下题解,果然奇妙

  • 先计数,求奇数总和以及偶数总和
  • 奇数总和 > 偶数总和时,保留下标为奇数时候的数据,偶数下标数据通通改为1;
    相反,偶数下标数据保留,奇数下标数据改为1。
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=200200,M=2002;
LL a[N];
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    cin>>T;
    while(T--)
    {
        LL n;
        cin>>n;
        LL ji=0,ou=0;
        for(LL i=1;i<=n;i++)
        {
            cin>>a[i];
            if(i%2==1) ji+=a[i];
            else ou+=a[i];
        }
        if(ji>ou)
        {
            for(LL i=1;i<=n;i++)
            {
                if(i%2==1) cout<<a[i]<<" ";
                else cout<<"1"<<" ";
            }
        }
        else
        {
            for(LL i=1;i<=n;i++)
            {
                if(i%2==0) cout<<a[i]<<" ";
                else cout<<"1"<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

标签:Educational,Rated,下标,奇数,LL,Codeforces,偶数,ji,ou
From: https://www.cnblogs.com/Vivian-0918/p/16760616.html

相关文章

  • 「题解」Codeforces GYM 102268 J Jealous Split(300iq Contest 1 J)
    怎么想到的结论?结论是,如果把看成最小化\(\sum{s_i}^2\),那么一定满足条件。证明是考虑如果相邻两段\(s>t\),如果不满足条件即\(s-t>\max\),说明将\(s\)和\(t\)交界处......
  • 「题解」Codeforces 1313E Concatenation with intersection
    考虑这个\(l_1\)一定是\(s\)的开头,\(r_2\)一定是\(t\)的结尾,那么就考虑假如固定了\(l_1,r_2\)之后怎么计算对答案的贡献。一个河狸的想法是,固定\(l_1\)之后可......
  • CodeForces 1654E Arithmetic Operations
    洛谷传送门CF传送门不错的根号分治练习题。考虑枚举公差\(k\),题目就转化成了求\(a_i-i\timesk\)相等的数的最大值。考虑根号分治。当\(|k|\le\sqrt{10^5}......
  • Educational Round 30 题解
    ContestLink虽然是unrated,不过秉持着EducationalRound的传统,题还是挺不错的。A.ChoresProblemLink评价:善用STL。由于\(a\)已经排好序了,且\(x\le\min_{i=1......
  • Codeforces Round #801 (Div. 2) C(规律证明)
    CodeforcesRound#801(Div.2)C(规律证明)题目链接:传送门QAQ题意:给定一个\(n*m\)的矩阵,矩阵的每个单元的值为1或-1,问从\((1,1)\)开始出发,每次只可以向下和向右走,......
  • 【CF1580F】Problems for Codeforces
    【CF1580F】ProblemsforCodeforcesDescription给出\(n,m\)求满足条件的序列\(a\)个数:\(a_i+a_{i+1}<m,a_1+a_n<m\)模\(998244353\)Input一行两个数\(n,m\)Output......
  • Codeforces Round #824 (Div. 2)(持续更新)
    Preface现在先把之前打掉的题目先写了,不然时间一长又忘记了这场不知道为什么打的极其抽象,A都能写WA而且C一个细节写挂调了好久,最后30min才做出D,罚时起飞连着两场掉分了,......
  • Educational Codeforces Round 32 G Xor tree Boruvka算法
    求一个n个点的完全图每条边的权值为两点之间的异或值求最小生成树。在完全图上做最小生成树一般都是Boruvka算法即每次每个点都找一个离自己最近的点合并这样最多合并lo......
  • Codeforces Beta Round #87 (Div. 1 Only) A. Party(树的深度+dfs)
    https://codeforces.com/contest/115/problem/A题目大意:给定n个节点,每个节点都有一个不同于自己的数值,表示自己的老板,-1表示自己就是老板。现在玩游戏需要组队,一组队......
  • Codeforces Round #824 (Div. 2) C - Phase Shift
    (有点难以描述的)题意:给出一串字母,为每一个字母找一个映射,要求:1)所有的映射连起来形成一个且只有一个环;2)这个环内包含26个字母;3)映射后形成的新字符串字典序最小。解:随便找两......