这道题大意就是几个人互送礼物,让你求每个人的盈利。

原题给的样例数据:

5(人的个数。)

=========(下面是人名,输出按照这顺序)
dave
laura
owen
vick
amr

==========(下面是每个人的要给的人)
dave
200 3
laura
owen
vick

----------
owen
500 1
dave

----------
amr
150 2
vick
owen

-----------
laura
0 2
amr
vick

----------
vick
0 0

这题使用模拟算法就行了,就是注意输入的时候不要掉坑里了。

还有就是比如说自己有200快钱给3个人,每个人得到66块,剩下两块自己收,并计入答案。

还有就是想题目里的vick,分给0个人,千万不要除以了0。。对了为了找人名方便,可以把一个人的名字和编号存到一个map容器中,具体在代码里已经有了,就不细说了。

下面是我的程序:

/*
ID:aaabbbr1
LANG:C++
TASK:gift1
*/
#include <stdio.h>
#include <string>
#include <map>
#include <iostream>
using namespace std;
struct person
{
string name;
int gave[10],have,cnt,receive;
person(){have=receive=0;}
}a[10];
map<string,int>link;//这只是方便从人名找到编号而已
void gavemoney(int x)
{
if(a[x].cnt==0)return;//小心除以0了(也就是如果给的人数为0就不给了)
int per=a[x].have/a[x].cnt;//计算每人多少钱
int tot=per*a[x].cnt;//计算一共给多少钱
a[x].receive+=a[x].have-tot;//计算自己的零钱 并汇入收到的钱里面
for(int i=0;i<a[x].cnt;i++)//给钱
a[ a[x].gave[i] ].receive += per;
}
void display(int x)
{
cout << a[x].name << " " << a[x].receive-a[x].have << "\n";
}
int main()
{
freopen("gift1.in","r",stdin);
freopen("gift1.out","w",stdout);
string tmp;
int n,x,t1,t2;
cin >> n;
for(int i=0;i<n;i++)
{
cin >> tmp;
a[i].name=tmp;
link[tmp]=i;
}
for(int i=0;i<n;i++)
{
cin >> tmp;
x=link[tmp];
cin >> t1 >> t2;
a[x].have=t1;
a[x].cnt=t2;
for(int j=0;j<a[x].cnt;j++)
{
cin >> tmp;
a[x].gave[j]=link[tmp];
}
}
for(int i=0;i<n;i++)
gavemoney(i);
for(int i=0;i<n;i++)
display(i);
fclose(stdin);
fclose(stdout);
return 0;
}

USACO 1.1.2 Greedy Gift Givers(gift1)的更多相关文章

  1. USACO Section 1.1-2 Greedy Gift Givers

    Greedy Gift Givers 贪婪的送礼者 对于一群(NP个)要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少. 在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那 ...

  2. usaco training <1.2 Greedy Gift Givers>

    题面 Task 'gift1': Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided t ...

  3. USACO Section 1.1 Greedy Gift Givers 解题报告

    题目 问题描述 有若干个朋友,朋友之间可以选择互相赠送一些有价值的礼物.一个人可以选择将一部分钱分给若干个朋友,例如某人送给其他两个人钱,总共赠送3元,两个人平均分,原本应该是每人1.5元,但是只能取 ...

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

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

  5. Java实现【USACO】1.1.2 贪婪的礼物送礼者 Greedy Gift Givers

    [USACO]1.1.2 贪婪的礼物送礼者 Greedy Gift Givers 题目描述 对于一群要互送礼物的朋友,你要确定每个人送出的礼物比收到的多多少(and vice versa for th ...

  6. USACO . Greedy Gift Givers

    Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts ...

  7. Greedy Gift Givers 贪婪的送礼者 USACO 模拟

    1002: 1.1.2 Greedy Gift Givers 贪婪的送礼者 时间限制: 1 Sec  内存限制: 128 MB提交: 9  解决: 9[提交] [状态] [讨论版] [命题人:外部导入 ...

  8. Section 1.1 Greedy Gift Givers

    Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends hasdecided to exchange gifts o ...

  9. USACO-Greedy Gift Givers(贪婪的送礼者)-Section1.2<2>

    [英文原题] Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange ...

随机推荐

  1. 在IIS下配置自定义的报错页面

    这里介绍在IIS中配置自定义出错页面的方法,主要以404为例,其他状态可类推 1.远程桌面连接IIS所在的服务器,进入控制面板>系统和安全>管理工具,双击打开IIS管理器,选择需要配置的网 ...

  2. vmware全屏后去掉上面的横杠

    全屏后选择查看—>独占模式最上面的杠就没了,而且不按退出快捷键,不会在切换到外面的系统中了.

  3. import gevent 协程 import greenlet

  4. CodeForces 1109C. Sasha and a Patient Friend

    题目简述:维护以下三种操作 1. "1 t s":在时刻$t$插入命令$s$.保证任意操作后,任意时刻至多只有一个命令. 2. "2 t":删除时刻$t$的命令 ...

  5. Ros疑问汇总

    一.机器人描述文件三个: 机器人主体body文件: gazebo属性文件: 主文件 smartcar.urdf: 二.启动文件smartcar_display.rviz.launch:启动节点和模拟器 ...

  6. php get_include_path();是干嘛的、??还有set_include_path();/?????

    首先 我们来看这个全局变量:__FILE__ 它表示文件的完整路径(当然包括文件名在内) 也就是说它根据你文件所在的目录不同,有着不同的值:当然,当它用在包行文件中的时候,它的值是包含的路径: 然后: ...

  7. Maven 导包后,在Maven Dependencies 里面却没有相应的包

    1 问题描述 在1处显示成功,但是在2处却没有相应的包 2 问题原因 查看pom.xml的源码,看你的依赖是否和我的方框中标签是一样的,有的会多出一个  xxxupdate 的标签(我这里给出的是正确 ...

  8. python 删除正在for循环遍历的list正确做法

    先放一个python遍历发生的异常: ls =[1,2,3,4,5,6,7,8,9] for i in ls: print("i",i) print("ls", ...

  9. 数据结构 station

    问题描述 一天,小 L 突然对列车的进出站问题产生了兴趣,如下图所示:列车只能从 A 进站,或从 B 出站.列车从 A 进站,进站顺序为 1, 2, 3, 4, 5列车从 B 出站,出站顺序为 5, ...

  10. java全栈day33--html

    本天要完成6个任务,并且布局静态页面(首页)详细分为六个部分  如下 网站信息页面案例(字体标签.排版标签) 网站图片信息页面案例(图片标签) 网站友情链接页面案例(列表标签) 网站首页案例(表格标签 ...