Codeforces Round #601 (Div. 2)

Codeforces Round #601 (Div. 2)

A

# include <bits/stdc++.h>
using namespace std;

int main()
{
int T;
scanf("%d",&T);
while(T--){
int a,b;
scanf("%d%d",&a,&b);
int c=b-a;
if(c<0) c=-c;
int ans=0;
ans=c/5;
int d=c%5;
if(d==1||d==2) ans+=1;
else if(d==3||d==4) ans+=2;
cout<<ans<<endl;
}

return 0;
}

B

# include <bits/stdc++.h>
using namespace std;

const int MAXN=1e3+100;
pair<int,int> a[MAXN];
int main()
{
int T;
scanf("%d",&T);
while(T--){
int n,m;
scanf("%d%d",&n,&m);
int ans=0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i].first);
a[i].second=i;
ans+=a[i].first*2;
}
if(m<n||n==2) printf("-1\n");
else{
m-=n;
sort(a+1,a+n+1);
ans+=m*(a[1].first+a[2].first);
printf("%d\n",ans);
for(int i=1;i<=m;i++){
printf("%d %d\n",a[1].second,a[2].second);
}
for(int i=1;i<=n;i++){
if(i!=n){
printf("%d %d\n",a[i].second,a[i+1].second);
}else{
printf("%d %d\n",a[n].second,a[1].second);
}
}
}
}

return 0;
}

C

# include <bits/stdc++.h>
using namespace std;

const int MAXN=1e5+100;
int f[MAXN];
int cs[MAXN];
int w[MAXN][10];
int q[MAXN][10];
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<n-1;i++){
scanf("%d%d%d",&q[i][0],&q[i][1],&q[i][2]);
int a=q[i][0],b=q[i][1],c=q[i][2];
w[a][cs[a]]=i,w[b][cs[b]]=i,w[c][cs[c]]=i;
cs[a]++,cs[b]++,cs[c]++;
}
int b=0;
for(int i=1;i<=n;i++){
if(cs[i]==1){
b=i;
break;
}
}
printf("%d ",b);
int id=w[b][0];
f[id]=1;
int aa=q[id][0],bb=q[id][1],cc=q[id][2];
int pre,now;
if(cs[aa]==2){
printf("%d ",aa);
pre=aa;
if(cs[bb]==3) now=bb;
if(cs[cc]==3) now=cc;
}
if(cs[bb]==2){
printf("%d ",bb);
pre=bb;
if(cs[aa]==3) now=aa;
if(cs[cc]==3) now=cc;
}
if(cs[cc]==2){
printf("%d ",cc);
pre=cc;
if(cs[bb]==3) now=bb;
if(cs[aa]==3) now=aa;
}
//cout<<endl;
int cnt=0;
while(cnt<=n-3){
//cout<<cnt<<" "<<now<<" "<<pre;
printf("%d ",now);
int flag=0;
int idd=0;
for(int i=0;i<3;i++){
idd=w[now][i];
if(f[idd]) continue;
for(int j=0;j<3;j++){
if(w[pre][j]==idd) {
flag=1;
break;
}
}
if(flag) break;
}
//cout<<" "<<idd<<endl;
for(int i=0;i<3;i++){
if(q[idd][i]!=now&&q[idd][i]!=pre){
pre=now;
now=q[idd][i];
break;
}
}
f[idd]=1;
cnt++;
}
return 0;
}
/*
8
1 4 5
4 5 6
5 6 7
6 7 3
7 3 2
3 2 8
*/

D

# include <bits/stdc++.h>
using namespace std;

const int MAXN=200;
int f[MAXN][MAXN];
char mp[MAXN][MAXN];
char ff[70]={"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"};
int main()
{
int T;scanf("%d",&T);
while(T--){
memset(f,0,sizeof(f));
int r,c,k;scanf("%d%d%d",&r,&c,&k);
int mi=0;
for(int i=0;i<r;i++){
cin>>mp[i];
for(int j=0;j<c;j++){
if(mp[i][j]=='R') mi++;
}
}
int now=0, cnt=0;
int a=mi/k, b=mi%k;
int flag=0; int x;
if(b) x=a+1;
else x=a;
// cout<<"!!!!!!"<<mi<<" "<<x<<endl;
for(int i=0;i<r;i++){
if(flag==0){//控制蛇形走位
for(int j=0;j<c;j++){//遍历
f[i][j]=now;
if(mp[i][j]=='R') cnt++;
if(cnt==x){
cnt=0;
now++;
if(now==b){
x=a;
}
}
}
flag=1;
}else{
for(int j=c-1;j>=0;j--){
f[i][j]=now;
if(mp[i][j]=='R') cnt++;
if(cnt==x){
cnt=0;
now++;
if(now==b){
x=a;
}
}
}
flag=0;
}
}
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
printf("%c",ff[f[i][j]]);
}
printf("\n");
}
}
return 0;
}
/*
4
3 5 3
..R..
...R.
....R
6 4 6
R..R
R..R
RRRR
RRRR
R..R
R..R
5 5 4
RRR..
R.R..
RRR..
R..R.
R...R
2 31 62
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR

*/



posted @ 2022-02-26 23:01  fengzlj  阅读(26)  评论(0)    收藏  举报