zoukankan      html  css  js  c++  java
  • 题1简化版

    B  A×B (简化版)

    Time Limit:233MS  Memory Limit:65535K

    题型: 编程题   语言: 无限制

     

    描述

    给出两个数列a、b,构造一个矩阵mat,使得mat[i][j] = a[i] * b[j]。
    求mat中不同的值有多少个。

     

    输入格式

    输入T,表示以下有T组测试数据:
    
    对于每一组测试数据,输入一行9个整数 n, m, a0, b0, p, q, x, y, mx。
    其中,a[0] = a0,a[i] = a[i - 1] * p + x (1 <= i < n);
          b[0] = b0, b[j] = b[j - 1] * q + y (1 <= j < m)。
    由于生成出来的数字比较大,所以对于a和b每一个元素对其模mx。
    
    数据范围:
    T <= 5
    1 <= n, m <= 2000
    1 <= a0, b0, p, q, x, y, mx <= 1000

     

    输出格式

    每组数据一行,输出对应的结果。

     

    输入样例

    1
    2 2 1 2 3 4 5 7 10
    

     

    输出样例

    4

     

    Hint

    解释sample:
    a[] = { 1, 8 };
    b[] = { 2, 5 };
    mat[][] = {
        { 2, 16 },
        { 5, 40 }
    };
    #include<stdio.h>
    #include<string.h>
    int a[2000],b[2000],cc[4000000];
    int main()
    {
        int T,t;
        scanf("%d",&T);
        int num[T];
        for(t=0;t<T;t++)
        {
            num[t]=0;
            int i,j;
            int n,m,a0,b0,p,q,x,y,mx;
            scanf("%d%d%d%d%d%d%d%d%d",&n,&m,&a0,&b0,&p,&q,&x,&y,&mx);
            a[0]=a0%mx;
            b[0]=b0%mx;
            for(i=1;i<n;i++)
                a[i]=(a[i-1]*p+x)%mx;
            for(i=1;i<m;i++)
                b[i]=(b[i-1]*q+y)%mx;
                int c=0;
            memset(cc,0,sizeof cc);
            for(i=0;i<n;i++)
            for(j=0;j<m;j++)
            {
                c=a[i]*b[j];
                if(!cc[c])\计算不重叠的个数
                {cc[c]++;
                num[t]++;}
            }
        }
        for(t=0;t<T;t++)
            printf("%d
    ",num[t]);
        return 0;
    }
  • 相关阅读:
    godaddy 问题
    2014.10.5 再次学习LINUX
    自测 基础 js 脚本。
    error: cast from ‘char*’ to ‘int’ loses precision
    python 使用 Pyscript 调试 报错
    VS2012出现加载失败时的解决办法 win7同样适用
    Program received signal SIGILL, Illegal instruction
    visual assist x 注释配置
    python 学习网站
    python 典型文件结构
  • 原文地址:https://www.cnblogs.com/scau-zk/p/4916267.html
Copyright © 2011-2022 走看看