ahu - 572

组合数学水题~~~

#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <time.h>

//-----------------------分割线呵呵------------------------------------------------------------------
/*
                          _ooOoo_
                         o8888888o
                         88" . "88
                         (| -_- |)
                         O\  =  /O
                      ____/`---'\____
                    .'  \\|     |//  `.
                   /  \\|||  :  |||//  \
                  /  _||||| -:- |||||-  \
                  |   | \\\  -  /// |   |
                  | \_|  ''\---/''  |   |
                  \  .-\__  `-`  ___/-. /
                ___`. .'  /--.--\  `. . __
             ."" '<  `.___\_<|>_/___.'  >'"".
            | | :  `- \`.;`\ _ /`;.`/ - ` : | |
            \  \ `-.   \_ __\ /__ _/   .-` /  /
       ======`-.____`-.___\_____/___.-`____.-'======
                          `=---='
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                   南无阿弥陀佛保佑无BUG
 */
using namespace std;

int a,b,i,j,k,h;

int le[20000],wi[20000];

int main()
{
    int t;
    scanf("%d",&t);
    int sum;
    while(t--)
    {
        scanf("%d%d%d%d",&a,&b,&h,&k);
      int sum = 1;
      int sum2;
      for(i = 0; i < k; i++)scanf("%d%d",&le[i],&wi[i]);
        sum2 = 0;
      for(i = 0; i < k; i++)
      {
          if(a % le[i] == 0&&b % wi[i] == 0)sum2++;
          if(le[i] != wi[i]&&b % le[i] == 0&&a % wi[i] == 0)sum2++;
      }
        sum *= sum2;
        sum %= 10007;
        sum *= sum2;
        sum %= 10007;
        sum2 = 0;
      for(i = 0; i < k; i++)
      {
          if(a % le[i] == 0&&h % wi[i] == 0)sum2++;
          if(le[i] != wi[i]&&h % le[i] == 0&&a % wi[i] == 0)sum2++;
      }
        sum *= sum2;
        sum %= 10007;
        sum *= sum2;
        sum %= 10007;
        sum2 = 0;
      for(i = 0; i < k; i++)
      {
          if(b % le[i] == 0&&h % wi[i] == 0)sum2++;
          if(le[i] != wi[i]&&h % le[i] == 0&&b % wi[i] == 0)sum2++;
      }
        sum *= sum2;
        sum %= 10007;
        sum *= sum2;
        sum %= 10007;
      printf("%d\n",sum);
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值