Codeforces Round #645 (Div. 2) 题解 (ABCD) (E一定补!)
Posted axiomofchoice
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #645 (Div. 2) 题解 (ABCD) (E一定补!)相关的知识,希望对你有一定的参考价值。
https://codeforces.com/contest/1358
A. Park Lighting
输出 (lceil dfrac{ab}2 ceil)
#include <bits/stdc++.h>
using namespace std;
#define repeat(i,a,b) for(int i=(a),_=(b);i<_;i++)
#define repeat_back(i,a,b) for(int i=(b)-1,_=(a);i>=_;i--)
int cansel_sync=(ios::sync_with_stdio(0),cin.tie(0),0);
const int N=200010; typedef long long ll;
#define int ll
int T,a,b;
signed main(){
cin>>T;
while(T--){
cin>>a>>b;
cout<<(a*b+1)/2<<endl;
}
return 0;
}
B. Maria Breaks the Self-isolation
题面真长。排序,然后求 (a[1]+a[2]+...+a[i]<=i) 的 (i) 的最大值
当然答案要加 (1) 因为要算上Maria
#include <bits/stdc++.h>
using namespace std;
#define repeat(i,a,b) for(int i=(a),_=(b);i<_;i++)
#define repeat_back(i,a,b) for(int i=(b)-1,_=(a);i>=_;i--)
int cansel_sync=(ios::sync_with_stdio(0),cin.tie(0),0);
const int N=200010; typedef long long ll;
#define int ll
int T,n,a[N];
signed main(){
cin>>T;
while(T--){
cin>>n;
repeat(i,0,n)cin>>a[i];
sort(a,a+n);
int ans=1;
repeat(i,0,n)if(a[i]<=i+1)ans=i+2; //我编号从0开始有点不同
cout<<ans<<endl;
}
return 0;
}
C. Celex Update
怎么说呢……比如要从1走到18,有这么两种走法
右图比左图数字之和刚刚好多了1。这说明一旦出现类似 (4, 7, 12) 这样的上三角形拐角,我们可以让它拐下来变成 (4,8,12)。这样操作 ((y_2-y_1)(x_2-x_1)) 次后就彻底找不到这种拐角了,因此答案是 ((y_2-y_1)(x_2-x_1)+1)
#include <bits/stdc++.h>
using namespace std;
#define repeat(i,a,b) for(int i=(a),_=(b);i<_;i++)
#define repeat_back(i,a,b) for(int i=(b)-1,_=(a);i>=_;i--)
int cansel_sync=(ios::sync_with_stdio(0),cin.tie(0),0);
const int N=200010; typedef long long ll;
#define int ll
int T,x1,x2,y1,y2;
signed main(){
cin>>T;
while(T--){
cin>>x1>>y1>>x2>>y2;
cout<<(x2-x1)*(y2-y1)+1<<endl;
}
return 0;
}
D. The Best Vacation
最优解的区间的右端点一定一定是某个月的月末(这里的区间左右端点都表示某一天)。小证一下,假设有个右端点不是月末的区间,如果左端点(那一天的拥抱次数,下同)大于右端点就让它向左平移,如果左端点小于右端点就让它向右平移,这样总拥抱次数必定增大,因此结论成立qwq
这样就容易好多,我们枚举每个月的月末,二分查找区间左端点即可(不二分查找应该也可)
我这题fst了,尴尬至极,代码先删了避免误导
以上是关于Codeforces Round #645 (Div. 2) 题解 (ABCD) (E一定补!)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #645 (Div. 2)
Codeforces Round #645 (Div. 2)
Codeforces Round #645 (Div. 2) 题解 (ABCD) (E一定补!)
Codeforces Round #645 (Div. 2) 题解 (ABCD) (E一定补!)