51nod 1305 Pairwise Sum and Divide

来源:互联网 发布:王奕霏编程 编辑:程序博客网 时间:2024/06/01 08:54

51nod 1305 Pairwise Sum and Divide

可以发现俩俩数的 Floor((a+b)/(a*b)) 其实就是1/a+1/b,所以发现如果a>2 && b>2 那么结果就为0,我们再思考下其他情况:a = 1 && b != 1 ; a = 1 && b = 1 ; a = b = 2 。ok

#include <stdio.h>#include <string.h>#include <math.h>#include <stack>#include <algorithm>using namespace std;#define INF 0x3f3f3f3fconst int N = 1e5+10;int a[N];int main(){    int n;    scanf("%d",&n);    int sum1 = 0,sum2 = 0;    for(int i = 0; i < n; i++)    {        scanf("%d",&a[i]);        if(a[i] == 1)            sum1++;        else if(a[i] == 2)            sum2++;    }    int ans = 0;    ans += sum1*(n-sum1);    ans += sum1*(sum1-1);    ans += sum2*(sum2-1)/2;    printf("%d\n",ans);    return 0;}
0 0
原创粉丝点击