【2008-2009 ICPC NEERC D】Deposits(暴力)
阿新 • • 發佈:2018-11-21
題意:
給你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; }