51nod1305】的更多相关文章

题目链接:51nod 1305 Pairwise Sum and Divide 看完题我想都没想就直接暴力做了,AC后突然就反应过来了... Floor( (a+b)/(a*b) )=Floor( (1/b)+(1/a) ) 当a=1时:若b=1,则该式等于2,否则该式等于1 当a=b=2时:该式等于1 其余情况都等于0,所以只需要统计1和2的个数就行了. #include<cstdio> #include<algorithm> using namespace std; typed…
可以暴力,但这里学习了一个新思路,就是把原式进行分解会得到[1/a[i]+1/a[j]],因为向下取整,我们可以发现,1作用于1结果为2,1作用于除了1之外的数结果为1,2作用于2结果为1,所以我们只需要进行对1,2,的查找就可以了,我们可以把结果进行化简得到一个最简式sum=a1*(a1+a2+other-1)+a2*(a2-1)/2 #include<iostream> using namespace std; int main() { int n; while(cin>>n)…
题目链接: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: 代码: #include <bits/stdc++.h> #define MAXN 1000…