首页 > 代码库 > 1-22

1-22

前一段基本是做一天题目就休息一天到两天,假期里状态不大好,还感冒了几天...

     乙级1010 

  技术分享

    

技术分享代码
 1 #include<cstdio>
 2 const int maxn=1010;
 3 int main()
 4 {
 5     int n,e,a[maxn]={0},count=0;//n系数,e指数
 6     while(scanf("%d%d",&n,&e)!=EOF)
 7     {
 8         a[e]=n;
 9     }
10     a[0]=0;
11     for(int i=1;i<=1000;i++)
12     {
13         a[i-1]=a[i]*i;
14         if(a[i]!=0)
15             count++;
16     }
17     if(count==0)
18         printf("0 0");
19     else
20     {
21         for(int i=1000;i>=0;i--)
22         {
23             if(a[i]!=0)
24             {
25                 printf("%d %d",a[i],i);
26                 count--;
27                 if(count!=0)
28                     printf(" ");
29             }
30         }
31     }
32 
33     return 0;
34 }

   初次接触枚举,省去了许多麻烦

   甲级1002

    技术分享

    题意:每个测试用例有两行,每行第一个数字表示多项式中非零项的个数,后面是先指数后系数的规律,最后输出多项式相加,格式和输入相同

    思路:要注意到系数用double型,用一个数组表示系数和指数的关系

    

技术分享
 1 #include<cstdio>
 2 const int maxn=1111;
 3 double p[maxn]={};
 4 int main()
 5 {
 6     int k,n,count=0;
 7     double a;
 8     scanf("%d",&k);
 9     for(int i=0;i<k;i++)
10     {
11         scanf("%d %lf",&n,&a);
12         p[n]+=a;
13     }
14     scanf("%d",&k);
15     for(int i=0;i<k;i++)
16     {
17         scanf("%d %lf",&n,&a);
18         p[n]+=a;
19     }
20     for(int i=0;i<maxn;i++)
21     {
22         if(p[i]!=0)
23             count++;
24     }
25     printf("%d",count);
26     for(int i=maxn-1;i>=0;i--)
27     {
28         if(p[i]!=0)
29             printf(" %d %.1f",i,p[i]);
30     }
31     return 0;
32 }
甲级1002

    

    

1-22