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; }
时间: 2024-10-27 05:44:54