首页 > 其他 > 详细

B、小花梨的三角形(解题报告)

时间:2019-05-19 17:38:15      阅读:50      评论:0      收藏:0      [点我收藏+]

技术分享图片

通过set进行标记(思想很简单,实现起来有点容易错)set(红黑树:效率高)

思路:

对行列和长度进行枚举;

对三个顶点进行排序

储存顶点后计数输出

#include<iostream>
#include<set>
#include<algorithm>
#include<string>
using namespace std;
char a[103][102];
int n;
char b[5];
set<string>s;
int main ()
{
    cin>>n;
    n++;
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<n-1;i++)
        for(int j=0;j<=i;j++)
    {
        for(int t=1;t<=n-1-i;t++)
        {
            b[0]=a[i][j];
            b[1]=a[i+t][j];
            b[2]=a[i+t][j+t];
            sort(b,b+3);
            s.insert(b);
        }
    }
    for(int i=1;i<n-1;i++)
        for(int j=1;j<=i;j++)
    {
        for(int t=1;t<=min(j,n-i-1);t++)
        {
            b[0]=a[i][j];
            b[1]=a[i][j-t];
            b[2]=a[i+t][j];
            sort(b,b+3);
            s.insert(b);
        }
    }
    //set<string>::iterator it;
    //for(it=s.begin();it!=s.end();it++)
     //   cout<<*it<<endl;
    cout<<s.size();
    return 0;
}

 

B、小花梨的三角形(解题报告)

原文:https://www.cnblogs.com/zwx7616/p/10889923.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!