日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

#22. 【UR #1】外星人

發(fā)布時(shí)間:2024/1/17 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 #22. 【UR #1】外星人 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#22. 【UR #1】外星人

2044年,Picks建成了人類第一臺(tái)基于量子理論的銀河系信息傳遞機(jī)。

Picks游遍了宇宙,雇用了?nn?個(gè)外星人來幫他作為信息傳遞機(jī)的中轉(zhuǎn)站。我們將外星人依次編號(hào)為?11?到?nn,其中?ii?號(hào)外星人有?aiai?根手指。

外星人都是很低級(jí)的,于是Picks花費(fèi)了很大的精力,才教會(huì)他們學(xué)會(huì)扳手指數(shù)數(shù)。

Picks現(xiàn)在準(zhǔn)備傳遞?xx?個(gè)脈沖信號(hào)給VFleaKing,于是他把信號(hào)發(fā)給11號(hào)外星人,然后11號(hào)外星人把信號(hào)發(fā)送給22號(hào)外星人,22號(hào)外星人把信號(hào)發(fā)送給33號(hào)外星人,依次類推,最后nn號(hào)外星人把信號(hào)發(fā)給VFleaKing。

但是事情沒有Picks想象的那么順利,由于外星人手指?jìng)€(gè)數(shù)有限,所以如果?ii?號(hào)外星人收到了?tt?個(gè)脈沖信號(hào),他會(huì)錯(cuò)誤的以為發(fā)送過來的是?tmodaitmodai?個(gè)脈沖信號(hào),導(dǎo)致只發(fā)送了?tmodaitmodai?個(gè)脈沖信號(hào)出去。

Picks希望他發(fā)送出去的脈沖信號(hào)數(shù)量?xx?與VFleaKing收到的脈沖信號(hào)數(shù)量?yy?的差的絕對(duì)值盡量小。于是他決定通過重新排列這些外星人的順序來達(dá)到這一目的。請(qǐng)你求出與?xx?之差最小的?yy。除此之外,請(qǐng)求出有多少種排列外星人的方式能達(dá)到最優(yōu)解,你只需要輸出方案數(shù)對(duì)?998244353998244353(7×17×223+17×17×223+1,一個(gè)質(zhì)數(shù))取模后的結(jié)果。

輸入格式

第一行兩個(gè)正整數(shù)n,xn,x。

接下來一行有?nn?個(gè)正整數(shù)?aiai,表示?ii?號(hào)外星人的手指數(shù)。

輸出格式

第一行一個(gè)整數(shù)表示最優(yōu)情況下VFleaKing收到的脈沖數(shù)量。

第二行一個(gè)整數(shù)表示達(dá)到最優(yōu)情況的方案數(shù)。

樣例一

input

2 15 7 10

output

5 1

explanation

共兩種可行方案:

  • 15mod7=115mod7=1,1mod10=11mod10=1
  • 15mod10=515mod10=5,5mod7=55mod7=5
  • 顯然第二種方案更優(yōu)。

    樣例二

    input

    7 33 2 4 6 8 16 16 32

    output

    1 5040

    explanation

    每個(gè)排列方案都是最優(yōu)解。

    樣例三

    見樣例數(shù)據(jù)下載

    限制與約定

    對(duì)于每個(gè)測(cè)試點(diǎn),答對(duì)第一問可獲得 40% 的分?jǐn)?shù),答對(duì)第二問可獲得 60% 的分?jǐn)?shù)。

    請(qǐng)注意你必須輸出兩個(gè)整數(shù)否則會(huì)判0分。假如你只做了第一問,那么你應(yīng)該輸出你第一問的答案,然后再隨便輸出一個(gè)第二問的答案。

    測(cè)試點(diǎn)編號(hào)nn的規(guī)模xx?和?aiai的規(guī)模
    1n10n≤10x,ai20x,ai≤20
    2n50n≤50x,ai100x,ai≤100
    3
    4n100n≤100x,ai500x,ai≤500
    5
    6
    7n1000n≤1000x,ai5000x,ai≤5000
    8
    9
    10

    時(shí)間限制:1s1s

    空間限制:256MB

    ?

    詳解

    f[i][j]代表 處理a[i] 能否得到 j?

    g[i][j] 記錄方案數(shù)?

    考慮取模運(yùn)算。一個(gè)非常基礎(chǔ)的性質(zhì)是:當(dāng)?xai?時(shí),x?mod?ai<ai。當(dāng)?x?<?ai?時(shí),x?mod?ai=x?

    那么對(duì)于每個(gè)ai,要么就把它放在當(dāng)前位置,現(xiàn)在生效,要么把它放在后面的n?i個(gè)位置,使它永不生效,因?yàn)槿绻阆饶A艘粋€(gè)小于ai的數(shù),再模ai結(jié)果是不會(huì)變的。

    ?

    1 #include <cstdio> 2 #include <cctype> 3 #include <algorithm> 4 5 typedef long long LL; 6 7 const int mod=998244353; 8 const int MAXN=1010; 9 const int MAXM=5010; 10 11 int n,s; 12 13 int a[MAXM]; 14 15 bool f[MAXN][MAXM]; 16 17 LL g[MAXN][MAXM]; 18 19 inline bool cmp(int a,int b) {return a>b;} 20 21 inline void read(int&x) { 22 int f=1;register char c=getchar(); 23 for(x=0;!isdigit(c);c=='-'&&(f=-1),c=getchar()); 24 for(;isdigit(c);x=x*10+c-48,c=getchar()); 25 x=x*f; 26 } 27 28 inline void running() { 29 f[0][s]=1;g[0][s]=1; 30 for(int i=1;i<=n;++i) { 31 for(int j=s;j>=0;--j) { 32 f[i][j%a[i]]|=f[i-1][j]; 33 g[i][j%a[i]]=(g[i][j%a[i]]+g[i-1][j])%mod; 34 } 35 if(i!=n) { 36 for(int j=s;j>=0;--j) { 37 f[i][j]|=f[i-1][j]; 38 g[i][j]=(g[i][j]+g[i-1][j]*(n-i))%mod; 39 } 40 } 41 } 42 for(int i=s;i>=0;--i) 43 if(f[n][i]) { 44 printf("%d\n",i); 45 printf("%lld\n",g[n][i]); 46 break; 47 } 48 return; 49 } 50 51 int hh() { 52 read(n);read(s); 53 for(int i=1;i<=n;++i) read(a[i]); 54 std::sort(a+1,a+1+n,cmp); 55 running(); 56 return 0; 57 } 58 59 int sb=hh(); 60 int main(int argc,char**argv) {;} 代碼

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/whistle13326/p/7507351.html

    總結(jié)

    以上是生活随笔為你收集整理的#22. 【UR #1】外星人的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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