开摆--更新ing
目录没有详解(大概
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题
时间不够没写乐死我了
标签:开摆,cout,++,题解,cin,solve,qwq,first From: https://www.cnblogs.com/Allergy/p/18066922