Atcoder abc 160 (A~E)
程序员文章站
2022-07-03 18:18:19
AA题链接题意:第三第四一样,第五第六位一样则输出yes,否则NO模拟即可AC代码:#include #include #include #include#include #include typedef long long ll;using namespace std;int main(){...
A
A题链接
题意:第三第四一样,第五第六位一样则输出yes,否则NO
模拟即可
AC代码:
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include<cstring>
#include <math.h>
#include <queue>
typedef long long ll;
using namespace std;
int main()
{
char a[6];
cin>>a;
if(a[2]==a[3]&&a[4]==a[5])
{
cout<<"Yes";
}
else
{
cout<<"No";
}
return 0;
}
B
B题链接
题意500日元1000快乐值,5日元5快乐值,求最大快乐值
贪心,能取500取500。
AC代码:
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include<cstring>
#include <math.h>
#include <queue>
typedef long long ll;
using namespace std;
int main()
{
int n;
cin>>n;
int c=n%500;
int k=n/500;
int t=c/5;
cout<<k*1000+t*5;
return 0;
}
C
C题链接
题意 一个周长为k的圆,上面有n座房子,输出从一座房子出发走遍所有房子的最短路程。
找到相邻两栋楼距离最大的,周长减去即可
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include<cstring>
#include <math.h>
#include <queue>
typedef long long ll;
using namespace std;
int a[200005];
int maxs;
int main()
{
int k,n;
cin>>k>>n;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
for(int i=0;i<n-1;i++)
{
int q=a[i+1]-a[i];
if(maxs<q)
{
maxs=q;
}
}
int q=k-a[n-1]+a[0];
if(maxs<q)
{
maxs=q;
}
cout<<k-maxs;
return 0;
}
D
D题链接
两种走法,一种按不加X,Y的路径走,另一种按通过X,Y的路径走,两种路径取最小值。
两个点(i,j)的j距离为 min(i-j,abs(x-j)+abs(y-i)+1)
AC代码为:
#include<iostream>
#include<cstdio>
#include <stdio.h>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<map>
#include<vector>
#include <set>
#define ll long long
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#define inf 0x3f3f3f3f
using namespace std;
int ans[2020];
int n,x,y;
int main()
{
cin>>n>>x>>y;
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
{
ans[min(i-j,abs(x-j)+abs(y-i)+1)]++;
}
}
for(int i=1;i<=n-1;i++)
{
cout<<ans[i]<<endl;
}
return 0;
}
E
E题链接
题意 :有A个红苹果和对应的快乐值,B个绿苹果和对应的快乐值,C个无颜色的苹果和对应的快乐值,无颜色苹果可以当作红苹果或者绿苹果,最后要吃X个红苹果,Y个绿苹果,求最大快乐值。
题解:把前X个红苹果,Y个绿苹果加入无颜色苹果中排序,取前X+Y个即为最大值。
AC代码:
#include<iostream>
#include<cstdio>
#include <stdio.h>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<map>
#include<vector>
#include <set>
#define ll long long
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#define inf 0x3f3f3f3f
using namespace std;
int a[100010];
int b[100010];
int c[500010];
int x,y;
int A,B,C;
int cmp(int a,int b)
{
return a>b;
}
int main()
{
cin>>x>>y>>A>>B>>C;
for(int i=0;i<A;i++)
{
cin>>a[i];
}
for(int i=0;i<B;i++)
{
cin>>b[i];
}
for(int i=0;i<C;i++)
{
cin>>c[i];
}
sort(a,a+A,cmp);
sort(b,b+B,cmp);
for(int i=0;i<x;i++)
{
c[i+C]=a[i];
}
for(int i=0;i<y;i++)
{
c[i+C+x]=b[i];
}
sort(c,c+C+x+y,cmp);
ll sum=0;
for(int i=0;i<x+y;i++)
{
sum+=c[i];
}
cout<<sum<<endl;
return 0;
}
本文地址:https://blog.csdn.net/CHAI_NIAOJINJE/article/details/107370545
推荐阅读
-
AtCoder Beginner Contest 173(E 思维模拟 F 容斥 思维题 )
-
AtCoder Beginner Contest 182----E. Akari
-
Atcoder abc 160 (A~E)
-
atcoder abc 159:F - Knapsack for All Segments(思维 + 贡献 + dp)
-
Atcoder - abc176 -- D - Wizard in Maze【BFS + 双端队列】
-
Atcoder abc 168 C
-
AtCoder Beginner Contest 160(A~D)
-
AtCoder Beginner Contest 177 E.Coprime
-
atcoder:Tokio Marine & Nichido Fire Insurance Programming Contest 2020:E - O(rand)(位运算+二项式反演)
-
AtCoder Beginner Contest 173(E 思维模拟 F 容斥 思维题 )