ltx_zero

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PAT B1032 挖掘机技术哪家强

#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    int score[100005];
    int a,b;
    scanf("%d",&n);
    memset(score,0,sizeof(score));
    int max=0;
    int maxnum=0;
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d",&a,&b);
        score[a]+=b;
        if(score[a]>max)
        {
            max=score[a];
            maxnum=a;
        }
    }
    printf("%d %d",maxnum,max);
    return 0;
}
View Code

《算法笔记》2.2小节——C/C++快速入门->顺序结构

本来打算直接跳过的,顺手做了一下,E题卡了一下,

注意b*b,不要一激动写成b^b或者b^2,那是异或符号!

%7.2f代表,占用7位,小数保留两位

关于字符数组以%s输出的情况,emm如果char前面没赋值,基本就是后面按照默认'\0'来处理的。。

fill函数,fill(arr.begin,arr.end,val)

比如a[1000] fill(a,a+100,2)可以赋值任何数,但是实际被修改的是a[0]-a[99]这100个数哦!没a[100]!

《算法笔记》3.1小节——入门模拟->简单模拟

 A题练一下多输入输出,还有最后0无输出,题意可能不明确,自己多理解

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int road[10005];
int main()
{
    int l,m;
    int left,right;
    while(scanf("%d%d",&l,&m)!=EOF)
    {
        if(l==0 && m==0) return 0;
        fill(road,road+l+1,1);
        int ans=0;
        while(m--)
        {
            scanf("%d%d",&left,&right);
            fill(road+left,road+right+1,0);
        }
        for(int i=0;i<=l;i++)
        {
            if(road[i]==1)
                ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}
View Code

 B题注意false更新,还有长度是不固定的

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int road[10005];
int main()
{
    int a,a1,b,b1;

    while(scanf("%d",&a1)!=EOF)
    {
        bool fub=false,fua=false;
        char c;
        c=getchar();
        if(a1<0)
        {
            fua=true;
            a=-a1;
        }
        else
            a=a1;
        while(c==',')
            {
                a=a*1000;
                scanf("%d",&a1);
                //printf("%d %d a\n",a,a1);
                a=a+a1;
                c=getchar();
            }
        scanf("%d",&b1);
        c=getchar();
        if(b1<0)
        {
            fub=true;
            b=-b1;
        }
        else
            b=b1;
        while(c==',')
        {
            b=b*1000;
            scanf("%d",&b1);
            //printf("%d %d a\n",b,b1);
            b=b+b1;
            c=getchar();
        }
        if(fua) a=-a;
        if(fub) b=-b;
        printf("%d\n",a+b);
    }
    return 0;
}
View Code

 

posted on 2019-07-23 12:30  ltx_zero  阅读(97)  评论(0编辑  收藏  举报