題目大意:有n個階段,每個階段可能是4種狀態的一種。
1:沒魚沒飼料;
2:沒魚有飼料;
3:有魚沒飼料;
4:有魚有飼料。
對於每個階段:
我們可以用飼料做魚餌,
或者用魚餌釣魚,
或者在該狀態有魚的時候直接把魚抓起來。
解題思路:在3.4狀態是,我們必然是直接把有的魚抓起來就可以了。
在第1種狀態,如果我們手裡有魚餌就可以釣一條魚。
在第3種狀態,如果後面的1的數量比當前存的魚餌量多或等於,就繼續存魚餌,反之釣魚。
*/
#includeusing namespace std;int main()
int food=0,fish=0;
for(int i=0;i=1)food--,fish++;
}else if(s[i]=='1')
}else fish++;
}printf("%d\n",fish);
}return 0;
}
/*題目大意:給你乙個字串,n次操作。
m表示把前面k個字元挪後面,或把後面-k(k為負數)個挪前面。
a表示詢問,第k個字母是什麼。
解題思路:首位相連,看成乙個環以後,所謂的挪動其實就是改動把那個字母看成頭,然後這題就沒了。
*/
#includeusing namespace std;int main()
return 0;
}
/*題目大意:給出左手和右手的二維座標表示法。可能會旋轉平移,逆時針或順時針給出,不會改變大小,問是左手還是右手。
解題思路:先確定是逆時針還是順時針。然後找出長度為10的那條邊,看它接下來的邊的長度就可以確定是左手還是右手了。
在判斷是否相等的過程中需要注意精度問題,有時候結果可能是個小數,需要四捨五入到int型進行判斷
*/
#includeusing namespace std;struct point
point (double x,double y):x(x),y(y){}
point operator + (point b)
point operator - (point b)
};typedef point vector;
double cross(vector a,vector b)
point p[24];
double parea(int n)
p[21]=p[1];
if(parea(20)<0)
if(dis(p[(i+1)%20],p[(i+2)%20])==6)cout<<"right"
else
if(dis(p[(i+1)%20],p[(i+2)%20])==6)cout<<"left"
}return 0;
}
牛客暑期多校訓練營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...
2020牛客暑假多校訓練第十場題解
題目描述 給出乙個素數p,要求你找出乙個1 p 1的排列滿足對於任意乙個i x i 1 2x i mo dp x 或者xi 1 3 xi m odp x equiv2x i pmod p x 或者 x 3x modp xi 1 2xi mod p x或 者xi 1 3 xi modp 題解 其實就是...