游游拿到了一个字符矩阵,她想知道有多少个三角形满足以下条件: 1. 三角形的三个顶点分别是 y、o、u 字符。 2. 三角形为直角三角形,且两个直角边一个为水平、另一个为垂直。

区块链毕设网qklbishe.com为您提供问题的解答

游游拿到了一个字符矩阵,她想知道有多少个三角形满足以下条件:
1. 三角形的三个顶点分别是 y、o、u 字符。
2. 三角形为直角三角形,且两个直角边一个为水平、另一个为垂直。

#include <bits/stdc++.h>
using namespace std;

typedef long long int64 ;

void print(vector<vector<char>> tu){
    int m=tu.size(),n=tu[0].size();
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            cout<<tu[i][j]<<‘ ‘;
        }
        cout<<endl;
    }
}

void print(vector<vector<int>> tu){
    int m=tu.size(),n=tu[0].size();
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            cout<<tu[i][j]<<‘ ‘;
        }
        cout<<endl;
    }
}

int main() {
    int m,n;
    cin>>m>>n;
    vector<vector<char>> tu(m,vector<char>(n));
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            cin>>tu[i][j];
        }
    }
    
    vector<vector<int>> hang(m,vector<int> (3));
    vector<vector<int>> lie(n,vector<int> (3));
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            char t=tu[i][j];
            if(t==’y’){
                hang[i][0]++;
                lie[j][0]++;
            }
            if(t==’o’){
                hang[i][1]++;
                lie[j][1]++;
            }
            if(t==’u’){
                hang[i][2]++;
                lie[j][2]++;
            }
        }
    }
    // print(hang);
    // cout<<endl;
    // print(lie);
    // cout<<endl;
    int64 res=0;
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            
            char t=tu[i][j];
            if(t==’y’){
                int hango=hang[i][1];
                int hangu=hang[i][2];
                int lieo=lie[j][1];
                int lieu=lie[j][2];
                res+=hango*lieu;
                res+=hangu*lieo;
            }
            if(t==’o’){
                int hangy=hang[i][0];
                int hangu=hang[i][2];
                int liey=lie[j][0];
                int lieu=lie[j][2];
                res+=hangy*lieu+hangu*liey;
            }
            if(t==’u’){
                int hangy=hang[i][0];
                int hango=hang[i][1];
                int liey=lie[j][0];
                int lieo=lie[j][1];
                res+=hangy*lieo+hango*liey;
            }
            // cout<<i<<‘ ‘<<j<<‘ ‘<<res<<endl;
        }
    }
    cout<< res;

}

// 64 位输出请用 printf("%lld")

25:43

以上就是关于问题游游拿到了一个字符矩阵,她想知道有多少个三角形满足以下条件:
1. 三角形的三个顶点分别是 y、o、u 字符。
2. 三角形为直角三角形,且两个直角边一个为水平、另一个为垂直。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 游游拿到了一个字符矩阵,她想知道有多少个三角形满足以下条件: 1. 三角形的三个顶点分别是 y、o、u 字符。 2. 三角形为直角三角形,且两个直角边一个为水平、另一个为垂直。