当前位置:   article > 正文

Codeforces Round 877 (Div. 2) 题解_codeforces round 887 (div. 2)

codeforces round 887 (div. 2)

写了两题了,先总结一下吧。。。看了三题,都是思维题构造题,搞心态真的搞心态。。。感觉自己屁都不会,完全没有动力。。。有的有思路但是写不出来,但是思路不够成熟,练的题太少,其实这场到B题就卡住了,C题也是,题意都能读懂,但是思考的方向不对,很焦虑。。。完全写不下去,先缓缓吧。。。

A. Blackboard List

思路:如果序列中存在负数那么这个负数一定是原来两个数中的一个(因为两个数相减的绝对值一定为非负数),如果不存在负数则为序列中最大的一个(因为两个数相减的绝对值只会比原来的数小)

  1. #include<iostream>
  2. #include<algorithm>
  3. using namespace std;
  4. int main(){
  5. int T,n,a,nmax,nmin;
  6. cin>>T;
  7. while(T--){
  8. nmax=-0x3f3f3f3f;nmin=0x3f3f3f3f;
  9. cin>>n;
  10. for(int i=1;i<=n;i++){
  11. cin>>a;
  12. nmax=max(nmax,a);
  13. nmin=min(nmin,a);
  14. }
  15. if(nmin<0){
  16. cout<<nmin<<'\n';
  17. }else{
  18. cout<<nmax<<'\n';
  19. }
  20. }
  21. return 0;
  22. }

B. Minimize Permutation Subarrays

思路:其实就是一个转化的问题,将整个序列中的排列最少,就是是排列中只有排列"1”和整个序列,那么将最大的数插到1和2之间即可,所以记录1、2和最大的数的位置,根据他们之间的位置交换即可

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. int T,n,a,d1,d2,dn;
  5. cin>>T;
  6. while(T--){
  7. cin>>n;
  8. for(int i=1;i<=n;i++){
  9. cin>>a;
  10. if(a==1){
  11. d1=i;
  12. }
  13. if(a==2){
  14. d2=i;
  15. }
  16. if(a==n){
  17. dn=i;
  18. }
  19. }
  20. if(dn>d1&&dn>d2){
  21. if(d1>d2){
  22. cout<<d1<<' '<<dn<<'\n';
  23. }else{
  24. cout<<d2<<' '<<dn<<'\n';
  25. }
  26. }else if(dn<d1&&dn<d2){
  27. if(d1<d2){
  28. cout<<d1<<' '<<dn<<'\n';
  29. }else{
  30. cout<<d2<<' '<<dn<<'\n';
  31. }
  32. }else{
  33. cout<<1<<' '<<1<<'\n';
  34. }
  35. }
  36. }

C. No Prime Differences

思路:说白了就是找规律,写几组就可以看出规律,(4≤n,m≤1000) 这个条件挺重要的,n小于3时情况很复杂,开始并没有注意到。。。其实m为质数时可以和m为偶数时同样考虑,并不会有什么问题,按照数字顺序先输出偶数行再输出奇数行即可满足条件(开始时质数合数考虑真的没必要。。。)

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. int T,n,m;
  5. cin>>T;
  6. while(T--){
  7. cin>>n>>m;
  8. for(int i=1;i<n;i+=2){
  9. for(int j=0;j<m;j++){
  10. cout<<i*m+1+j<<' ';
  11. }
  12. cout<<'\n';
  13. }
  14. for(int i=0;i<n;i+=2){
  15. for(int j=0;j<m;j++){
  16. cout<<i*m+1+j<<' ';
  17. }
  18. cout<<'\n';
  19. }
  20. }
  21. return 0;
  22. }

D. Bracket Walk

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/519111
推荐阅读
相关标签
  

闽ICP备14008679号