zoukankan      html  css  js  c++  java
  • 算法与数据结构第八次作业——散列表

    数据结构 散列表7.12 三角形游戏

    ★实验任务

    给定n个三角形,用a,b,c表示三角形的三条边(三角形可能有重复)。之后有m次询问,每次询问一个三角形在给定的n个三角形中出现的次数。

    ★数据输入

    第一行为n,之后n行,每行有a,b,c三个数字表示三角形的三条边;接下来一行为m,之后有m行询问,每行有a,b,c三个数字,表示要询问的三角形的三边。 数据保证a,b,c为正整数且可以构成一个三角形,且a,b,c不一定有序 对于40%的数据,n<=100,m<=100,a,b,c<=100 对于70%的数据,n<=1000,m<=1000,a,b,c<=1000 对于100%的数据,n<=5,000,m<=100,000,a,b,c<=999999

    ★数据输出

    对于每次询问,输出此三角形在之前给定的n个三角形中出现的次数

    输入示例

    3
    2 2 3
    3 3 4
    2 3 2
    3
    2 3 2
    3 3 4
    1 1 1
    

    输出示例

    2
    1
    0
    

    ★提示 整数Hash、字符串Hash

    #include<iostream>
    #include<algorithm>
    using namespace std;
    class triangle
    {
    public:
    	int l[3];
    public:
    	triangle(){}
    	triangle(int a, int b, int c)
    	{
    		l[0] = a;
    		l[1] = b;
    		l[2] = c;
    		sort(l, l + 3);
    	}
    	bool IsSame(triangle b)
    	{
    		bool flag = true;
    		for (int i = 0; i < 3; i++)
    		{
    			if (l[i] != b.l[i])
    			{
    				flag = false;
    				break;
    			}
    		}
    		return flag;
    	}
    };
    int main()
    {
    	int n;
    	int a, b, c;
    	cin >> n;
    	triangle* t = new triangle[n];
    	for (int i = 0; i < n; i++)
    	{
    		cin >> a >> b >> c;
    		t[i] = triangle(a, b, c);
    	}
    	int m;
    	cin >> m;
    	triangle t2;
    	int sum;
    	for (int i = 0; i < m; i++)
    	{
    		sum = 0;
    		cin >> a >> b >> c;
    		t2 = triangle(a, b, c);
    		for (int j = i; j < n; j++)
    		{
    			if (t2.IsSame(t[j]))
    			{
    				sum++;
    			}
    		}
    		cout << sum <<endl;
    	}
    }
    
  • 相关阅读:
    JSTLView快速国际化(SpringMVC)
    SprngMVC源码学习
    请求数据传入(SpringMVC)
    @ModelAttribute注解(SpringMVC)
    SpringMVC-RESTRUL___CRUD知识点总结
    SpringMVC视图解析器概述
    Spring
    英文单词
    关于陌生的依赖模块,如withStyles、react-apollo等
    React项目中那些奇怪的写法
  • 原文地址:https://www.cnblogs.com/wangmou-233-1024-com/p/13922392.html
Copyright © 2011-2022 走看看