首页 > HDOJ解题报告 > HDOJ MAP HDU 1029 1075 1263

HDOJ MAP HDU 1029 1075 1263

几道用MAP通过的水体,仅供参考。当然用map可以水过的题目还有很多,以前也做过不少(文章在保留在老博客的数据库中(*^__^*) 嘻嘻……),做太多了也没意义,仅当复习。

HDU1029 Ignatius and the Princess IV http://acm.hdu.edu.cn/showproblem.php?pid=1029 找出现次数最多的数字,此题在内存方面做了限制,所以用数组是不行的。

HDU1075 What Are You Talking About http://acm.hdu.edu.cn/showproblem.php?pid=1075 单词翻译,这类题在POJ上面也有不少。

HDU1263 水果 http://acm.hdu.edu.cn/showproblem.php?pid=1263 两重map(不知道怎么取名字,所以这么写)

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// HDU 1029 MAP
// http://www.programlife.net/
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
 
int main(int argc, char **argv)
{
	//freopen("in.txt", "r", stdin);
	//freopen("out.txt", "w", stdout);
 
	int i, n, tmp;
 
	while (cin >> n)
	{
		map<int, int> m;
		map<int, int>::iterator pos;
 
		tmp = n;
		while (n--)
		{
			cin >> i;
			++m[i];
		}
		n = (tmp + 1) >> 1;
		for (pos = m.begin(); pos != m.end(); ++pos)
		{
			if (pos->second >= n)
			{
				cout << pos->first << endl;
				break;
			}
		}
	}
 
	return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// HDU 1075 MAP
// http://www.programlife.net/
#include <iostream>
#include <string>
#include <map>
using namespace std;
 
int main()
{
	// freopen("in.txt", "r", stdin);
	// freopen("out.txt", "w", stdout);
 
	map<string, string> dic;
	map<string, string>::iterator pos;
	string a, b;
 
	cin >> a;
	while (true)
	{
		cin >> a;
		if (a == "END") break;
		cin >> b;
		dic.insert(make_pair(b, a));
	}
 
	getline(cin, a);	// filter '\n'
	getline(cin, a);	// read "START\n"
	while (true) 
	{
		getline(cin, a);
		if (a == "END") break;
		string::size_type i, len;
		len = a.size();
		b = "";
		for (i = 0; i < len; ++i)
		{
			if (isalpha(a[i]))
			{
				b += a[i];
				continue;
			}
			pos = dic.find(b);
			if (pos != dic.end())
				cout << pos->second;
			else
				cout << b;
			cout << a[i];
			b = "";
		}
		cout << endl;
	}
 
	return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// HDU 1263 MAP
// http://www.programlife.net/
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
using namespace std;
 
int main()
{
	//freopen("in.txt", "r", stdin);
	//freopen("out.txt", "w", stdout);
 
	typedef map<string, map<string, int> > Node;
	int n, m, num;
	string name, addr;
 
	cin >> n;
	while (n--)
	{
		Node node;
		Node::iterator pos;
 
		cin >> m;
		while (m--)
		{
			cin >> name >> addr >> num;
			(node[addr])[name] += num;
		}
 
		for (pos = node.begin(); pos != node.end(); ++pos)
		{
			cout << pos->first << endl;		// guangdong
			for (map<string, int>::iterator mpos = (pos->second).begin();
				mpos != (pos->second).end();
				++mpos
			)
			{
				cout << "   |----" << mpos->first << "(" 
					 << mpos->second << ")" << endl;
			}
		}
 
		if (n > 0)
			cout << endl;
	}
 
	return 0;
}

觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> HDOJ MAP HDU 1029 1075 1263
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



分类: HDOJ解题报告 标签: , , ,
  1. 本文目前尚无任何评论.