2018-05-22から1日間の記事一覧

E. Pencils and Boxes | Educational Codeforces Round 44

int N, K, D; cin >> N >> K >> D; vi A(N); // とりあえずソートしておく rep(a, N)cin >> A[a]; sort(all(A)); vi in(N+1), out(N+1); // 小さい方から0個をすべて使って箱詰めできている in[0] = 1; out[0] = 1; ll cur = 0; rep(a, N) { cur += in[a]; /…

D. Sand Fortress | Educational Codeforces Round 44

構成のベースは以下の2通り。 適切な最大の高さxは二分探索で求める。この通りに構成したときに、余りが出る場合があるが、x以下のすべての高さが存在するので、余りをrとするとceil(r/x)個だけ同じ高さの横に挿入すればいい。 // Hが大きすぎても無意味な…

C. Liebig's Barrels | Educational Codeforces Round 44

int N, K, L; cin >> N >> K >> L; int M = N*K; vi A(M); rep(a, M)cin >> A[a]; sort(A.rbegin(), A.rend()); // 必ずできる一番小さい樽の大きさで制限 ll lim = (ll)A.back() + L; ll re = 0; // 使ってない板の数、作った樽の数 int cnt = 0, taru = 0;…

夏合宿の朝は早い | JAG Domestic 2016

起こす人uから起こされる人vへ辺(u, v)を張るようなグラフを考える。このグラフは閉路があってややこしい。とりあえず強連結成分分解してみよう。各強連結成分において誰か一人でも起きれば、その強連結成分内において全員が必ず起きる。よって強連結成分S内…