zoukankan      html  css  js  c++  java
  • 51nod1305(简单逻辑)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1305

    题意:中文题诶~

    思路:1e5的数据直接暴力肯定是不行的,我们不难想到:

    (a+b)/(a*b)的结果只有4种情况:

    1.a=b=1, 结果为2;

    2.   a=1, b!=1, 结果为1;

    3.  a==b==2, 结果为1;

    4. 其他情况, 结果为0;

    代码:

     1 #include <bits/stdc++.h>
     2 #define MAXN 100010
     3 using namespace std;
     4 
     5 int a[MAXN], gg1[MAXN], gg2[MAXN];
     6 
     7 int main(void){
     8     int n, ans=0;
     9     cin >> n;
    10     for(int i=0; i<n; i++){
    11         cin >> a[i];
    12     }
    13     for(int i=n-1; i>=0; i--){
    14         gg1[i]=gg1[i+1]+(a[i]==1);  //gg1[i]存储i后面1的数目(包括第i个数)
    15         gg2[i]=gg2[i+1]+(a[i]==2);  //gg1[i]存储i后面2的数目(包括第i个数)
    16     }
    17     for(int i=0; i<n; i++){
    18         if(a[i]==1){
    19             ans+=gg1[i+1]+(n-i-1);
    20         }else if(a[i]==2){
    21             ans+=gg1[i+1]+gg2[i+1];
    22         }else{
    23             ans+=gg1[i+1];
    24         }
    25     }
    26     cout << ans << endl;
    27 }
  • 相关阅读:
    JAVA读取properties
    nginx默认语法
    csp-s模拟45
    csp-s模拟44
    noip模拟测试42
    noip模拟测试40
    noip模拟测试21
    noip模拟测试20
    noip模拟测试19
    noip模拟测试18
  • 原文地址:https://www.cnblogs.com/geloutingyu/p/6274633.html
Copyright © 2011-2022 走看看