日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

SCAU RP Test —— 因式分解与组合

發(fā)布時(shí)間:2023/11/27 生活经验 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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è),分別是
題解: 表格是有兩個(gè)數(shù)組a,b的乘積構(gòu)成的,要求找出能夠被c整除的子矩陣個(gè)數(shù)。直接構(gòu)造表格,然后枚舉。這種做法肯定會(huì)超時(shí)的。 那么要仔細(xì)分析,找突破點(diǎn)了: 能夠被c整除,即表明這個(gè)子矩陣是c的倍數(shù)。 那么思路是:找出數(shù)組a每個(gè)區(qū)間和的因子x,v[x]++。然后枚舉b數(shù)組每個(gè)區(qū)間和,對于每一個(gè)區(qū)間和s,求出s要成為c的倍數(shù)所缺少的因子, 這個(gè)因子的個(gè)數(shù)——v[x],就是就是能與當(dāng)前b數(shù)組區(qū)間構(gòu)成是c倍數(shù)的子矩陣的a數(shù)組的子矩陣個(gè)數(shù)。(相當(dāng)抽象) 代碼如下:
#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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。