USACO 1.1 Greedy Gift Givers

本文介绍了一个模拟编程题的解决思路及代码实现。该题目通过模拟的方式处理一系列输入输出操作,并利用HASH来解决当N增大时的问题。文章给出了完整的C++代码示例。

[报告]

   模拟吧!

   这个样例几乎包含了所有可能会发生的错误。

   只要A了样例,也就A了这题。

   如果N增大,则需要用HASH。

[程序]


#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#define N 10
using namespace std;
ifstream fin ("gift1.in");
ofstream fout ("gift1.out");
class person
{
      public:
             string name;
             long in,out;
             inline person()
             {
                    in=out=0;
                    name="";
             }
};
long n;
person p[N+1];
inline long found(string aa)
{
    //   cout << "Found " << aa << "  ";
       for (long i=1;i<=n;i++)
           if (p[i].name==aa)
           {
    //          cout << i << endl;
              return i;
           }
  //     cout << " Can't" << endl;
       return -1;
}
inline void init()
{
       fin >> n;
       for (long i=1;i<=n;i++)
           fin >> p[i].name;
       for (long i=1;i<=n;i++)
       {
           string a;
           fin >> a;
           long k=found(a),m;
  

转载于:https://www.cnblogs.com/klarkxy/archive/2009/12/11/10017185.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值