開擺--更新ing
沒有詳解(大概
目錄
- 開擺--更新ing
- A題
- B題
- C題
- D題
- E題
A題
不配文字講解了,具體的直接問我本人吧
字首和影片
C++程式碼
void solve() {
int n, m, w, x, i, ans = 0;
cin >> n;
vector<int>qwq(49); //字首和陣列
for(i = 0;i < n;++i) {
cin >> w >> x;
qwq[9 + x] += w; //給這個區間都加上w
qwq[18 + x] -= w;
}
for(i = 1;i < 49;++i)qwq[i] += qwq[i - 1]; //還原字首和陣列
for(i = 0;i < 24;++i) {
qwq[i] += qwq[24 + i]; //將第二天與第一天相加
if(qwq[i] > ans)ans = qwq[i]; //求最大值
}
cout << ans;
}
B題
C++程式碼
void solve() {
ll n;
cin >> n;
while(n % 2 == 0 || n % 3 == 0) { //一直除下去就行
if(n % 2 == 0)n /= 2;
if(n % 3 == 0)n /= 3;
}
cout << (n == 1 ? "Yes" : "No");
}
C題
C++程式碼
struct Int {
int first, second;
};
bool cmp(Int a, Int b) {
if(a.first != b.first)return a.first < b.first;
else return a.second > b.second;
}
void solve() {
int n, m, i, j;
cin >> n;
vector<Int>qwq(n);
for(i = 0;i < n;++i) {
string k;
cin >> k;
qwq[i] = { 0, i + 1 };
for(auto x : k) if(x == 'o')++qwq[i].first;
}
sort(qwq.begin(), qwq.end(), cmp);
for(i = n - 1;i >= 0;--i)cout << qwq[i].second << ' ';
}
D題
C++程式碼
void solve() {
string n, m;
cin >> n >> m;
cout << n << ' ' << "san";
}
E題
時間不夠沒寫樂死我了