您的位置:首页 > 大数据 > 人工智能

51nod 1305 Pairwise Sum and Divide

2016-10-20 22:00 309 查看
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 0x3f3f3f3f
const int N = 1e5+10;

int a
;
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: