[USACO] Section1.1 Greedy Gift Givers[线性时间查找]
来源:互联网 发布:mysql server 5.5安装 编辑:程序博客网 时间:2024/05/24 00:36
2017-5-23
题目大意:
对于一群(NP个)(2<=NP<=10)要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少。 在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人。 然而,在任何一群朋友中,有些人将送出较多的礼物(可能是因为有较多的朋友),有些人有准备了较多的钱。 给出一群朋友,没有人的名字会长于 14 字符,给出每个人将花在送礼上的钱,和将收到他的礼物的人的列表, 请确定每个人收到的比送出的钱多的数目。
样例输入:
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
样例输出:
dave 302
laura 66
owen -359
vick 141
amr -150
题解:
这个题目因为数据量小,而且我也不懂数据结构,就用的线性时间查找,时间是够的,但是一直忽略了被除数不能为 0 的问题,所以好长时间没有AC。该长点心眼了。
学长讲了个map和 C11 hash 两种方法,听的也不是太明白。可能是有点蠢。。。
http://blog.csdn.net/yoer77/article/details/72568920学长的博客以供参考。
代码:
C++/*ID:mujinui1PROG:gift1LANG:C++*/#include<iostream>#include<fstream>#include<cstring> using namespace std;int main(){ ofstream fout ("gift1.out"); ifstream fin ("gift1.in"); string s[10]; string s1,s2; int a[10]; int n,i,j,k,mo,num,ave; memset(a,0,sizeof(a)); fin>>n; for(i=0;i<n;i++){ fin>>s[i]; } for(i=0;i<n;i++){ fin>>s1>>mo>>num; if(num!=0){ for(j=0;s1!=s[j];j++); ave=mo/num; a[j]=a[j]-num*ave; for(k=0;k<num;k++){ fin>>s2; for(j=0;s2!=s[j];j++); a[j]+=ave; } } if(num==0){ **//防止被除数为0** for(j=0;s1!=s[j];j++); a[j]=a[j]; }} for(i=0;i<n;i++){ fout<<s[i]<<' '<<a[i]<<endl; } return 0;}
阅读全文
0 0
- [USACO] Section1.1 Greedy Gift Givers[线性时间查找]
- USACO-Section1.1 Greedy Gift Givers【查找】
- USACO Section1.1 Greedy Gift Givers
- USACO-Section1.1 Greedy Gift Givers
- USACO-Section1.1 Greedy Gift Givers
- USACO-Section1.1 Greedy Gift Givers
- USACO-Section1.1 Greedy Gift Givers[...]
- USACO Section1.1 Greedy Gift Givers
- USACO-Section1.1 Greedy Gift Givers [hash表]
- USCAO-Section1.1 Greedy Gift Givers
- Greedy Gift Givers(USACO)
- usaco--Greedy Gift Givers
- [USACO] Greedy Gift Givers
- USACO-----Greedy Gift Givers
- USACO | Greedy Gift Givers
- USACO->Greedy Gift Givers
- usaco 1-1-2 Greedy Gift Givers
- USACO-cha1-sec1.1 Greedy Gift Givers
- java编程积累
- 机器学习(周志华)_第十一章 特征选择与稀疏学习
- 2627 村村通 (最小生成树)
- 解决g++编译添加参数"支持C++11标准"的问题
- 使用 RMAN DUPLICATE...FROM ACTIVE DATABASE 创建物理备用数据库(文档 ID 1526160.1)
- [USACO] Section1.1 Greedy Gift Givers[线性时间查找]
- 404页面是什么?怎么做404页面
- 编程练习(第十四周)
- JAVA高级工程师课程笔记整理——(六)网页三剑客
- 配置 Pycharm 默认 Test runner 的方法
- 关于Java中尾递归的优化
- 项目部署环境的问题 Errors occurred during the build
- Linux/Android——input子系统核心 (三)
- 常用数据库知识(一)