Title

UVA11340 Newspaper 题解

题目大意

本题共有 N 组测试数据。对于每组测试数据,首先一行读入一个整数 K,表示付费字符的数量,接下来 K 行每行一个字符和一个整数,表示该字符的价格,单位为美分,一美元为一百美分。接下来一个整数 M,表示文章的行数,接下来有 M 行字符串,构成一篇文章,请你算出整篇文章的价格,其价格为所有字符的价格之和,没有标明价格的字符均为 0 美分。

解题思路

一道简单的模拟题,直接根据题意模拟即可。

我们开一个大小为 256 的浮点类型的数组,用来存储每种字符的价格,每组数据时都要清空为 0,然后读入 M 行,直接依次计算价格并相加即可。

AC 代码

#include<math.h>
#include<stdio.h>
#include<iostream>
double cost[256];
inline void work(){
    for(register int i=0;i<128;++i)
        cost[i]=0.0;
    int k;scanf("%d",&k);
    char c;double val;
    for(register int i=1;i<=k;++i){
        std::cin>>c;
        scanf("%lf",&val);
        cost[c]=val/100.0;
    }int m;scanf("%d",&m);int cnt=0;
    c=getchar();double ans=0.0;
    while(c=='\n') c=getchar();
    while(cnt<m){
        ans+=cost[c];
        c=getchar();
        while(c=='\n'){
            cnt++;
            if(cnt==m) break;
            c=getchar();
        }
    }printf("%.2lf$\n",ans);
}
signed main(){
    int T;scanf("%d",&T);
    while(T--) work(); 
}
posted @   UncleSam_Died  阅读(1)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示