T1 矩阵转置

题意:把A矩阵转置为B矩阵

思路:将A矩阵按要求转置 使用vector动态数组

代码:

#include<bits/stdc++.h>//格式
using namespace std;
int main()
{
	int  H,W;
	cin>> H >> W;//输入行数H,列数W
	vector<vector<int>> A(H,vector<int>(W));解释A矩阵的元素
	for(int i = 0;i<H;++i)
	{
		for(int j = 0;j<W;++j)
		{
			cin>> A[i][j];//输入A[i][j],即B[j][i]
		}
	}
	for(int j = 0;j < W;++j)
	{
		for(int i = 0;i < H;++i){
			cout<< A[i][j];//输出A[i][j]
			if(i < H-1) cout<< " ";
		}
		cout<< endl;
	}
	return 0;
}

T2 chess960

题意:一个长度为八的字符串,S中包含一个K和一个𝑄,以两个𝑅、𝐵和𝑁。判断𝑆是否满足所有条件

思路:1.知道每个字母在字符串中的位置 2.确认条件是否符合要求 3.输出结果 字符串

代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    cin >> s;
    int a1,a2,r1,r2,k,b=0,r=0;
    for(int i = 0;i < 8;i++){//字符长度为8 
        if(s[i] == 'B' && b == 0) a1 = i,b = 1;
        else if(s[i] == 'B') a2 = i;
        if(s[i] == 'R'&& r== 0) r1 = i,r = 1;
        else if(s[i] == 'R') r2 = i;
        if(s[i] == 'K') k = i;
    }
    if(a1 % 2 != a2 % 2 && r1 < k && k < r2) cout << "Yes";
    else cout << "No";
}

T3 我喜欢因式分解

题意:找出一对(A,B),如果有多对,找一对即可。

思路:先确认A,B数量,再进行推算,最后得出结果 暴力枚举 A,B值区间(-200,200)。

代码:

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

int main()
{
	int X;
	
	cin>> X;//输入X
	for(int A = -200;A<=200;A++)
	{//确认A的值
		for(int B = -200;B<=200;B++){
		//确认B的值
			if(A*A*A*A*A - B*B*B*B*B == X)
			{
				cout<< A <<" " << B;//输出结果
				return 0;
			}	
		}
	}
	return 0;
}