SCAU RP Test —— 因式分解与组合
生活随笔
收集整理的這篇文章主要介紹了
SCAU RP Test —— 因式分解与组合
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
D??RP Test
Time Limit:1000MS? Memory Limit:65535K
題型: 編程題???語言: 無限制
?
描述
LRC是SCAU_ACM校隊(duì)的主席,職業(yè)生涯為校隊(duì)作過很多貢獻(xiàn)。除此之外,LRC也被各路ACMER奉為RP之神,源于以下兩件事:1.曾用隨機(jī)算法以1/(50^100)概率AC了一道dp題;2.省賽抽獎(jiǎng)現(xiàn)場以1/600概率抽中特等獎(jiǎng)獲得一個(gè)4T的SSD。但大家不知道,LRC有一個(gè)測試當(dāng)天RP值的奇葩方法。首先,用隨機(jī)算法random出一個(gè)長度為n的數(shù)組a1,a2...,an;然后,再用隨機(jī)算法random出一個(gè)長度為m的數(shù)組b1,b2...,bm;緊接著,依然是用隨機(jī)算法random出一個(gè)正整數(shù)c; 接下來,LRC可以得到一個(gè)n*m的矩陣F,使得矩陣中的每個(gè)元素Fij=ai*bj;最后,計(jì)算一下F有多少個(gè)子矩陣,它的各個(gè)元素之和被c整除,那么這個(gè)值,就是他的RP值。現(xiàn)在LRC將所有的數(shù)random出來了,他想讓未來校隊(duì)的大神,也就是你,計(jì)算一下他的RP值。
?
?
輸入格式
第一行一個(gè)正整數(shù)T(T<=100),代表測試數(shù)據(jù)的組數(shù)。 每組數(shù)據(jù)有3行。 第一行三個(gè)正整數(shù)n,m,c 第二行有n個(gè)正整數(shù)a1,a2...,an 第三行有m個(gè)正整數(shù)b1,b2...,bm 數(shù)據(jù)范圍: 1<=n,m<=100 1<=ai,bi<=100 1<=c<=1000
?
輸出格式
每組數(shù)據(jù)輸出一行。 輸出一個(gè)數(shù),代表LRC的RP值。
?
輸入樣例
2 2 3 5 2 3 1 3 4 2 3 11 2 3 1 3 4
?
輸出樣例
6 0
?
Hint
樣例中,有兩個(gè)數(shù)組生成的2x3矩陣F如下: 2 6 8 3 9 12元素和能被5整除的的子矩陣有6個(gè),分別是
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>using namespace std;int a[110],b[110], v[100000];//數(shù)組v記錄因子個(gè)數(shù)int gcd(int a,int b)
{return b==0?a:gcd(b,a%b);
}int main()
{int n,m,c,s,T,r,k,ans;scanf("%d",&T);while(T--){ans = 0;memset(v,0,sizeof(v));scanf("%d%d%d",&n,&m,&c);for(int i = 0; i<n; i++) scanf("%d",&a[i]);for(int i = 0; i<m; i++) scanf("%d",&b[i]);for(int i = 0; i<n; i++ ){s = 0;for(int j = i; j<n; j++){s += a[j];k = sqrt(s);for(int t = 1; t<=k; t++)//因子從1開始{if(s%t==0)//記錄每個(gè)因子{v[t]++;/*如果相等,則只需記錄一個(gè)。每個(gè)不同的因子都代表著這個(gè)區(qū)間,在接下來與b數(shù)組的區(qū)間結(jié)合(合法的話),如果重復(fù)記錄同一個(gè)因子,會(huì)誤認(rèn)為有兩個(gè)區(qū)間和的因子都含有t*/if(t!=s/t)v[s/t]++;}}}}for(int i = 0; i<m; i++ ){s = 0;for(int j = i; j<m; j++){s += b[j];//gcd(s,c)即s要成為c的倍數(shù)所缺少的因子ans += v[c/gcd(s,c)];}}printf("%d\n",ans);}
}
轉(zhuǎn)載于:https://www.cnblogs.com/DOLFAMINGO/p/7538765.html
總結(jié)
以上是生活随笔為你收集整理的SCAU RP Test —— 因式分解与组合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。