• C. Number of Ways 思维


    题目大意就是问能分出几个使三个区间的和相等的分发

     1 #include <algorithm>
     2 #include <stack>
     3 #include <istream>
     4 #include <stdio.h>
     5 #include <map>
     6 #include <math.h>
     7 #include <vector>
     8 #include <iostream>
     9 #include <queue>
    10 #include <string.h>
    11 #include <set>
    12 #include <cstdio>
    13 #define FR(i,n) for(int i=0;i<n;i++)
    14 #define MAX 2005
    15 #define mkp pair <int,int>
    16 using namespace std;
    17 #include <bits/stdc++.h>
    18 const int maxn = 5e5 + 40;
    19 typedef long long ll;
    20 const int  inf = 0x3fffff;
    21 void read(ll &x) {
    22     char ch; bool flag = 0;
    23     for (ch = getchar(); !isdigit(ch) && ((flag |= (ch == '-')) || 1); ch = getchar());
    24     for (x = 0; isdigit(ch); x = (x << 1) + (x << 3) + ch - 48, ch = getchar());
    25     x *= 1 - 2 * flag;
    26 }
    27 
    28 
    29 ll n;
    30 ll sum[maxn],arr[maxn];
    31 ll val[maxn];
    32 ll s2[maxn];
    33 ll l[maxn];
    34 int main() {
    35     read(n);
    36     for(int i=0;i<n;i++)read(val[i]);
    37     sum[0]=val[0];
    38     for(int i=1;i<n;i++)sum[i]+=sum[i-1]+val[i];
    39     //int i = 0,j = n-1;
    40     for(int i=n-1;i>=0;i--)s2[i]+=s2[i+1]+val[i];
    41     if(sum[n-1]%3)return 0*printf("%d
    ",0);
    42     ll temp = 0;
    43     for(int i=0;i<n;i++){ l[i]=temp;
    44         if(sum[i]==sum[n-1]/3)temp++;
    45 
    46     }
    47     ll ans = 0;
    48     for(int i=n-1;i>=1;i--){
    49         if(s2[i]==sum[n-1]/3){
    50             ans+=l[i-1];
    51         }
    52        // cout<<ans<<endl;
    53     }
    54     cout<<ans<<endl;
    55     return 0;
    56 }
    View Code
    我身后空无一人,我怎敢倒下
  • 相关阅读:
    动态规划01背包
    动态规划矩阵连乘
    分治法归并排序
    动态规划最长公共子序列
    贪心算法活动安排
    分治法二分查找
    vue 可拖拽可缩放 vuedraggableresizable 组件常用总结
    rifilter in python discussed in 3delight
    3delight linear work flow
    pixar stereo rendering doc
  • 原文地址:https://www.cnblogs.com/DreamKill/p/9434182.html
Copyright © 2020-2023  润新知