2021.02.21补题
A. Space Navigation
题意:通过给定的上下左右移动步骤指示,并且这些指示可以进行删除,问是否可以到达指定地点
思路:直接寻找是不是不少于一定要求的那些步数
代码:
1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #include<cmath> 5 #include<cstring> 6 using namespace std; 7 const int maxx=1e5+10; 8 int main(){ 9 int t; 10 scanf("%d",&t); 11 while(t--){ 12 int x,y; 13 scanf("%d %d",&x,&y); 14 char s[maxx]; 15 getchar(); 16 scanf("%s",&s); 17 int u=0,l=0,r=0,d=0; 18 for(int i=0;i<strlen(s);i++){ 19 if(s[i]=='U'){ 20 u++; 21 } 22 if(s[i]=='D'){ 23 d++; 24 } 25 if(s[i]=='L'){ 26 l++; 27 } 28 if(s[i]=='R'){ 29 r++; 30 } 31 } 32 if(x>=0&&y>=0){ 33 if(r>=x&&u>=y){ 34 printf("YES\n"); 35 }else{ 36 printf("NO\n"); 37 } 38 }else if(x>=0&&y<=0){ 39 if(r>=x&&d>=-y){ 40 printf("YES\n"); 41 }else{ 42 printf("NO\n"); 43 } 44 }else if(x<=0&&y>=0){ 45 if(l>=-x&&u>=y){ 46 printf("YES\n"); 47 }else{ 48 printf("NO\n"); 49 } 50 }else{ 51 if(l>=-x&&d>=-y){ 52 printf("YES\n"); 53 }else{ 54 printf("NO\n"); 55 } 56 } 57 } 58 }
B. New Colony
题意:就是从第一座山开始扔石块,必须满足hi<hi+1,才能够停留在这个位置上,问最后一个石头落在了哪座山上,一块石块落在一座山上那么这座山的高度就+1,如果在最后一座山上就会滑下去,直接输出-1
思路:暴力模拟
代码:
1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #include<cmath> 5 #include<cstring> 6 using namespace std; 7 const int maxx=1e5+10; 8 int main(){ 9 int t; 10 scanf("%d",&t); 11 while(t--){ 12 int n,k; 13 scanf("%d %d",&n,&k); 14 int a[500],b[500]={0}; 15 for(int i=1;i<=n;i++){ 16 scanf("%d",&a[i]); 17 } 18 int minn=-1e9; 19 /* for(int i=1;i<n;i++){ 20 b[i]=a[i]-a[i+1]; 21 } 22 for(int i )*/ 23 int bp=0; 24 int flag=0; 25 int sum=0; 26 while(k--){ 27 for(int i=1;i<n;i++){ 28 bp=0; 29 if(a[i]>=a[i+1]){ 30 continue; 31 }else{ 32 a[i]++; 33 flag=i; 34 bp=1; 35 break; 36 } 37 } 38 if(bp==0){ 39 break; 40 } 41 } 42 if(bp==1){ 43 printf("%d\n",flag); 44 }else{ 45 printf("-1\n"); 46 } 47 48 } 49 50 }
C. Fence Painting
题意:就是给篱笆上色原色是数组a,目标颜色是b,雇佣了m名工人,必须全部用上这m名工人,问这m名工人是不是能完成这项任务,如果能的话每个工人需要刷的栅栏位置是哪一个
思路:先查找那些a数组和b数组中颜色对不上的里面是不是能够找到对应的工人,再通过剩下的工人进行确认,剩下的工人有三种选择:1)查询a和b中相等的数据是不是有满足c条件的;2)在这个工人之前染色的篱笆中有没有此工人对应的b数组;3)查询后面的工人中,有没有染色的,如果有就直接进行染色就行,毕竟后面还会重复染上正确的颜色
注意:1)一开始我想要用两个for循环进行对应值的查找;2)其实多个都需要用数组b和别人作比较来找到b中某些元素对应的i,那么这样一来普通数组是i对应bi,这样map改变一下bi对应i,何尝不是更好的选择,省去了循环比较的时间复杂度
代码:由于太菜,代码未知

浙公网安备 33010602011771号