`

【水题】USACO Greedy Gift Givers

阅读更多
进入USACO要注册才可看题: http://train.usaco.org/usacogate

题目:【翻译版、是别处的网站】http://www.wzoi.org/usaco/11%5C106.asp

SAMPLE INPUT (file gift1.in)
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

SAMPLE OUTPUT (file gift1.out)
dave 302
laura 66
owen -359
vick 141
amr -150


多重for循环嵌套了相同变量……纠结了好久  无奈///Orz...
……暴力解题……水题不多说……


/*
ID: 1006100071
PROG: friday
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <set>
//#include <map>
#include <queue>
#include <utility>
#include <iomanip>
#include <stack>
#include <list>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <ctype.h>
using namespace std;

struct person{
	char name[20];
	int give, receive;
}x[15];

int main()
{
	/*freopen ("friday.in", "r", stdin);
	freopen ("friday.out", "w", stdout);*/
	int n, i, j, mon, t, k;
	char name[20];
	scanf ("%d", &n);
	for (i = 0; i < n; i++)
		scanf ("%s", x[i].name);
	for (i = 0; i < n; i++)
	{
		scanf ("%s", name);
		scanf ("%d%d", &mon, &t);
		if (!mon)
		{
			for (j = 0; j < t; j++)
				scanf ("%s", name);
			continue;
		}
		if (!t)
		{
			x[j].receive += mon;
			continue;
		}
		for (j = 0; j < n; j++)
			if (!strcmp (name, x[j].name))
				break;
		x[j].give += mon;
		x[j].receive += mon % t;
		for (j = 0; j < t; j++)
		{
			scanf ("%s", name);
			for (k = 0; k < n; k++)
				if (!strcmp (name, x[k].name))
					break;
			//cout << "----------" <<  mon / t << endl;
			x[k].receive += mon / t;
		}
	}
	for (i = 0; i < n; i++)
		printf ("%s %d\n", x[i].name, x[i].receive - x[i].give);
	return 0;
}
0
1
分享到:
评论

相关推荐

    USACO-Greedy-Gift-Givers.rar_greedy gift givers

    在"Greedy Gift Givers"这个题目中,我们面对的是一个贪心算法的应用问题。贪心算法是一种解决问题的策略,它在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的。...

    USACO官网93题fps格式 OJ题库

    2 [1.1] 贪婪的送礼者Greedy Gift Givers 3 [1.1] 黑色星期五Friday the Thirteenth 4 [1.1] 坏掉的项链 Broken Necklace 5 [1.2] 命名那个数字 Name That Number 6 [1.2] 挤牛奶Milking Cows 7 [1.2] 方块转换 ...

    USACO所有题目题解

    本文主要解析其中三个题目:“Your Ride Is Here (ride)”,“Greedy Gift Givers (gift1)”,以及“Friday the Thirteenth (friday)”。 1. **Your Ride Is Here (ride)**: 这是一个相对简单的问题,属于"ad hoc...

    1_your ride is here_usaco_TheAnswer_YourRideisHere_

    在提供的压缩包文件名称列表中,我们看到多个源代码文件,如 "1_your ride is here - 副本.py" 和 "2_greedy gift givers.cpp",这些文件很可能是不同参赛者或解题者提交的代码。Python 文件可能对应于 "Your Ride ...

    USACO英汉对照题目

    1.1.1 "Your Ride Is Here" 和 "Greedy Gift Givers" 可能涉及到基本的数据结构和贪心算法。 1.1.3 "Friday the Thirteenth" 可能需要理解日期和时间处理,以及可能的数学计算。 1.1.4 "Broken Necklace" 可能涉及...

    USACO题解(NOCOW整理版)1

    具体包括了几个不同难度级别的问题,如“Your Ride Is Here”,“Greedy Gift Givers”,“Friday the Thirteenth”和“Broken Necklace”。每个问题的解析都提供了算法思想和解决方案,有的通过简单的数学计算,有...

    USACO题解(NOCOW整理版).doc

    Chapter 1 Section 1.1 Greedy Gift Givers (gift1) 这道题的难度相当于联赛第一题。使用数组 incom 和 outcom 记录每个人的收入和支出,对于送礼人 i,找到他要送给的人 j,inc(incom[j],outcom[i] div n),其中 n...

    USACO(Train)解题报告.doc

    ### Chapter 1 Section 1.2 - Greedy Gift Givers (gift1) 该题目的难度与联赛第一题相当,要求计算每个人在分发礼物后的盈余。通过使用数组`incom`和`outcom`分别记录每个人的收入和支出,并利用哈希表优化,可以...

    usaco题目的副本1

    在"Greedy Gift Givers"这个题目中,可能需要使用哈希表来统计礼物的分布情况,或者在"Broken Necklace"题目中,利用哈希表记录不同颜色的珠子的数量。 2. **Python内置函数`ord()`和`chr()`**:`ord()`函数用于...

    USACO全部题目

    #### Greedy Gift Givers 该题目涉及到贪心策略的应用,要求编写程序来模拟一个送礼物的过程,并计算出每个参与者最终送出礼物的总价值。贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的...

    第1章总结1

    1.1节中的题目主要是模拟问题,例如"Your Ride Is Here"和"Greedy Gift Givers",通过模拟操作实现算法。同时,"Friday the Thirteenth"题目引入了模运算,"Broken Necklace"则涉及到数组的使用。 接着,1.2节重点...

Global site tag (gtag.js) - Google Analytics