1. 程式人生 > >【2008-2009 ICPC NEERC D】Deposits(暴力)

【2008-2009 ICPC NEERC D】Deposits(暴力)

題目連結

題意:

給你n個數a[i],m個數b[i],求出有幾對數滿足a[i]能整除b[i]。 

題解:

直接暴力,先將第一組數存入a陣列,第二組數存入b陣列,然後在第二組數中遍歷它整數倍的數(在10^6之內),其次相加求和即可。

#include<bits/stdc++.h>
#define MAX 1000000
using namespace std;
typedef long long ll;
ll a[MAX+5],b[MAX+5];
int main()
{
    freopen("deposits.in","r",stdin);
    freopen(
"deposits.out","w",stdout); int n,m,i,j,x; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&x); //除數 a[x]++; } scanf("%d",&m); for(i=1;i<=m;i++) { scanf("%d",&x); //被除數 b[x]++; } ll ans=0;
for(i=1;i<=MAX;i++) { if(!b[i])continue; for(j=1;j*i<=MAX;j++) ans+=b[i]*a[i*j]; } printf("%lld\n",ans); return 0; }