日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Codeforces Round #596 (Div. 2)(第三场)

發(fā)布時間:2025/3/20 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces Round #596 (Div. 2)(第三场) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Preface

我要開始打Codeforces了,這是我的第三場比賽,本來以為可以快速上分的,誰知在pupil的路上越走越遠。

本場戰(zhàn)績:
Cost Time: 2 hours
Solved: 1.5
Rank: 3023
Rating: -31

Question

A. Forgetting Things
題目大意:輸入小于10的正整數(shù)a和b,輸出任意分別以a和b開頭的兩個連續(xù)整數(shù),如果不存在這樣的數(shù),則輸出"-1"。
解法:可以發(fā)現(xiàn)只有當(dāng)aaa等于bbb,當(dāng)a+1a + 1a+1等于bbb以及當(dāng)aaa等于999bbb等于111這三種情況下可以找到答案。

#include <bits/stdc++.h>using namespace std; typedef long long ll; const int inf = 0x3f3f3f3f; const int maxn = 2e5 +10; int a, b; /** 省略了快讀和快寫*/ int main() {read(a) ,read(b);if (a == b) {cout << a * 10 + 1 << " " << b * 10 + 2 << endl;} else if (a + 1 == b) {cout << a * 10 + 9 << " " << b * 10 << endl;} else if(a == 9 && b == 1) {cout << a * 10 + 9 << " " << b * 100 << endl;} else {writeln(-1);}return 0; }

B. TV Subscriptions
題目大意:有n天,每天電視臺都播放著編號為ai(1≤ai≤k)a_i(1 \leq a_i \leq k)ai?(1ai?k)的節(jié)目,現(xiàn)在要求至少要訂閱多少個節(jié)目才能使連續(xù)ddd天有節(jié)目看?

解法:用一個長度為ddd的區(qū)間去掃描記錄節(jié)目的數(shù)組,同時維護一個記錄區(qū)間節(jié)目數(shù)的變量,掃描完即可得到最小的節(jié)目數(shù)。

#include <bits/stdc++.h>using namespace std; typedef long long ll; const int inf = 0x3f3f3f3f; const int maxn = 2e5 +10; const int N = 1e6 + 10; int T, n, k, d; int a[maxn], vis[N]; /** 省略了快讀和快寫*/ int main() {read(T);while(T--) {read(n); read(k); read(d);for (int i = 1; i <= n; i++) {read(a[i]);vis[a[i]] = 0;}int ans = inf, t = 0;for (int i = 1; i <= d; i++) {if (!vis[a[i]]) t++;vis[a[i]]++;}ans = min(ans, t);for (int i = d + 1; i <= n; i++) {vis[a[i - d]]--;if (!vis[a[i - d]]) t--;if (!vis[a[i]]) t++;vis[a[i]]++;ans = min(ans, t);}writeln(ans);}return 0; }

C. p-binary
題目大意:給定n和p的值,求出最小的k值,可以使得n=∑i=1k(2xi+p)n= \sum^k_{i=1}(2^{x_i}+p)n=i=1k?(2xi?+p)成立。
解法:上式可轉(zhuǎn)化為:
n?k?p=∑i=1k2xin-k*p= \sum^k_{i=1}2^{x_i}n?k?p=i=1k?2xi?
t=n?k?pt=n-k*pt=n?k?p,由二進制轉(zhuǎn)十進制的“位權(quán)法”,我們可以想到考慮 ttt 的二進制表示。

  • 當(dāng) ttt 的二進制數(shù)中1的個數(shù)大于 kkk 時, kkk 不符合條件。
  • 當(dāng) ttt 的二進制數(shù)中1的個數(shù)小于或等于 kkk 時,我們可以通過分解使得 2xi2^{x_i}2xi? 的個數(shù)等于 kkk。(比如25=24+x42^5=2^4+x^425=24+x4)。
  • 于是,我們就可以從小到大遍歷 kkk 的值,最先找到答案便是我們要找的。注意:當(dāng)出現(xiàn) t<kt < kt<k這種情況時,說明不存在滿足條件的 kkk 值。

    關(guān)于 kkk 的上限,由上述可知,當(dāng) cal(n?k?p)≤kcal(n-k*p) \leq kcal(n?k?p)k 就會得到結(jié)果,而 n≤109,?1000≤p≤1000n \leq 10^9,-1000\leq p \leq 1000n109,?1000p1000 ,所以 kkk 的值必定不會超過31。

    /*** Author: Veggie*/ #include <bits/stdc++.h>using namespace std; typedef long long ll; const int inf = 0x3f3f3f3f; const int maxn = 2e5 +10; int a, b; /** 省略了快讀和快寫*/ int cal(int x) {int cnt = 0;while (x) {if (x & 1) cnt ++;x >>= 1;}return cnt; }int main() {read(a), read(b);int t;for (int k = 1; k < 32; k++) {t = a - k * b;if (t < k) break;if (cal(t) <= k) {writeln(k);return 0;}}writeln(-1);return 0; }

    Rating View

    總結(jié)

    以上是生活随笔為你收集整理的Codeforces Round #596 (Div. 2)(第三场)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。