nyoj845无主之地1

来源:互联网 发布:dnf提示框源码 编辑:程序博客网 时间:2024/05/01 23:32

这道题看起来相当简单,但是做起来并不是那么容易AC,我错了好多遍,主要是没理解清题意,先前以为要排序,所以搞个桶排序,谁知道原是不需要排序,按照顺序将其输出即可,既然·这样的话,那么我就再开一个flag数组,然后就再记录下来这些数字,类似于用数组模拟链表一样,这样就简单多了,这个题虽然耗费了时间,但是我对于数组模拟链表的理解更深刻了。

描述    子晓最近在玩无主之地1,他对这个游戏的评价不错,结合了FPS与RPG元素,可玩度很高。不过,他发现了一代的任务系统做的不好,任务系统并没有帮他统计清楚哪个区域有多少任务,而且,给任务的时候呢,也比较散乱。比如,在1区域的一个任务点,你领到了4个任务;2区域的一个任务点,你领到了3个任务;游戏一段时间后,你又在1区域另一个任务点个领到了3任务(之前任务没有完成),3区域领到了9个任务……他感觉很凌乱,现在他要设计一个程序来统计每个区域有多少个任务。输入    多组测试数据,以输入0 0结束    每组数据占一行,输入m区域,n个任务(0<m,n<100)输出    输出各个区域的统计结果(不要求排序)样例输入    1 3    2 3    3 4    1 7    0 0样例输出    1 10    2 3    3 4
#include<iostream>#include<cstring>using namespace std;int main(){    int a,b;    int book[101];    int flag[101];    int top=0;    memset(flag,0,sizeof(flag));    memset(book,0,sizeof(book));    while(cin>>a>>b){        int f=0;        if(a==0&&b==0)break;        for(int i=0;i<top;i++){            if(a==flag[i]){            book[flag[i]]+=b;            f=1;            }        }        if(f==1)continue;        flag[top++]=a;        book[flag[top-1]]+=b;    }    for(int i=0;i<top;i++){        cout<<flag[i]<<" "<<book[flag[i]]<<endl;    }    return 0;}

每天进步一点点,时刻不忘初心;

原创粉丝点击