hdu 4329

Posted Militant_799

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 4329相关的知识,希望对你有一定的参考价值。

problem:http://acm.hdu.edu.cn/showproblem.php?pid=4329

题意:模拟  a.           

             p(r)=   R\'/i   rel(r)=(1||0)  R是前n次输入有关URL的个数  R\'是后n次已经输入有关URL的个数

              b.

            

另加:输入 istringstream

#include<iostream>  
#include<sstream>        //istringstream 必须包含这个头文件
#include<string>  
using namespace std;  
int main()  
{  
    string str="i an a boy";  
    istringstream is(str);  
    string s;  
    while(is>>s)  
    {  
        cout<<s<<endl;  
    }  
      
} 

#include<iostream>
#include<sstream>
#include<cstring>
#include<cstdio>
#include<map>
#include<algorithm>
using namespace std;
char a[1005];
int r[105];
map<string,int>mp[105];
void init(int k)
{
    istringstream str(a);
    string tmp;
    str>>tmp;
    mp[k].clear();
    while(str>>tmp)
    {
        r[k]++;
        mp[k][tmp]=1;
    }
}
double get_avep(int k)
{
    istringstream str(a);
    string tmp;
    str>>tmp;
    int i=0,R=0;
    double ansn=0.0;
    while(str>>tmp)
    {
        i++;
        if(mp[k][tmp]==1)
        {
            R++;
            ansn+=(R*1.0)/i;
        }
    }
    ansn/=r[k]*1.0;
    return ansn;
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {   memset(r,0,sizeof(r));
        int n,kcas=0;

        cin>>n;
        getchar();

        for(int i=1;i<=n;++i)
        {
              gets(a);
             init(i);
         }
        double ans=0.0;
        for(int i=1;i<=n;++i)
        {
            gets(a);

            ans+=get_avep(i);
        }
        ans/=n;
        cout<<"Case #"<<++kcas<<": ";
        printf("%.6lf\\n",ans);
    }
    return 0;
}

 

以上是关于hdu 4329的主要内容,如果未能解决你的问题,请参考以下文章

HDU4329

HDU 4329 MAP(stringstream的用法)

uvalive4329(树状数组)

LA4329:Ping pong(树状数组)

Luogu_4329 [COCI2006-2007#1] Bond

[UVALive4329] Ping pong(树状数组,组合)