my first blog ——CF1257A、CF1257B、CF1257C
Difference between en1 and en2, changed 75 character(s)
昨天晚上第一次参加CF,提交成功两个题,排名5520.↵

[standings:1257]↵
[problem:1257A]↵
[problem:1257B]↵
[problem:1257C]↵

实际我们完成了第三题,但是并未成功长传。↵
A:很简单的意思,结果两种可能,l — r或者b — a + x。↵
~~~~~↵

#include <cstdio>↵
#include <cmath>↵
using namespace std;↵
int main(){↵
    int t,n,x,a,b,c,d,e;↵
  scanf("%d",&t);↵
  while(t--){↵
   scanf("%d%d%d%d",&n,&x,&a,&b);↵
   c= abs(a-b);↵
   d=x+c;↵
   if(d>=n)↵
    printf("%d\n",n-1);↵
   else↵
    printf("%d\n",d);↵
 } ↵
    return 0;↵
}↵

~~~~~↵

B:题意不作解释。最后结果:只要m>=4,就能达到任何值。m = 3时,只能达到1,2,3;m = 2时,只能达到1,2,3;m = 1时,只能是1.↵

~~~~~↵

#include<stdio.h>↵
int m,n;↵
int flag = 1;↵
int T;↵
int main(){↵
scanf("%d",&T);↵
while(T--){↵
scanf("%d%d",&m,&n);↵
flag = 1;↵
if(m >= 4) flag = 0;↵
if(m == 3 && n <= 3) flag = 0;↵
if(m == 2 && n <= 3) flag = 0;↵
if(m == 1 && n == 1) flag = 0;  ↵
if(flag) printf("NO\n");↵
else printf("YES\n");↵
}↵
return 0;↵
} ↵
~~~~~↵

C:C最坑在题意,找一个最短的首尾相同的字串长度就行了,找不到返回-1.刚开始想的用优先队列,wa4,后来直接每一次判断:↵

~~~~~↵

#include<string.h>↵
#include<stdio.h>↵
#include<algorithm>↵
using namespace std;↵
#define maxn 200005↵
int ll[maxn];↵
int main(){↵
int T;↵
scanf("%d",&T);↵
while(T--){↵
int n;↵
scanf("%d",&n);↵
int num;↵
memset(ll,0,sizeof(ll));↵
if(n < 2) {↵
for(int i = 0;i < n;i++){↵
scanf("%d",&num);↵
}↵
printf("-1\n");↵
}↵
else{↵
int ans = 1e9;↵
for(int i = 1;i <= n;i++){↵
scanf("%d",&num);↵
if(ll[num] == 0) ll[num] = i;↵
else {↵
ans = min(ans,i &mdash; ll[num] + 1);↵
ll[num] = i;↵
}↵
}↵
if(ans == 1e9){↵
printf("-1\n");↵
}↵
else{↵
printf("%d\n",ans);↵
}↵
}↵
}↵
return 0;↵
}↵

~~~~~↵


第一次就写这么多了,好好学习,天天向上!!!↵





History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English xiaomaolin 2019-11-14 10:29:34 42
en2 English xiaomaolin 2019-11-14 10:27:29 75
en1 English xiaomaolin 2019-11-14 10:25:06 1655 Initial revision (published)