- 温张鑫 的博客
七月day1
- @ 2025-7-15 20:33:06
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;
}