首页 > 其他 > 详细

hihoCoder #1577872 话题分析

时间:2020-06-09 09:30:39      阅读:57      评论:0      收藏:0      [点我收藏+]

话题分析

提交网站:https://hihocoder.com/problemset/problem/1981

时间限制:5000ms

单点时限:1000ms

内存限制:256MB


描述
 

Hi需要分析一篇文章同哪些话题相关。他预设了M个话题,其中第i个话题包含Ci个关键词。

这些关键词每在文章中出现一次,文章在对应的话题上的"得分"就会加1 

Hi想知道这篇文章在每个话题上的得分是多少。

输入

第一行包含一个整数M 

第二行包含M个整数C1, C2, ... CM 

以下M行,第i行包含Ci个单词,代表第i个话题的关键词。每个单词都只包含小写字母,单词之间用空格隔开。  

最后一行包含一个字符串,代表文章。字符串只包含小写字母组成的单词和空格。

1 <= M <= 10 1 <= Ci <= 100

输入中出现的所有单词长度不超过20,不同的话题不会包含相同的关键词。  

注意一个关键词作为一个单独的单词在文章中才被视为"出现"一次。 比如"ball"不被视为在"we play football"中出现。

输出

输出M行,每行一个整数。第i行代表文章在第i个话题上的"得分"

 

样例输入

2  

3 3

sunny rain cloudy

xbox dota rpg

play xbox dota rpg rain

样例输出

1

3

代码如下:

#include<stdio.h>
#include<string.h>
int main()
{
  int n;
  scanf("%d",&n);
  int num[n],i,j,p,k,accum[n],l=0;
  char data[n][101][21],map[101][21];
  for(i=0;i<n;i++)
  scanf("%d",&num[i]);
  for(i=0;i<n;i++)
    for(j=0;j<num[i];j++)
      scanf("%s",data[i][j]);
  getchar();
  int flag=1;
  for(p=0;p<100;p++)
  {
    char temp[21];
    for(i=0;i<=20;i++)
    {
      scanf("%c",&temp[i]);
      if(temp[i]==‘ ‘)
        break;
      else if(temp[i]==‘\n‘)
      {
        flag=0;
        break;
      }
    }
    strcpy(map[p],temp);
    map[p][i]=‘\0‘;
    if(flag==0)break;
  }
  for(i=0;i<n;i++)
  {
    l=0;
    for(j=0;j<num[i];j++)
    {
      for(k=0;k<=p;k++)
      {
        if(strcmp(data[i][j],map[k])==0)
        l++;
      }
    }
    accum[i]=l;
  }
  for(i=0;i<n;i++)
  printf("%d\n",accum[i]);
  return 0;
}

  

 

hihoCoder #1577872 话题分析

原文:https://www.cnblogs.com/yunners/p/13070468.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!