A 判断一个矩阵是不是X型....注意一点是 对角线和非对角线的元素不能相同
#include <cstdio>
#include <iostream>
#include <cmath>
#include <string>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <stack>
#include <map>
#include <set>
#include <vector>
#include <queue>
#define ll long long
using namespace std;
const int INF = 0x3f3f3f3f;
char s[302][302];
int n;
int main()
{
//freopen("input.txt","r",stdin);
cin>>n;
for(int i=0;i<n;i++)
scanf("%s",s[i]);
char x;
char o;
int ok=1;
x=s[0][0],o=s[0][1];
if(x==o) ok=0;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
if(i==j||i+j==n-1) {if(s[i][j]!=x) ok=0;}
else if(s[i][j]!=o) ok=0;
}
if(ok==1) puts("YES");
else puts("NO");
return 0;
}
边长为a的正方形,左下角坐标是(0,0)
一圈圈的跑,每走d米输出
B题写恶心了,TLE一次- - 感觉B的代码写的非常恶心!!
#include <cstdio>
#include <iostream>
#include <cmath>
#include <string>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <stack>
#include <map>
#include <set>
#include <vector>
#include <queue>
#define ll long long
using namespace std;
const int INF = 0x3f3f3f3f;
double a,d;
int n;
double x,y;
int dir=0;
void simplify()
{
int change=0;
if(dir==0)
{
if(x+d>a)
{
d-=a-x;
x=a,y=0;
dir=(dir+1)%4;
if(d>a)
{
int t=d/a;
dir=(dir+t)%4;
d-=a*t;
change=1;
}
}
else x+=d,d=0;
}
else if(dir==1)
{
if(y+d>a)
{
d-=a-y;
y=a,x=a;
dir=(dir+1)%4;
if(d>a)
{
int t=d/a;
dir=(dir+t)%4;
d-=a*t;
change=1;
}
}
else y+=d,d=0;
}
else if(dir==2)
{
if(x-d<0)
{
d-=x,x=0,y=a,dir=(dir+1)%4;
if(d>a)
{
int t=d/a;
dir=(dir+t)%4;
d-=a*t;
change=1;
}
}
else x-=d,y=a,d=0;
}
else if(dir==3) {
if(y-d<0)
{
d-=y,x=0,y=0,dir=(dir+1)%4;
if(d>a)
{
int t=d/a;
dir=(dir+t)%4;
d-=a*t;
change=1;
}
}
else y-=d,d=0;
}
if(change)
{
switch(dir){
case 0:x=y=0;break;
case 1:x=a,y=0;break;
case 2:x=y=a;break;
case 3:x=0,y=a;break;
}
}
if(d==0&&x>=0&&x<=a&&y>=0&&y<=a){
printf("%.10f %.10f\n",x,y);
return ;
}
simplify();
}
int main()
{
//freopen("input.txt","r",stdin);
cin>>a>>d>>n;
double dd=d;
x=y=0;
while(n--)
{
d=dd;
simplify();
}
return 0;
}
本文探讨了如何判断一个矩阵是否符合特定条件,并通过代码实现了一种路径输出算法。

765

被折叠的 条评论
为什么被折叠?



