洛谷Oj-[USACO1.1]贪婪的送礼者-模拟
来源:互联网 发布:win10 linux安装教程 编辑:程序博客网 时间:2024/05/21 11:37
问题描述:
对于一群(NP个)要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少。在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人。然而,在任何一群朋友中,有些人将送出较多的礼物(可能是因为有较多的朋友),有些人有准备了较多的钱。给出一群朋友,没有人的名字会长于 14 字符,给出每个人将花在送礼上的钱,和将收到他的礼物的人的列表,请确定每个人收到的比送出的钱多的数目。
AC代码:
struct people//人{ string name;//名字 int in;//获得 int out;//送出};people p[20];map<string,int> m;//注意map<string,people> m;是错误的。我们的目的是通过映射,在结构体数组p中快速找到具有对应姓名的人的编号int main(){ int np;//人数 cin >> np; for(int i = 1; i <= np; ++i) { cin >> p[i].name; m[p[i].name] = i;//映射 } for(int i = 1; i <= np; ++i) { string t;//姓名 cin >> t; int sum,num;//拥有的钱和送礼的对象数 cin >> sum >> num; if(num == 0)//如果为0 { p[m[t]].out = 0.0;//一分钱都没送出去 continue; } if(sum % num == 0)//如果能整除 p[m[t]].out = sum; else//不能整除 p[m[t]].out = sum - sum % num;//余数自己留着 for(int i = 1; i <= num; ++i) { string f;//送礼的对象 cin >> f; p[m[f]].in += sum / num;//收入增加 } } for(int i = 1; i <= np; ++i)//输出答案 { cout << p[i].name; printf(" %d\n",p[i].in - p[i].out); } return 0;}
解决方法:
题目中虽然要求是平均分配,但是如果无法整除的话,就将剩余的钱自己留着。
这也是符合实际生活的,没有谁会送给朋友66.666666元的东西,所以不要使用浮点数
注意除0会导致程序崩溃,一定要对0进行特判
映射在很多题目中是很有用的,map容器的O(lgn)查找会比线性扫快很多
阅读全文
0 0
- 洛谷Oj-[USACO1.1]贪婪的送礼者-模拟
- 【模拟】洛谷 P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers
- [USACO1.1]贪婪的送礼者Greedy Gift Givers
- P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers
- USACO1.1 贪婪的送礼者+MAP+VECTOR使用
- 【C++】【USACO1.1.2】贪婪的送礼者
- USACO1.1.2 贪婪的送礼者
- 洛谷 P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers
- 为什么?为什么?为什么WA啊!洛谷 [USACO1.1]贪婪的送礼者{已AC}
- 洛谷 1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers
- 洛谷P1201[USACO1.1]贪婪的送礼者Greedy Gift Givers
- 洛谷P1201[USACO1.1]贪婪的送礼者Greedy Gift Givers
- usaco1.1.2 Greedy Gift Givers 贪婪的送礼者
- USACO1.1.2 Greedy Gift Givers(贪婪的礼物送礼者)
- USACO1.1.2 Greedy Gift Givers 贪婪的送礼者
- 【USACO1.1_2】★Greedy Gift Givers 贪婪的礼物送礼者
- 贪婪的送礼者
- USACO 1.1 贪婪的礼物送礼者(模拟)
- oracle 错误汇总大全 数据库笔记
- leetcode-4. Median of Two Sorted Arrays
- lib.so.6软链接被删除的恢复问题
- Java泛型
- IntentService解析与使用
- 洛谷Oj-[USACO1.1]贪婪的送礼者-模拟
- Qt 学习之路 2(25):画刷和画笔
- 在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
- mysql报ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must
- 深入解读缓存(二)——一致性Hash算法
- ASP 使用 Request.ServerVariables(HTTP_REFERER) 方法获取请求页面地址的注意事项
- JMS(一):JMS基础;一个JMS例子
- 一文入门百度天工IOT平台
- python-多态、类属性、类方法、静态方法、异常