日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Educational Codeforces Round 75 (Rated for Div. 2)

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Educational Codeforces Round 75 (Rated for Div. 2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Preface

我要開始打Codeforces了,這是我的第二場比賽,本來以為可以快速上分的,誰知在pupil的路上越走越遠。打算補題補到D題,在三天內完成。

本場戰績:
Cost Time: 2 hours
Solve: 1
Rank: 3989
Rating: -45

Question

A. Broken Keyboard
題目大意:找出輸入串中連續個數為奇數的字母,按字典序輸出。
解法:簡單模擬,對出現連續個數為奇數的字母做標記,然后遍歷標記數組輸出即可。

#include <bits/stdc++.h>using namespace std; const int maxn = 505; int T, n; string s; int mark[maxn];int main() {ios::sync_with_stdio(0);cin.tie(0);cin >> T;while (T--) {cin >> s;int idx = 0, cnt = 1;char t = s[0];memset(mark, 0, sizeof(mark));for (int i = 1; i < s.length(); i++) {if (t == s[i]) {cnt++;} else {if (cnt & 1) mark[t - 'a'] = 1;t = s[i];cnt = 1;}}if (cnt & 1) mark[t - 'a'] = 1;for (int i = 0; i < 26; i++) {if (mark[i]) {putchar(i + 'a');}}putchar('\n');}return 0; }

B. Binary Palindromes
題目大意:給定n個只包含0和1的字符串,串與串之間任意位置的字符可以相互交換,求最終可以組成多少個回文串。

解法
由手動模擬可以知道,所有的0和1可以隨意放置,于是有了下面兩種解法

  • 既然最后組成的是回文串,我們就只用計算最后能組成多少個完整回文串的一半,當然0和1的數量也要相應減半,例如我們想構成1001,我們只要組成10即可。我們可以先計算0和1的數量,然后然后將0和1的數量各減半,隨意填入長度為len(si)/2len(s_i)/2len(si?)/2的串中,得到的串的個數就是答案。
  • 通過觀察多組樣例,我們可以發現,組成回文串的數量要么是nnn,要么是n?1n-1n?1,而出現n?1n-1n?1的情況恰是當所給串的長度都是偶數,且0和1的數量都是奇數。
  • #include <bits/stdc++.h>using namespace std; const int maxn = 505; int T, n; string s;int main() {ios::sync_with_stdio(0);cin.tie(0);cin >> T;while (T--) {cin >> n;int len = 0, ones = 0, flag = 0;for (int i = 0; i < n; i++) {cin >> s;if (s.length() & 1) flag = 1;for (int j = 0; j < s.length(); j++)ones += s[j] - '0';}if (!flag && (ones & 1)) cout << n - 1 << endl;else cout << n << endl;}return 0; }

    C. Minimize The Integer
    題目大意:給一個數字串,我們可以交換任意次它相鄰且對應位不同為奇數或偶數的數,例如給定串"4532",4和5之間可以交換,4和3之間不能交換(不相鄰),5和3不能交換(因為都是素數)。最后要使得得到的數最小。
    解法:按順序將奇數和偶數都提取出來,然后將奇數和偶數小的一方先填入,以此類推(有點像歸并排序)

    PS:這個方法是借鑒scnucjh大佬的。

    #include <bits/stdc++.h>using namespace std; const int maxn = 505; int T; string s;int main() {ios::sync_with_stdio(0);cin.tie(0);cin >> T;while (T--) {cin >> s;vector<int> a, b, ans;for (int i = 0; i < s.length(); i++) {int t = s[i] - '0';if (t & 1) a.push_back(t);else b.push_back(t);}int i = 0, j = 0;while (i < a.size() && j < b.size()) {//將小的數先填入串中if (a[i] < b[j]) ans.push_back(a[i++]);else ans.push_back(b[j++]);}//最后將剩余的部分也填入串中while (i < a.size()) ans.push_back(a[i++]);while (j < b.size()) ans.push_back(b[j++]);for (int i = 0; i < ans.size(); i++)putchar(ans[i] + '0');putchar('\n');}return 0; }

    D. Salary Changing
    題目大意:給定n個員工和s塊錢,每個員工要給的工資在[li,ri][l_i,r_i][li?,ri?]這個區間內,現在要使所給工資的中位數最大。
    解法:最優化問題一般考慮二分法,為了保證找到的x可以成為中位數,我們先對li,ril_i,r_ili?,ri?從大到小排序,然后二分查找中位數的值。判斷條件主要考慮這個數能不能在中間位置,以及當它在中間位置是,是否夠錢支付給各個員工。

    #include <bits/stdc++.h>using namespace std; typedef long long ll; const int maxn = 2e5 +10; int T, n; ll s;struct People {int a, b;bool operator < (const People &p) {return a^p.a ? a > p.a : b > p.b ; } } p[maxn];template <class T> int read(T &res) {char c; int sgn;if (c = getchar(), c == EOF) return 0;while (c != '-' && (c < '0' || c > '9')) c = getchar();sgn = (c == '-') ? -1 : 1;res = (c == '-') ? 0 : (c - '0');while (c = getchar(), c >= '0' && c <= '9') res = res * 10 + (c - '0');res *= sgn;return 1; }template <class T> void write(T x) {if (x > 9) write(x / 10);putchar(x % 10 + '0'); }template <class T> void writeln(T x) {write(x);putchar('\n'); }int check(ll x) {ll cnt = 0, half = (n + 1) >> 1, sum = 0;for (int i = 1; i <= n; i++) {if (p[i].a >= x) {sum += p[i].a;cnt++;} else {if (p[i].b >= x && cnt < half) {sum += x;cnt++;} else {sum += p[i].a;}}}if (cnt < half) return 0;return sum <= s; }int main() {read(T);while(T--) {read(n); read(s);for (int i = 1; i <= n; i++) {read(p[i].a);read(p[i].b);}sort(p + 1, p + n + 1);ll l = 1, r = 1e18, mid;while (l <= r) {mid = (l + r) >> 1;if (check(mid)) l = mid + 1;else r = mid - 1;}writeln(r);}return 0; }

    PS:參考了這篇博客:https://www.cnblogs.com/Kylin-xy/p/11735955.html

    Rating View

    總結

    以上是生活随笔為你收集整理的Educational Codeforces Round 75 (Rated for Div. 2)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 黄色片久久| 日韩夜夜高潮夜夜爽无码 | 激情av在线| 久久久久久婷婷 | 精品少妇人妻av一区二区 | 自拍视频在线播放 | 欧美精品一区二区蜜臀亚洲 | 东北少妇露脸无套对白 | 亚洲人午夜射精精品日韩 | 古装做爰无遮挡三级 | 免费在线不卡av | 亚洲依依| 亚洲女人天堂色在线7777 | 欧美一级爱爱 | 九色自拍| 91视频影院| 日韩无码精品一区二区三区 | 免费瑟瑟网站 | 国产a级片 | 麻豆做爰免费观看 | 91精品人妻一区二区三区果冻 | 国产精品 欧美 日韩 | 春色校园激情 | 日韩国产在线一区 | 日韩午夜高清 | 91重口味| 国产精品久久久久久久久久久久久久久久久 | 天天天色综合 | 精品一区二区久久 | 日韩在线精品强乱中文字幕 | 亚洲激情在线观看 | 成人三级电影网站 | 在线观看欧美精品 | 国产特级淫片免费看 | 伊人免费在线 | 亚洲人人干| 东京久久久 | 1000部国产精品成人观看 | 男女爽爽视频 | 草草在线观看 | jizzjizz日本人 | 亚洲破处视频 | 亚洲天堂久 | 少妇愉情理伦片bd | 小镇姑娘国语版在线观看免费 | 性欧美长视频 | 国产精品50页 | 日本a v在线播放 | 成人一卡二卡 | 久久99久久精品 | 日韩极品一区 | 国产精品嫩草av | 自宅警备员在线观看 | 黄色网av| 国产精品一区二区三区在线免费观看 | 久久中文字幕电影 | 欧美高清日韩 | 精品人妻一区二区色欲产成人 | 禁久久精品乱码 | 国产伦精品一区二区免费 | 亚洲free性xxxx护士hd | 日韩一区二区三区三四区视频在线观看 | 综合久久久 | 特黄aaaaaaaaa毛片免费视频 | 丰满少妇高潮在线观看 | 青青草免费在线观看视频 | 999久久久久久久久6666 | av天天干| 欧美精品在线看 | 天天干夜夜看 | 在线精品一区 | 免费网站观看www在线观 | 长河落日电视连续剧免费观看01 | aaaaaaa毛片 | 亚洲成人经典 | 色婷婷欧美 | 国产精品夜夜嗨 | 在线不卡二区 | av资源免费 | 国产911 | 在线观看a视频 | 欧美日韩综合一区二区三区 | 国产精品人人爽 | 成年人的黄色片 | 久久视频在线观看免费 | 欧美一区二区三区不卡视频 | 久久久久国产一区 | 91免费网站 | 精品欧美一区二区在线观看 | 青娱乐av在线 | 国产成人a亚洲精品 | 国产色黄 | zjzjzjzjzj亚洲女人| 涩涩涩在线观看 | 成人黄色片免费看 | 中文字幕第一页久久 | 国产成人在线视频播放 | 超碰在线免费公开 | 久久亚洲第一 |