A. Park Lighting:http://codeforces.com/contest/1358/problem/A
Example
input
5
1 1
1 3
2 2
3 3
5 3
output
1
2
2
5
8
看完题解觉得自己是fw系列
很简单的一道题
如果两个边有一个边是偶数,就按照偶数那一侧来依次排过去,顺着一个方向就行
也就是n*m/2
如果都是奇数,那就n或者m进行-1按照上述方法,然后剩下部分分为n (m)-1 * 1 和 1*1两个部分了
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int main(){ 5 int t; 6 cin>>t; 7 while(t--){ 8 int n,m; 9 cin>>n>>m; 10 if(n%2==0||m%2==0)cout<<n*m/2<<endl; 11 else{ 12 int a=n*(m-1)/2; 13 int b=(n-1)*1/2 +1; 14 cout<<a+b<<endl; 15 } 16 } 17 }
B:Maria Breaks the Self-isolation
http://codeforces.com/contest/1358/problem/B
题解:好像,这个题也是个贪心
直接一次就拉最多的人过去。
#include<bits/stdc++.h> using namespace std; const int maxn=2e5+10; int test,n,a[maxn]; int main(){ cin>>test; while(test--){ cin>>n; int vis[maxn]={0}; for(int i=1;i<=n;i++) cin>>a[i],vis[a[i]]++; sort(a+1,a+1+n); int res=1, lef=0; for(int i=1;i<=n;i++){ if(res+vis[a[i]]+lef-1>=a[i]){ res+=vis[a[i]]+lef; lef=0; } else lef+=vis[a[i]]; i+=vis[a[i]]-1; } cout << res << endl; } return 0; }
C:Celex Update
http://codeforces.com/contest/1358/problem/C
题解:感觉让我想起了noip2017day2的t1,也是这样一个三角形
找规律吧
(感觉这次cf找规律的题居多诶)
#include<bits/stdc++.h> #define ll long long #define maxn 200005 using namespace std; int t,n,a[maxn]; int main(){ cin>>t; while(t--){ ll x1,x2,y1,y2; cin>>x1>>y1>>x2>>y2; ll res=(x2-x1)*(y2-y1)+1; cout<<res<<endl; } }