栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1722 Mapmaker

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1722 Mapmaker

#include<iostream>#include<cstring>#include<string>#include<set>#include<stdio.h> using namespace std;enum {    SIZ = 12,};struct Node {    string name;    int base, dim, memsize;    int low[SIZ], high[SIZ], sum[SIZ];    bool operator <(const Node&a)const {        return name < a.name;    }};char buf[SIZ];Node one;int N, R;set<Node> tab;int sub[SIZ];void query(){    scanf("%s", buf);    one.name = buf;    set<Node>::iterator it = tab.find(one);    const Node &o = *it;    printf("%s[", o.name.c_str());    int t = 0;    for (int i=0; i<o.dim; ++i){        scanf("%d", ⊂[i]);        if (i==0){ printf("%d", sub[i]);        } else { printf(", %d", sub[i]);        }        t += (sub[i] - o.low[i]) * o.sum[i];    }    t *= o.memsize; t += o.base;    printf("] = %dn", t);}void fun(){    while(R--){        query();    }}void readNode(){    scanf("%s%d%d%d", buf, &one.base, &one.memsize, &one.dim);    one.name = buf;    for (int i=0; i<one.dim; ++i){        scanf("%d%d", &one.low[i], &one.high[i]);    }    one.sum[one.dim-1] = 1;    for (int i=one.dim-2; i>=0; --i){        one.sum[i] = one.sum[i+1] * (one.high[i+1]-one.low[i+1]+1);    }    tab.insert(one);}int readIn(){    if (scanf("%d%d", &N, &R) < 0) return 0;    tab.clear();    for (int i=0; i<N; ++i){        readNode();    }    return 1;}int main(){    while(readIn() > 0){        fun();    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374500.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号