文章目录
1.AcWing 1812. 方形牧场
AC代码:
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main(){
int x1,y1,x2,y2;
int x3,y3,x4,y4;
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
scanf("%d %d %d %d",&x3,&y3,&x4,&y4);
int ll = max(max(x2,x4)-min(x1,x3),max(y2,y4)-min(y1,y3));
printf("%d\n",ll*ll);
return 0;
}
2.AcWing 1800. 不做最后一个!
AC代码:
map 和 unordered_map
#include<iostream>
#include<unordered_map>
using namespace std;
int n,x,a1,a2;
string s;
unordered_map<string, int> mp;
int main(){
cin >> n;
for(int i = 0; i < n; i++){
cin >> s >> x;
mp[s] += x;
}
a1 = 1e9;
a2 = 2e9;
for(auto &t: mp){
if(a1 < t.second && t.second < a2)
a2 = t.second;
else if(t.second < a1)
a2 = a1, a1 = t.second;
}
if(mp.size() < 7)
a2 = a1, a1 = 0;
int cnt = 0;
for(auto &t: mp)
if(t.second == a2)
cnt++, s = t.first;
if(cnt != 1)
puts("Tie");
else
cout << s << endl;
return 0;
}
3.AcWing 1788. 牛为什么过马路
AC代码:
#include <bits/stdc++.h>
using namespace std;
int book[110];
int main(){
int n,sum = 0;
cin >> n;
memset(book,-1,sizeof(book));
for(int i=1;i<=n;i++){
int m,x;
scanf("%d %d",&m,&x);
if(book[m] == -1){
book[m] = x;
continue;
}else if(book[m] != x){
book[m] = x;
sum++;
}
}
printf("%d\n",sum);
return 0;
}
4.AcWing 1775. 丢失的牛
AC代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int x,y,n;
cin >> x >> y;
int dis = 0,k = 0;
n = x;
for(int i=1,j=1;;j++,i=i*2){
if(j%2)
n = x+i;
else
n = x-i;
if(x < y){
if(n < y){
dis += (i+k);
k = i;
}else{
dis += (k+y-x);
break;
}
}else{
if(n > y){
dis += (i+k);
k = i;
}else{
dis += (k+x-y);
break;
}
}
}
if(x==y)
printf("0\n");
else
printf("%d\n",dis);
return 0;
}
5.AcWing 1866. 围栏刷漆
AC代码:
#include <bits/stdc++.h>
int a,b,c,d,sum=0,book[110];
using namespace std;
int main(){
scanf("%d %d %d %d",&a,&b,&c,&d);
fill(book+a,book+b,1);
fill(book+c,book+d,1);
for(int i=0;i<=110;i++)
if(book[i])
sum++;
printf("%d\n",sum);
return 0;
}
6.AcWing 1854. 晋升计数
AC代码:
#include <bits/stdc++.h>
using namespace std;
pair<int,int> p[5];
int a[5],o = 0;
int main(){
for(int i=1;i<=4;i++)
scanf("%d %d",&p[i].first,&p[i].second);
for(int i=4;i>=2;i--){
a[i]=p[i].second-(p[i].first-o);
o = a[i];
}
for(int i=2;i<=4;i++)
printf("%d\n",a[i]);
return 0;
}