这个题目有点绕,但是按着他的意思写不难模拟出来。本来是一场学弟们的训练赛,我这个学长在赛场上却WA了四次都没过,三条黑线就一直在我的脑袋上挂着。。。

  赛后开始找原因,后来发现题目看错了,1/R中的R是指原先URL的个数。

  改过来发现还是过不了,想到了自己的输入处理可能是有问题的,既然自己模拟容易出错,那就使用了stringstream,自动提取单词,成功AC。

  意外的发现stringstream的功能十分强大,但是因为速度比较慢,用处比较少,所以也不怎么用,这个哥们写的不错,感兴趣可以去看看哦。

  具体注释在代码里~

#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<sstream>
using namespace std;
#define N 110
#define M 10005
int rel[N];
char a[M];
map<string,int>mp[N];
void Init(int k)
{
istringstream str(a);///istringstream是一个类,str为它的一个对象
///这里使用构造函数接受一个字符串
string tmp;
int tot = ;
str >> tmp; ///提取一个单词,空格用于区分单词,不可能被提取到单词中
///其实如果自己模拟出错,应该就是把空格提到了单词中
mp[k].clear();
while(str >> tmp){///怎么样,是不是很短,很方便呢~
tot++;
mp[k][tmp] = ;
}
rel[k] = tot;
}
double Get_AveP(int k)
{
istringstream str(a);
string tmp;
int i = ,R = ;
double res = ;
str >> tmp;
while(str >> tmp){
++i;
if(mp[k][tmp] == )
{
R++;
res += R*1.0/i;
}
}
return res/rel[k];
}
int main()
{
// freopen("G.in.cpp","r",stdin);
int t,n,ca=;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
getchar();
for(int i = ; i <= n; i++)
{
gets(a);
Init(i);
}
double MAP = 0.0;
for(int i = ; i <= n; i++)
{
gets(a);
MAP += Get_AveP(i);
}
MAP /= n;
printf("Case #%d: %.6lf\n",++ca,MAP);
}
return ;
}

HDU 4329 MAP(stringstream的用法)的更多相关文章

  1. HDU1004 Let the Balloon Rise(map的简单用法)

    Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...

  2. map的详细用法

     map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时 ...

  3. STL——map/unordered_map基础用法

    map /multimap map是STL里重要容器之一. 它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key,  ...

  4. ES6中map和set用法

    ES6中map和set用法 --转载自廖雪峰的官方网站 一.map Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Arra ...

  5. map的详细用法 (转

    map的详细用法: map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能 力,由于这个特性,它完成有可能在我 ...

  6. C++ stringstream的用法

    Created at    stringstream的用法 使用stringstream对象简化类型转换 C++标准库中的<sstream>提供了比ANSI C的<stdio.h&g ...

  7. map的常见用法

    map的常见用法 map 是什么? map是一组键值对的组合,通俗理解类似一种特殊的数组,a[key]=val,只不过数组元素的下标是任意一种类型,而且数组的元素的值也是任意一种类型.有点类似pyth ...

  8. hdu 4941 stl的map<node,int>用法

    #include<iostream> #include<cstdio> #include<cstring> #include<map> using na ...

  9. hdu 4329

    problem:http://acm.hdu.edu.cn/showproblem.php?pid=4329 题意:模拟  a.     p(r)=   R'/i   rel(r)=(1||0)  R ...

随机推荐

  1. iOS 最新App提交上架流程及部分问题的解决方案2016.12.21,感谢原博主!!!

    内容摘自http://www.cocoachina.com/bbs/3g/read.php?tid=330302,原博特别详细,下面我对部分地方进行了修改,主要是对在打包验证和上传的时候遇到的问题进行 ...

  2. Unity属性(Attributes)

    Unity3d中的属性(Attributes) Attributes属性属于U3D的RunTimeClass,所以加上以下的命名空间是必须的了. using UnityEngine; using Sy ...

  3. 怎样成为PHP 方向的一个合格的架构师(转)

    突然看到这篇文章, 值得反省, 乐在其中, 在接下来的发展中不被淘汰的都来看看, 如何成为一个架构师先明确这里所指的PHP工程师,是指主要以PHP进行Web系统的开发,没有使用其的语言工作过.工作经验 ...

  4. iOS 加载本地 HTML 文件 CSS 样式图片无效果

    在开发的过程中,有时候需要加载一些 HTML 页面,对于不太复杂的界面,基本上都可以放到本地用 UIWebview 来加载,但是在开发过程中会碰到 UIWebview 加载出来的 HTML 页面没有图 ...

  5. pageoffice razor pageofficelink方式调用js实现操作文档

    用官方的开发者帮助文档即可,在后台实例化时一定要将pageofficecontrol控件的id属性定义,然后在前台通过定义的id属性来调用相应的方法

  6. win10十周年更新后cent os 虚拟机无法连接到xshell

    1.在vmware中打开编辑-->虚拟网络编辑器-->还原默认设置

  7. notepad++正则表达式替换字符串详解

    正则表达式是一个查询的字符串,它包含一般的字符和一些特殊的字符,特殊字符可以扩展查找字符串的能力,正则表达式在查找和替换字符串的作用不可忽视,它 能很好提高工作效率. EditPlus的查找,替换,文 ...

  8. 二十四、oracle pl/sql 变量

    一.变量介绍在编写pl/sql程序时,可以定义变量和常量:在pl/sql程序中包括有:1).标量类型(scalar)2).复合类型(composite) --用于操作单条记录3).参照类型(refer ...

  9. Linux下SVN的简单配置

    1.安装svn sudo yum install subversion 2.查看是否安装成功 svnserve --version 3.创建svn目录 svnadmin create 目录名 例如:s ...

  10. C/C++中整数与浮点数在内存中的表示方式

    在C/C++中数字类型主要有整数与浮点数两种类型,在32位机器中整型占4字节,浮点数分为float,double两种类型,其中float占4字节,而double占8字节.下面来说明它们在内存中的具体表 ...