首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Codeforces Round 311 Div2 題解 A B C 三題經驗分享

     編輯:關於C++

比賽心得

堅持不懈終變藍名。關鍵在於:系統掌握算法 > 手速。比賽中不看排名,專注解題。

Problem A: Ilya and Diplomas

分配三類獎狀,每類有最小/最大限制。優先最大化第一類,再第二類,再第三類。直接貪心分情況討論。

int main() {
    int n, min1,max1, min2,max2, min3,max3;
    cin>>n>>min1>>max1>>min2>>max2>>min3>>max3;
    int a1 = min(max1, n - min2 - min3);
    int rem = n - a1;
    int a2 = min(max2, rem - min3);
    int a3 = rem - a2;
    cout<

Problem B: Pasha and Tea

2n 個杯子(n 男 n 女),水壺容量 w。女生每人 x,男生每人 2x。最大化總水量。排序杯子容量,前 n 給女生,後 n 給男生。x = min(cup[n-1], cup[2n-1]/2, w/(3n))。

sort(cup, cup+2*n);
double x = min({(double)cup[n-1], cup[2*n-1]/2.0, w/(3.0*n)});
printf("%.7f\n", 3*n*x);

Problem C: Arthur and Table

桌子腿長度不一,移除腿消耗能量。穩定條件:最長腿數量 > 總腿數/2。枚舉保留的最長腿長度 L,貪心保留高能量腿(即移除低能量腿)。按能量分桶(1..200),前綴和優化。

// 核心邏輯見原文,枚舉長度 L,計算需移除能量最小值
// 時間 O(n + maxE·n) ≈ 2e7,通過

關鍵成長點

  • C 題體現「枚舉答案 + 貪心驗證」思想
  • 分桶前綴和優化多維度約束
  • 比賽心態:冷靜分析 > 急於提交
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved