首页 > 其他分享 >CF1872G Replace With Product

CF1872G Replace With Product

时间:2024-02-17 20:11:06浏览次数:24  
标签:CF1872G Product 14 int Replace 端点 times10 乘积

刚看到这道题的时候就第一感觉应该是乘积比加和更优。

发现如果序列中所有数的乘积比 \(2\times10^{14}\) 更大,在区间左右端点不为 \(1\) 时,全乘起来一定更优。

若左右端点为 \(1\),则找到两端的第一个非 \(1\) 位置即为答案。

否则,发现 \(2^{49}>2\times10^{14}\),则区间内非 \(1\) 的位置一定小于 \(50\) 个,只需枚举区间左右端点取最大值即可,实现时注意不要爆 long long 以及全是 \(1\) 的情况。

本题思想主要在于排除掉乘积比 \(2\times10^{14}\) 更大的情况后暴力的时间复杂度得到了保障。

#define int ll
const int N = 2e5 + 5, MAX = 2e14;
int a[N], n, sum[N], mul[N];
vector <int> v;
void solve()
{
    cin >> n; rer(i, 1, n, a);
    int now = 1;
    R(i, 1, n)
    {
        if (now > MAX / a[i]) 
        {
            int l = 1, r = n;
            while (a[l] == 1) ++l;
            while (a[r] == 1) --r;
            cout << l << ' ' << r << '\n';
            return ;
        }
        now *= a[i];
    }
    mul[0] = 1;
    v.clear();
    R(i, 1, n) 
    {
        mul[i] = mul[i - 1] * a[i], sum[i] = sum[i - 1] + a[i];
        if (a[i] != 1) v.pb(i);
    }
    int l = 1, r = 1, ans = 0;
    for (int i = 0; i < v.size(); ++i)
    {
        for (int j = i; j < v.size(); ++j)
        {
            // cout << v[i] << ' ' << v[j] << endl;
            int tmp = sum[n] - sum[v[j]] + sum[v[i] - 1];
            tmp += mul[v[j]] / mul[v[i] - 1];
            // cout << tmp << endl;
            if (tmp > ans) 
            {
                ans = tmp;
                l = v[i], r = v[j];
            }
        }
    }
    cout << l << ' ' << r << '\n';
}
signed main() 
{
    cout.tie(0);
    int T = 1; 
    read(T);  
    while (T--) solve();
    return 0;
}

标签:CF1872G,Product,14,int,Replace,端点,times10,乘积
From: https://www.cnblogs.com/cyyhcyyh/p/18018305

相关文章

  • itertools.combinations_with_replacement和itertools.combinations的区别
    itertools.combinations和itertools.combinations_with_replacement都是Python标准库中的工具,用于生成组合。它们的主要区别在于对元素的重复使用上。itertools.combinations(iterable,r):生成不含重复元素的组合。iterable是可迭代对象,例如列表或字符串。r是生成的......
  • Oracle Java SE Product Releases
    1.gotothemainpage[https://www.oracle.com/]2.thenclick'Products'tochoosetheJavaicon3.clickthe'OracleJavaSEPlatform'icon[https://www.oracle.com/java/]4.repeattheactionasbelow[https://www.oracle.com/java/t......
  • CF1872G
    题意:一个正整数序列,求l,r使\(\sum_{i=1}^{l-1}a[i]+\Pi_{i=l}^ra[i]+\sum_{i=r+1}^na[i]\)最大,\(a[i]<10^9\)。诈骗题。如果在\([l,r]\)间乘积的\(T\)中去除一个数\(x\),对答案的贡献为\(f(x)=x-T/x\)。由于是单增的,若去除任意一个x都不会......
  • F - Product Equality
    F-ProductEqualityProblemStatementYouaregiven$N$integers$A_1,A_2,\dots,A_N$.Findthenumberoftriplesofintegers$(i,j,k)$thatsatisfythefollowingconditions:$1\lei,j,k\leN$$A_i\timesA_j=A_k$Constraints$1\leN\......
  • [office] excel sumproduct函数如何多条件求和
    1.打开含有模拟数据的EXCEL工作表;2.为工作方便,我们先将数据区定义名称,选中F2:F22,将名称定义为“销售额”;3.将E2:E22定义为“商品数据”;4.将D2:D22定义为“区域数据”;5.将C2:C22定义为“项目数据”;相关推荐:《excel基础教程》6.将B2:B22定义为“姓名数据”;7.将A2:A22定义为“月数据......
  • ABC339 F Product Equality 题解
    QuestionABC339FProductEquality给出一个序列\(A_1,A_2,\cdots,A_N\)计算数对\((i,j,k)\)满足\(A_i\timesA_j=A_k\)的个数\(A_i\le10^{1000}\)Solution思考\(A_i\)比较小的情况如果\(A_i\le1e9\)的,暴力枚举\(i,j\)然后用\(map\)查找\(A_i\timesA_j......
  • 既可以通过从层次结构更高层组件(如 FilterableProductTable)开始“自上而下”构建,也可
    既可以通过从层次结构更高层组件(如FilterableProductTable)开始“自上而下”构建,也可以通过从更低层级组件(如ProductRow)“自下而上”进行构建。在简单的例子中,自上而下构建通常更简单;而在大型项目中,自下而上构建更简单。为什么这么说呢?合理吗?在构建React应用时,"自上而下"(Top-Do......
  • javascript replaceall 正则表达式
    varstr="dogdogdog";varstr2=str.replace(/dog/g,"cat");console.log(str2);参考:https://www.jb51.net/article/23762.htm?tdsourcetag=s_pcqq_aiomsgstr="dogdogdog12";str=str.replace(newRegExp("[d]","g......
  • CF1922F Replace on Segment
    看到有区间操作,结合\(n\le100\)的数据范围,直接考虑区间dp。设\(f_{l,r,x}\)表示将区间\([l,r]\)全部替换成\(x\)的最小步数。首先有\(f_{l,r,x}=\max_{p=l}^{r-1}f_{l,p,x}+f_{p+1,r,x}\),但这无法将该状态下的所有的情况都转移到,所以考虑再设一个\(g_{l,r,x}\)表示......
  • SciTech-Math-AdvancedAlgebra-Dot Product + Linear Equations And Inverse Matrices
    LinearEquationsAndInverseMatrices:https://math.mit.edu/~gs/dela/dela_4-1.pdfDotProduct:Theotherimportantoperationonvectorsisakindofmultiplication.Thisisnotordinarymultiplicationandwedon'twritevw.Theoutputfromvandwwi......