zoukankan      html  css  js  c++  java
  • P1067 多项式输出

     P1067 多项式输出 (坑题

      题目描述见洛谷官网:https://www.luogu.org/problemnew/show/P1067

      此题要非常注意细节!!!(坑

      附上我的辣鸡代码

      

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstdio>
     4 #include<cstring>
     5 #include<vector>
     6 using namespace std;
     7 
     8 int main()
     9 {
    10     
    11     int n,temp;
    12     while(scanf("%d",&n)!=EOF){
    13         vector<int> v;
    14         int f=1;
    15         for(int i=0;i<=n;i++){
    16             cin>>temp;
    17             if(temp!=0) f=0;
    18             v.push_back(temp);
    19         }
    20         int l=v.size(),st;
    21         for(int i=0;i<l;i++){
    22             if(v[i]!=0) {
    23                 st=i;
    24                 break;
    25             }
    26             n--;
    27         }
    28         if(v[st]!=0&&v[st]!=1&&v[st]!=-1&&n>1)    printf("%dx^%d",v[st],n);
    29         else if(v[st]!=0&&v[st]!=1&&n==1&&v[st]!=-1) printf("%dx",v[st]);
    30         else if(v[st]==1&&n>1) printf("x^%d",n);
    31         else if(v[st]==1&&n==1) printf("x");
    32         else if(v[st]==-1&&n>1) printf("-x^%d",n);
    33         else if(v[st]==-1&&n==1) printf("-x");
    34         n--;
    35         for(int i=st+1;i<l-1;i++){
    36             if(n>1){
    37                 if(v[i]!=-1&&v[i]!=1&&v[i]!=0&&v[i]>0)    printf("+%dx^%d",v[i],n--);
    38                 else if(v[i]!=-1&&v[i]!=1&&v[i]!=0&&v[i]<0)    printf("%dx^%d",v[i],n--);
    39                 else if(v[i]==1) printf("+x^%d",n--);
    40                 else if(v[i]==-1) printf("-x^%d",n--);
    41                 else if(v[i]==0) --n;
    42             }
    43             else {
    44                 if(v[i]!=-1&&v[i]!=1&&v[i]!=0&&v[i]>0)    printf("+%dx",v[i]);
    45                 else if(v[i]!=-1&&v[i]!=1&&v[i]!=0&&v[i]<0)    printf("%dx",v[i]);
    46                 else if(v[i]==1) printf("+x");
    47                 else if(v[i]==-1) printf("-x");
    48                 else if(v[i]==0) --n;
    49             }
    50         }
    51         if(v[l-1]>0)    printf("+%d\n",v[l-1]);
    52         else if(v[l-1]<0)    printf("%d\n",v[l-1]);
    53         else if(f) printf("0\n");
    54         else printf("\n");
    55     }
    56     
    57     return 0;
    58 }
    辣鸡代码

      下面是几组容易出错的数据(n==2)

    2 2 2
    -2 2 2
    2 -2 2
    2 2 -2
    -2 -2 2
    2 -2 -2
    -2 2 -2
    -2 -2 -2

    0 0 0
    -1 0 0
    0 -1 0
    0 0 -1
    1 0 0
    0 1 0
    0 0 1
    2 0 0
    0 2 0
    0 0 2
    -2 0 0
    0 -2 0
    0 0 -2

    这些数据都过了的话,应该就能AC。

  • 相关阅读:
    37.altium designer中的class和rules?
    36.Altium Designer(Protel)网络连接方式Port和Net Label详解
    35.在PCB中删除元件
    34.pad designer警告
    33.allegro中Autosilk top, Silkscreen top 和Assembly top三个什么区别(转)
    32.DDR2仿真结果
    31.DDR2问题3_waring?
    30.DDR2问题2_local_init_done为什么没拉高?
    29.DDR2问题1仿真模型文件
    lnmp 基础设置
  • 原文地址:https://www.cnblogs.com/lukelmouse/p/9698981.html
Copyright © 2011-2022 走看看