ICPC/CCPC好題精選


Problem J. Xingqiu’s Joke

你有一個兩個正整數構成的二元組\((a,b),a,b\in[1,10^9]\),你可以進行如下操作:

  • \((a,b)->(a-1,b-1)\)
  • \((a,b)->(a+1,b+1)\)
  • \(g\)\(\gcd (a,b)\)的某個質因子\((a,b)->({a\over g},{b\over g})\)

最少需要多少操作,可以使得\(a=1\)或者\(b=1\),多組詢問\(T\le 300\)

\(f(a,x)\)表示\((a,a+x)\)的答案,從\(f(\lfloor \frac a g \rfloor,\frac x g)\),\(f(\lceil \frac a g \rceil,\frac x g)\)轉移過來,第二維狀態很少,第一維狀態在於上下取整的選擇。而不管怎么選擇,除出來的數總在全向下除和全向上除之間。因此狀態數很少。

Problem I. Cloud Retainer’s Game

現在有一個高度為\(H\),長度無限的空間。你有一個小球,初始位置在\((0,0)\),初始速度為\((1,1)\)。然而在\(y=0\)\(y=H\)\((x_1,y_1)...(x_n,y_n),n\le 10^5\)有擋板,小球遇到擋板會\((v'_x,v'_y)=(v_x,-v_y)\)。此外,在\((x'_1,y'_1)...(x'_m,y'_m)\)有金幣。小球碰到金幣就得到這個金幣。

你現在可以去除\((x_1,y_1)...(x_n,y_n)\)中任意多個, 問你最多可以得到多少金幣?

Problem K. Circle of Life

有一個長度為\(n \le 10^7\)的01串,服從“生命游戲”規則,即:

  • 某個0,如果相鄰的位置恰好有一個1下一輪變為1

  • 其他情況,無論\(1\)還是\(0\),下一輪都是\(0\)

給定\(n\),請你構造一個串,使得這個串無窮輪也不是全\(0\)

Problem H. Crystalfly

給定一棵\(n\le 10^6\)個節點的樹,樹的節點\(i\)上有螢火蟲\(a_i\)只,你到達這個節點就可以獲得其所有螢火蟲。現在你在根節點,你可以沿着樹邊移動,每秒鍾移動一條邊。然而螢火蟲十分滴珍貴,你到達任何一個節點,他所有相鄰的節點\(u\)將被擾動,\(u\)節點的螢火蟲(如果還有)將在\(t_u\le 3\)秒后消失。請問最多可以得到多少螢火蟲?

J. Two Binary Strings Problem

給定\(n\le50000\)\(a_i\)\(b_i\),定義:

\[f(l,r)=\begin{cases} 1,& \text{if}\;\sum\limits_{i=l}^r a_i > \frac{r-l+1}{2} \\ 0,&\text{otherwise} \end{cases} \]

定義一個\(k\)是“十分珍貴的”,當且僅當對於所有\(i\)\(f(\max\{1,i-k+1\},i)=b_i\)

多組詢問,\(T\le 50000,\sum n \le 50000\)

A. So Many Lucky Strings

給定一串字符串序列\(\{s_1,s_2\dots s_n\},n\le 100,\sum |s_i|\le 10^5\),一個合法的子序列定義為“字符串依次相接后是一個回文串”,請問有多少種不同的子序列?

C. Colorful Tree

給定一棵\(n\le 10^5\)個節點的樹,每個葉子節點都有一個喜歡的顏色\(c_i\)。你是一個粉刷匠,每次可以粉刷一個節點及其子樹內所有節點。你最少粉刷多少次可以使得所有葉子節點滿意

L. Karshilov's Matching Problem

你有一些十分珍貴的串\(\{t_1,t_2,\dots t_n\},\sum |t_i| \le 10^5,n\le 10^5\),每個串有個珍貴值\(w_i\)。王大隊長給你一個串\(S,|S|\le 3\times 10^5\),和\(m\le 3\times 10^5\)個要求,要求分別為

  • \(1 \quad l \quad c\):將\(S\)的后綴\(l\)個全部改為\(c\)
  • \(2 \quad l\):查詢\(S[1\dots l]\)的價值。其中價值定義為:$\sum w_i \times $$(t_i\(在\)S[1\dots l]\(的出現次數\))$。

請你支持這兩個操作。

C. Assign or Multiply

你有一個數\(x\),一開始\(x=1\)。除此之外你還有\(n\le 10^6\)次操作,分為兩種:

  • \(x:=a_i\)\(x\)賦值為\(a_i\)
  • \(x:=x\times a_i\)\(x\)賦值為\(x \times a_i\)

所有操作對\(p\le 2\times 10^5\)取模,\(a_i\in[0,p)\)

你可以隨意打亂操作順序,請問你可以得到多少種最終的\(x\)

H. What logic for?

你有兩個串\(S\)\(T,|S|=|T| \le 10^5\)。司令說\(S\)\(T\)K-等價的當前僅當\(S\)可以被K-變換\(T\)

其中K-變換的定義為:

  • 選取一個長度為\(2k\)的字符串段\(S[b\dots b+2k-1]\),對於\(i=0\dots k-1\)交換\(S[b+i]\)\(S[b+k+i]\)

\(n\le 10^5\)組詢問\((S,T,k)\),每組詢問\(2k\le |S|\)此外\(\sum |S|+|T| \le 10^5\)

對於每個詢問,回答是否是K-等價

Problem M. Harmony in Harmony

有一塊總面積為\(1\)\(2D\)土地,定義這個土地的面積划分\(S=\{s_1,s_2,\dots s_n\},n\le 500\),其中\(|s_1|=|s_2|=\dots=|s_n|=\frac 1 n\)\(s_i\)表示土地,\(|s_i|\)表示面積。並且\(s_i\cap s_j=\empty\quad (i\not =j)\)。值得高興的是,划分出來的土地並不需要是某種特定形狀甚至可以不連續。因此\(2D\)土地的形狀其實也無所謂。

\[\min_{S,A}\{\max_{\{p\}}\{\min_{i=1}^n\{|S_i\cap A_{p_i}|\}\}\} \]

其中\(S\)\(A\)都是這個土地的面積划分,\(p\)是枚舉排列。(即由你確定\(S\)\(A\)的情況下,不斷枚舉排列\(p\)由上式得到一個值,使這個值最小化。)

E. Paimon Segment Tree

有一個長度為\(n\le 5\times 10^4\)的正整數序列,有\(m\le 5\times 10^4\)次修改操作和\(q\le 5\times 10^4\)次詢問操作

  • 修改操作\(l_i,r_i,x_i\ge 1\),將\(a_l\dots a_r\)加上\(x\)。記錄修改后當前序列為一個版本\(a^{(i)}\)
  • 查詢操作\(l,r,x,y\),查詢$\sum_{j=x}^y \sum_{k=l}^r (a{(j)}_k)2 $

D. Degree of Spanning Tree

給定一個\(n\le 10^5\)個節點\(m\le 2\times 10^5\)條邊的無向聯通圖,請你生成一個沒有度數大於\(n\over 2\)的點的生成樹。

送分題

給定一個有\(n\le 20\)個節點的有向圖,每條邊走路要\(t_i\),騎單車要\(c_i\le t_i\)的時間。每個節點都有可能有一個共享單車,概率為\(p_i\),價錢為\(p_i\)。由於時間就是金錢,你將一個單位的時間視作一個單位的金錢。你現在要從起點走到終點,最優策略下,期望最少花多少錢?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM