2018「氫舞杯」程式設計挑戰賽2

2022-03-12 11:00:16 字數 3964 閱讀 6196

時間限制: 1sec 記憶體限制: 128mb 提交: 10 解決: 7

題目描述

fans是個acm程式設計迷。有時侯,他表現出很強烈的逆反心理,你往東,他往西,你往南,他偏往北。這一次,不知道又是誰惹著他了,好端端的乙個個01串,到了他的手裡,都變成10串了。請你編個程式來模仿他的行為,將01串(長度≤200),全變成10串吧。

輸入

0110100100100 1000000010000000000

輸出

1001011011011 0111111101111111111

思路:每一位取反

#includeint

main()

printf("\n

");}

return0;

}

時間限制: 1sec 記憶體限制: 128mb 提交: 6 解決: 5

題目描述

在mars星球上,每個mars人都隨身佩帶著一串能量項鍊。在項鍊上有 n顆能量珠。能量珠是一顆有頭標記與尾標記的珠子,這些標記對應著某個正整數。並且,對於相鄰的兩顆珠子,前一顆珠子的尾標記一定等於後一顆珠子的頭標 記。因為只有這樣,通過吸盤(吸盤是mars人吸收能量的一種器官)的作用,這兩顆珠子才能聚合成一顆珠子,同時釋放出可以被吸盤吸收的能量。如果前一顆 能量珠的頭標記為m,尾標記為r,後一顆能量珠的頭標記為r,尾標記為n,則聚合後釋放的能量為m*r*n(mars單位),新產生的珠子的頭標記為m, 尾標記為n。 

需要時,mars人就用吸盤夾住相鄰的兩顆珠子,通過聚合得到能量,直到項鍊上只剩下一顆珠子為止。顯然,不同的聚合順序得到的總能量是不同的,請你設計乙個聚合順序,使一串項鍊釋放出的總能量最大。 

例如:設n=4,4顆珠子的頭標記與尾標記依次為(2,3) (3,5) (5,10) (10,2)。我們用記號◎表示兩顆珠子的聚合操作,(j◎k)表示第j,k兩顆珠子聚合後所釋放的能量。則第4、1兩顆珠子聚合後釋放的能量為: 

(4◎1)=10*2*3=60。 

這一串項鍊可以得到最優值的乙個聚合順序所釋放的總能量為 

((4◎1)◎2)◎3)=10*2*3+10*3*5+10*5*10=710。

輸入第一行是乙個正整數n(4≤n≤100),表示項鍊上珠子的個數。第二行 是n個用空格隔開的正整數,所有的數均不超過1000。第i個數為第i顆珠子的頭標記(1≤i≤n),當i〈n時,第i顆珠子的尾標記應該等於第i+1顆 珠子的頭標記。第n顆珠子的尾標記應該等於第1顆珠子的頭標記。 

至於珠子的順序,你可以這樣確定:將項鍊放到桌面上,不要出現交叉,隨意指定第一顆珠子,然後按順時針方向確定其他珠子的順序。

輸出只有一行,是乙個正整數e(e≤2.1*10^9),為乙個最優聚合順序所釋放的總能量

樣例輸入

4

2 3 5 10

1 #include2 #include3

#define m 210

4using

namespace

std;

5int

a[m],f[m][m];

6int

main()715

for(int len=1;len<=n-1;len++)

16for(int i=1;i<=2*n-len;i++)

1722

int ans=0;23

for(int i=1;i<=n;i++)

24 ans=max(ans,f[i][i+n-1

]);25 printf("%d"

,ans);

26return0;

27 }

時間限制: 1sec 記憶體限制: 32mb 提交: 12 解決: 6

題目描述

有乙個長度為整數l(1<=l<=10000)的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個整數座標點有一棵樹,即在0,1,2,...,l共l+1個位置上有l+1棵樹。

現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從100到200之間(包括端點)所有的樹。

可能有m(1<=m<=100)個區間,區間之間可能有重疊。現在要求移走所有區間的樹之後剩下的樹的個數。

輸入兩個整數l(1<=l<=10000)和m(1<=m<=100)。

接下來有m組整數,每組有一對數字。

輸出可能有多組輸入資料,對於每組輸入資料,輸出乙個數,表示移走所有區間的樹之後剩下的樹的個數。

樣例輸入

4 2

1 20 2

11 2

1 54 7

0 0

1 #include2 #include//

memset標頭檔案

3const

int maxn = 100010;4

intmain()

16for (i = j = 0; i <= l; i++)

20 printf("

%d\n

", j);21}

22}23return0;

24 }

時間限制: 0sec 記憶體限制: 128mb 提交: 13 解決: 6

題目描述

給出2個序列a=,b=,從a、b中各選出n個元素進行一一配對(可以不按照原來在序列中的順序),並使得所有配對元素差的絕對值之和最大。

輸入輸入的第1行為1個整數n 第2行包含n個整數,題目中的a序列。  第3行包含n個整數,題目中的b序列。 

輸出乙個數,最大配對

樣例輸入

4

2 5 6 3

1 4 6 7

1 #include2 #include3 #include4

using

namespace

std;

5int a[10000],b[10000];6

intn;

7int

main()

818 printf("

%d\n

",cnt);19}

20return0;

21}2223

時間限制: 1sec 記憶體限制: 128mb 提交: 10 解決: 7

題目描述

有人說倒數第一是毫無壓力的,因為沒人任何壓力而言,但反而倒數第二是提心吊膽的,因為擔心倒數第一有一天考試的時候不來,自己淪為倒數第一(^_^)

這道題就是求n個成績(整數)中倒數第二小的數。

每乙個整數都獨立看成乙個數,比如,有三個數分別是2,2,5,

那麼,第二小的數就是2。

輸入輸入包含多組測試資料。

輸入的第一行是乙個整數c,表示有c組測試資料;

每組測試資料的第一行是乙個整數n,表示本組測試資料有n個整(2<=n<=10),  

接著一行是 n個整數 (每個數均小於100);

輸出請為每組測試資料輸出第二小的整數,每組輸出佔一行。

樣例輸入

2 

2 1 2

3 1 1 3

1 #include 2 #include 3

using

namespace

std;45

int cmp(const

void *x,const

void *y)69

10int

main()

1124

25return0;

26 }

達觀杯文字智慧型處理挑戰賽

筆者嘗試了一下達觀杯的比賽,如下圖所示 import pandas as pd import imp from sklearn.linear model import logisticregression from sklearn.feature extraction.text import cou...

2018華為軟體精英挑戰賽實況記錄

今天想寫一篇部落格記錄一下自己參加華為軟挑的過程,估計會在接下來乙個月陸續更新。題目其實幾天前就看過了,也寫了兩天,不過報名還是今天的事。今年的題目相對還是比較好理解的,而且方向也很明確 用機器學習方法訓練資料,隨後用裝箱問題的思路解決。由於自己缺少機器學習的基礎,因此第一步暫時採用了將訓練資料按周...

達觀杯文字智慧型處理挑戰賽練習

比賽官方對資料的說明是資料報含兩個檔案 train set.csv和test set.csv 一.初識資料 train set.csv 此資料集用於訓練模型,每一行對應一篇文章。文章分別在 字 和 詞 的級別上做了脫敏處理。共有四列 第一列是文章的索引 id 第二列是文章正文在 字 級別上的表示,即...