ac**:
#include
using
namespace std;
intmain()
if(c==
'a')
}return0;
}
總結:
這個題是第三場的第三道簽到題,需要o(1)實現題目中對字串的移動。我們隊開始是直接暴力模擬,需要o(n)來實現每次移動,超時了。賽後補題,學到了用乙個指標來分割,非常地巧妙,但是其實還是超時,需要採用上面的方式改變輸入的方式,最終才能通過。
ac**:
#include
using
namespace std;
intmain()
if(flag&&s[i]
=='1'
) cnt++;}
if(cnt>=
2) ans+
=cnt/2;
cout<}return0;
}
總結:
這個是第三場的第二道簽到題,題意有一點繞,當時放在了b題之後做的,心態有一點崩,說實話應該是可以寫出來的。主要是對於1和0的處理,先預設按順序1用來做魚餌包,0用來釣魚,如果1有多出來,則做一包魚餌,抓一次魚,記最終的答案加上多餘的1的數目/2。
ac**:
#include
#include
using
namespace std;
int a[
100005];
intmain()
sort
(a,a+n)
;int p=0;
while
(!a[p]
) p++;if
(!a[0]
)swap
(a[0
],a[p]);
if(!a[1])
swap
(a[1
],a[p+1]
);//非前導零
for(
int i=
1;i) a[i]
=a[0
]*a[i]
;for
(int i=n-
1;i>
1;i--
)//模擬乘法進製,a[1]儲存的可能是兩位數,不影響
for(
int i=
1;i) cout<}return0;
}
總結:
這個題是第九場的i題,思路蠻好想的,看完樣例就可以知道是拆成乙個最小的非零的一位數,和乙個可構造的最小的多位數相乘,在實現**的時候,需要用到模擬乘法進製,還不太熟練。
牛客暑期多校訓練營B Boundary
給定n個點,然後確定乙個過原點的圓,要使這n個點盡可能多的存在與圓上,最後輸出最多的存在於圓上的點的個數 三點確定乙個圓,我們已知這個圓必定經過原點,所以再依次利用三點求圓心的公式列舉每兩個點與原點 三點不共線 確定的圓心,最後選擇確定次數最多的圓心構成的圓 include include incl...
牛客暑期多校訓練營2020第4場
題意 給乙個以1為根的樹,定義乙個點的 ancient distance 祖先距離 為該點到最近的被標記的祖先的距離。對於i 1 i n 1 le i le n 1 i n 求標記i個點時,整棵樹上的 ancient distance 的最大值的最小值 設為xi 輸出xi的和。思路 假設已知整棵樹上...
2020牛客暑期多校訓練營(第五場)
總結 f題添老師一發ac,i 題起初不會做在想怎麼化簡那個式子,後來就直接畫出了最優的圖,然後猜了一發2 3過了。ef 一級目錄 一級目錄 一級目錄 乙個包括n個音符的陣列,音符按下標1 n排列,表示音符由低到高。有兩個操作 drop 2 將第二高的音符移到最低的位置 即將倒數第二個移到第乙個。in...