这道题如果按照一般的思路来写的话,要有反复的去确定发钱的人名对应的是第几个人。所以决定采用map键值对应的方法去写。
map键值对应:
这里先写用到的有点,以后还会有所补充。参考:
http://blog.csdn.net/flqbestboy/article/details/8184484
注意: map<string,int>以及键值对的赋值,和用迭代器读取键值对(或直接读取操作)。
代码如下:

/*
ID:m1519591
PROG: gift1
LANG:C++

*/

#include<iostream>
#include<fstream>
#include<string>
#include<map>using namespace std;
int main()
{ofstream fout("gift1.out");ifstream fin("gift1.in");int n;map<string ,int>name;string name0;fin>>n;for(int i=0;i<=n-1;i++){fin>>name0;name[name0]=0;//此人对应的钱数  开始是0 }int fro,peo,val=0;  //发的钱数,人数  没人得到的钱数。 for(int i=0;i<=n-1;i++){fin>>name0>>fro>>peo;if(peo){val=fro/peo;name[name0]-=(val*peo); }for(int j=0;j<=peo-1;j++){fin>>name0;name[name0]+=val;}}map<string,int>::const_iterator it; //用迭代器的方法读出 map键值对中的每个元素值。for(it=name.begin();it!=name.end();it++){string na=(*it).first;int mo=(*it).second;fout<<na<<":"<<mo<<endl;} return 0;
}

但这个代码的输出结果和提示输出结果的顺序不一致。 错误。这个实际上是map的进行了自动排序。可以找一下有没有可以按照输入顺序输出的键值对,这里先留住问题,以后再继续。那么我用了一个string数组专门来储存name。代码如下:

#include<iostream>
#include<fstream>
#include<string>
#include<map>using namespace std;
const int size = 10;
int main()
{ofstream fout("gift1.out");ifstream fin("gift1.in");int n;string str[size];map<string ,int>name;string name0;fin>>n;for(int i=0;i<=n-1;i++){fin>>name0;str[i]=name0;name[name0]=0;//此人对应的钱数  开始是0 }int fro,peo,val=0;  //发的钱数,人数  没人得到的钱数。 for(int i=0;i<=n-1;i++){fin>>name0>>fro>>peo;if(peo){val=fro/peo;name[name0]-=(val*peo); }for(int j=0;j<=peo-1;j++){fin>>name0;name[name0]+=val;}}//  hash_map<string,int>::const_iterator it;
//  //用迭代器的方法读出 map键值对中的每个元素值。
//  for(it=name.begin();it!=name.end();it++)
//  {//      string na=(*it).first;
//      int mo=(*it).second;
//      cout<<na<<":"<<mo<<endl;
//   } for(int i=0;i<=n-1;i++){fout<<str[i]<<" "<<name[str[i]]<<endl;}return 0;
}

这里吐槽一句,USACO的提交系统真是想搞事情。

USACO之Section 1.1.2 PROB Greedy Gift Givers相关推荐

  1. USACO Training Section 1.1 贪婪的送礼者Greedy Gift Givers

    P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers 题目描述 对于一群(NP个)要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少.在这一个问题中,每个人都准备了一 ...

  2. USACO题解——Section 1.2——Greedy Gift Givers

    题目地址:https://train.usaco.org/usacoprob2?a=BGOMbIJsisd&S=gift1. 或者我的OJ网站,http://47.110.135.197/pr ...

  3. 贪婪的送礼者Greedy Gift Givers [USACO 1.2]

    贪婪的送礼者Greedy Gift Givers [USACO 1.2]题目描述: 有一群(N个)要互送礼物的朋友,现在要确定每个人送出的钱比收到的钱多多少.每个人都准备了一些钱来送礼物,而这些钱将会 ...

  4. Greedy Gift Givers

    原题地址 Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange g ...

  5. [USACO1.1]贪婪的送礼者Greedy Gift Givers

    题目描述 对于一群(NP个)要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少.在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人.然而,在任何一群朋友中 ...

  6. USACO Section 1.2 Greedy Gift Givers (简单查找)

    2018-3-25 changed 题目大意就是说我们要互相 " 送钱 " ,一共NP个人,指定某一个人将sum这么多的钱分给num个人,那么这些人每个人多了sum/num,送钱的 ...

  7. USACO1.1.2 - Greedy Gift Givers

    贪婪礼品送货员 一组NP(2≤NP≤10)唯一命名的朋友决定交换礼物的钱.这些朋友中的每一个可能或可能不会给任何或所有其他朋友一些钱.同样,每个朋友可能或可能不从任何或所有其他朋友接收钱.你在这个问题 ...

  8. USACO Training Section 1.2 双重回文数 Dual Palindrom

    题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做"回文数".例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就 ...

  9. USACO Training Section 1.1 坏掉的项链Broken Necklace

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  10. USACO Training Section 1.1 Your Ride Is Here

    题目描述 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支持者.因此,他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走 ...

最新文章

  1. 凶猛的飞禽 超跑奥迪
  2. php for 写入多行数据库,php – MYSQL意外插入多行
  3. 开发自定义JSF组件(4) 保存状态与恢复状态
  4. ActiveMQ的消息存储(八)
  5. android n-ify miui,MIUI7.5版刷机包
  6. Java旧版不断发展
  7. 苹果x计算机按键有声音吗,iPhoneX拍照总有声音怎么办?拨动静音键即可关闭拍照声!...
  8. c# 结构体 4字节对齐_C语言程序员们常说的“内存对齐”,究竟有什么目的?
  9. 直入灵魂的Python教学:《看动漫学Python》让学习不再枯燥
  10. php 单例 重连,PHP单例模式详解
  11. luogu P2765 魔术球问题 (最小路径覆盖)
  12. 关于SQL的重复记录问题
  13. python中字符串转元组时的小技巧
  14. 首届InterSystems Idea创意马拉松
  15. 美图秀秀各插件适用场景
  16. matlab无限长一维原子链,固体物理 03-03一维双原子链
  17. python爬取天猫_Python爬取天猫商品数据
  18. redis存取数据流
  19. 聚焦云上安全,2021首届-西部云安全峰会将在西安召开
  20. 世界上最远的距离 --- 泰戈尔的诗

热门文章

  1. 操作系统基础(八)快表和多级页表
  2. requires that an attribute name is preceded by whitespace异常
  3. C# WebService 远程服务器返回错误:(500)内部服务器错误
  4. react之通俗易懂配置less
  5. 06-Python类和对象
  6. 纯CSS简单实现漂亮的timeline时间轴效果(样式1)
  7. emacs常用配置-Hippie-expand自动补全
  8. node.js之async的使用(series,whilst)
  9. springboot集成Swagger3.0
  10. 2022华为机试社招OD高频考试真题【9, 10月份Q2, Q3考试新编程题目】