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


    通过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;
    }
  • 相关阅读:
    POJ 1320 Street Numbers(佩尔方程)
    hdu 3292 No more tricks, Mr Nanguo
    佩尔方程
    hdu 4825 xor sum(字典树+位运算)
    Xor Sum 2(位运算)
    数串
    EJS
    JQuery性能优化
    常用正则
    JavaScript prototype继承中的问题
  • 原文地址:https://www.cnblogs.com/zwx7616/p/10889923.html
Copyright © 2020-2023  润新知