. • 2年前
使用模拟算法(模拟算法即按照题目所描述的方式运行,最终得到答案。) 需要使用合适的数据结构来进行模拟 题目分析:按题目的要求使用模拟算法,可以使用结构体来贮存,还可以用STL的map,要注意除数为0的情况 AC代码
using namespace std;
map<string,int>ans;
int main() {
int n,money;
cin>>n;
string name[15],s,Friend;
for(int i=1;i<=n;i++)
cin>>name[i];
for(int i=1,num;i<=n;i++)
{
cin>>s>>money>>num;
for(int j=1;j<=num;j++)
{
cin>>Friend;
ans[Friend]+=money/num;
}
if(num!=0)
ans[s]=ans[s]-money+money%num;
}
for(int i=1;i<=n;i++)
cout<<name[i]<<' '<<ans[name[i]]<<endl;
return 0;
} //过不了就是你复制错了,我AC了
评论:
请注意发代码的格式,正确的格式应如下:
#include <bits/stdc++.h>
using namespace std;
map<string,int>ans;
int main() {
int n,money;
cin>>n;
string name[15],s,Friend;
for(int i=1;i<=n;i++)
cin>>name[i];
for(int i=1,num;i<=n;i++)
{
cin>>s>>money>>num;
for(int j=1;j<=num;j++)
{
cin>>Friend;
ans[Friend]+=money/num;
}
if(num!=0)
ans[s]=ans[s]-money+money%num;
}
for(int i=1;i<=n;i++)
cout<<name[i]<<' '<<ans[name[i]]<<endl;
return 0;
}