第k個(gè)數(shù)
題解#include#include#include
using namespace std;
int main() {int n, k;
cin >>n >>k;
vectora(n);
for (int i = 0; i< n; i++) {cin >>a[i];
}
sort(a.begin(), a.end());
cout<< a[n - k]<< endl;
return 0;
}
復(fù)雜度分析快排,時(shí)間復(fù)雜度 O ( n l o g n ) O(nlogn) O(nlogn)。
B題 題目鏈接多米諾骨牌
題解將各種情況考慮清楚即可。
#includeusing namespace std;
int main() {int n;
cin >>n;
int flag = 0;
int ans = 0;
int sum = 0;
for (int i = 0; i< n; i++) {char c;
cin >>c;
if (c == '.') sum++;
else {if (flag == 0 && c == 'L') {sum = 0;
flag = -1;
} else if (flag == 0 && c == 'R') {ans += sum;
sum = 0;
flag = 1;
} else if (flag == -1 && c == 'R') {ans += sum;
sum = 0;
flag = 1;
} else if (flag == 1 && c == 'L') {ans += sum % 2;
sum = 0;
flag = -1;
}
}
}
if (flag == 1) sum = 0;
cout<< ans + sum<< endl;
return 0;
}
復(fù)雜度分析讀入同時(shí)進(jìn)行處理即可,時(shí)間復(fù)雜度為 O ( n ) O(n) O(n)。
C題 題目鏈接構(gòu)造序列
題解根據(jù)題意,0必須單獨(dú),1最多可以存在兩個(gè),共有n個(gè)0和m個(gè)1,因而可以推出只有滿足
n - 1
≤
\leq
≤ m
≤
\leq
≤ 2
×
\times
× (n + 1)
才能構(gòu)造出滿足規(guī)則的序列。
#includeusing namespace std;
int main() {int n, m;
cin >>n >>m;
if (m< n - 1 || m >2 * (n + 1)) cout<< -1<< endl;
else {string s = "";
if (n >m) s += "0";
while (m >n && n) {s += "110";
m -= 2;
n -= 1;
}
while (m && n) {s += "10";
m--;
n--;
}
for (int i = 0; i< m; i++) {s += "1";
}
cout<< s<< endl;
}
return 0;
}
復(fù)雜度分析明顯可以 O ( n ) O(n) O(n)的時(shí)間復(fù)雜度完成構(gòu)造。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧