(JZOJ)2023年3月13日比賽總結

2021-10-21 23:50:09 字數 4065 閱讀 3555

今天的考試針不戳,我居然超過了劉奆!(劉奆:明明是你那題的資料點少好嗎)不過,沒有乙個人超了200分,有那麼一 丶丶慘,不過木有關係,讓我們開始今天的總結吧!

​ 環數是那些不包括0這個數字的沒有重複數字的整數 (比如說, 81362) 並且同時具有乙個有趣的性質, 就像這個例子:

給你乙個數字 m (在1到9位之間), 找出第乙個比 m大的迴圈數, 並且一定能用乙個無符號長整形數裝下。

input format

僅僅一行, 包括m

sample input (file runround.in)

output format

僅僅一行,包括第乙個比m大的迴圈數。

sample output (file runround.out)

那麼這道題,其實直接高精度加暴力就能過,為什麼要那麼麻煩呢?

直接上**!

#include

using

namespace std;

int n;

int a[11]

,b[11

],v[11]

;int

zhuanhuan

(int x)

for(

int i=

1; i<=sum;

++i)

a[i]

=b[sum-i+1]

;return sum;

}bool

flag

(int x)

if(s!=1)

return

false

;else

return

true;}

intmain()

}}

就這樣,不簡簡單單就過了嗎?

​ 對於從1到n的連續整集合合,能劃分成兩個子集合,且保證每個集合的數字和是相等的。

舉個例子,如果n=3,對於能劃分成兩個子集合,他們每個的所有數字和是相等的:

這是唯一一種分發(交換集合位置被認為是同一種劃分方案,因此不會增加劃分方案總數)

如果n=7,有四種方法能劃分集合,每一種分發的子集合各數字和是相等的:

給出n,你的程式應該輸出劃分方案總數,如果不存在這樣的劃分方案,則輸出0。程式不能預存結果直接輸出。

program name: subset

input format

輸入檔案只有一行,且只有乙個整數n

sample input (file subset.in)

7
output format
輸出劃分方案總數,如果不存在則輸出0。

sample output (file subset.out)

這道題,怎麼說呢。。。

就是兩個dp的事情。。。

揹包,揹包大家都會吧。。。。

#include

using

namespace std;

long

long b[61]

[6001

],a[

101]

;int

main()

if(maxx%2!=

0)b[1][

1]=1

;b[0][

0]=1

;for

(long

long i=

1; i<=n; i++)}

cout<[maxx/2]

/2;return0;

}

簡單,過!

​ 在ioi98的節日宴會上,我們有n(10<=n<=100)盞彩色燈,他們分別從1到n被標上號碼。

這些燈都連線到四個按鈕:

乙個計數器c記錄按鈕被按下的次數。

當宴會開始,所有的燈都亮著,此時計數器c為0。

你將得到計數器c(0<=c<=10000)上的數值和經過若干操作後所有燈的狀態。寫乙個程式去找出所有燈最後可能的與所給出資訊相符的狀態,並且沒有重複。

program name: lamps

input format

不會有燈會在輸入**現兩次。

第一行:

n。第二行:

c最後顯示的數值。

第三行:

最後亮著的燈,用乙個空格分開,以-1為結束。

第四行:

最後關著的燈,用乙個空格分開,以-1為結束。

sample input (file lamps.in)

-17 -1

在這個樣例中,有10盞燈,只有1個按鈕被按下。最後7號燈是關著的。

output format

每一行是所有燈可能的最後狀態(沒有重複)。每一行有n個字元,第1個字元表示1號燈,最後乙個字元表示n號燈。0表示關閉,1表示亮著。這些行必須從小到大排列(看作是二進位制數)。

如果沒有可能的狀態,則輸出一行』impossible』。

sample output (file lamps.out)

在這個樣例中,有三種可能的狀態:

這道題,偶不會。。。

各位大大教一下唄!

難。。。過!!!

​ 在生物學中,一些生物的結構是用包含其要素的大寫字母序列來表示的。生物學家對於把長的序列分解成較短的(稱之為元素的)序列很感興趣。

如果乙個集合 p 中的元素可以通過串聯(允許重複;串聯,相當於 pascal 中的 「+」 運算子)組成乙個序列 s ,那麼我們認為序列 s 可以分解為 p 中的元素。並不是所有的元素都必須出現。舉個例子,序列ababacabaab可以分解為下面集合中的元素:

序列 s 的前面 k 個字元稱作 s 中長度為 k 的字首。設計乙個程式,輸入乙個元素集合以及乙個大寫字母序列,計算這個序列最長的字首的長度。

program name: prefix

input format

輸入資料的開頭包括 1…200 個元素(長度為 1…10 )組成的集合,用連續的以空格分開的字串表示。字母全部是大寫,資料可能不止一行。元素集合結束的標誌是乙個只包含乙個 「.」 的行。集合中的元素沒有重複。接著是大寫字母序列 s ,長度為 1…200,000 ,用一行或者多行的字串來表示,每行不超過 76 個字元。換行符並不是序列 s 的一部分。

sample input (file prefix.in)

a ab ba ca bbc

ababacabaabc

output format

只有一行,輸出乙個整數,表示 s 能夠分解成 p 中元素的最長字首的長度。

sample output (file prefix.out)

11
這道題,是乙個較為暴力的dp,直接最長不下降子串行反過來加揹包就行了!!

#include

using

namespace std;

int len[

201]

;char h[

201][11

];int sum=0;

int f[

200001];

char y[

110]

;char s[

200001];

intmain()

}while

(scanf

("%s"

,y)==1)

int lens=

strlen

(s);

for(

int i=lens-

1; i>=

0; i--)}

if(k>=i+len[j])}

} cout<<}}

今天的考試挺不錯,下次加油!!!!

2023年3月5日開學有感

今日是回到學校第一天,獨自坐在些許涼氣的實驗室裡,不禁思緒萬千.小時候真傻,居然盼望著長大!我們在漸漸長大,父母在慢慢變老,對於我而言,社會無論多難 多複雜我並不十分在意,我可以接受自己苦一些,但是,我一想到父母臉上的皺紋 白頭髮變得越來越多起來,那種複雜的感受邊湧上心頭。如果早點工作賺錢 早點給父...

2023年3月8日模板等

模板相當於把函式的變數型別在編譯期間引數化,在編譯階段就已經決定mytype是什麼型別了 template class mytype mytype可以自己命名,經常命名為t mytype myabs mytype x else 例子 include using namespace std templ...

2023年3月20日學習總結

本週講解內容 本週老師還是繼續上一周的話題接著講貪心演算法,主要內容也沒什麼要闡述的,無非就是將乙個問題精簡為乙個最小問題,再找到這個最小問題的最優解,然後以此來找到整個問題的最優解。講了幾個常見情況,例如區間排程 活動安排 重疊區間 工廠利潤 質量合併 取規則下的最小數字等。我學到的 1 如果在排...