G 旋转矩阵
比赛最后写完了,但是空行处理错误
#include<stdio.h>
#include<string>
#include<math.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=35;
char mapp[maxn][maxn];
int n,m;
int t;
void l1()
{
for(int j=m-1; j>=0; j--)
{
for(int i=0; i<n; i++)
{
if(mapp[i][j]=='|')
{
printf("-");
}
else if(mapp[i][j]=='-')
{
printf("|");
}
else
printf("%c",mapp[i][j]);
}
printf("\n");
}
}
void l2()
{
for(int i=n-1; i>=0; i--)
{
for(int j=m-1; j>=0; j--)
{
printf("%c",mapp[i][j]);
}
printf("\n");
}
}
void l3()
{
for(int j=0; j<m; j++)
{
for(int i=n-1; i>=0; i--)
{
if(mapp[i][j]=='|')
{
printf("-");
}
else if(mapp[i][j]=='-')
{
printf("|");
}
else
printf("%c",mapp[i][j]);
}
printf("\n");
}
}
void r1()
{
for(int j=0; j<m; j++)
{
for(int i=n-1; i>=0; i--)
{
if(mapp[i][j]=='|')
{
printf("-");
}
else if(mapp[i][j]=='-')
{
printf("|");
}
else
printf("%c",mapp[i][j]);
}
printf("\n");
}
}
void r2()
{
for(int i=n-1; i>=0; i--)
{
for(int j=m-1; j>=0; j--)
{
printf("%c",mapp[i][j]);
}
printf("\n");
}
}
void r3()
{
for(int j=m-1; j>=0; j--)
{
for(int i=0; i<n; i++)
{
if(mapp[i][j]=='|')
{
printf("-");
}
else if(mapp[i][j]=='-')
{
printf("|");
}
else
printf("%c",mapp[i][j]);
}
printf("\n");
}
}
int main()
{
scanf("%d",&t);
//int gg=0;
while(t--)
{
//gg++;
scanf("%d%d",&n,&m);
for(int i=0; i<n; i++)
scanf("%s",&mapp[i]);
string s;
cin>>s;
int ans1=0,ans2=0;
for(int i=0; i<s.size(); i++)
{
if(s[i]=='L')
{
ans1++;
}
else
{
ans2++;
}
}
//printf("%d %d\n",ans1,ans2);
if(ans1==ans2)
{
printf("%d %d\n",n,m);
for(int i=0; i<n; i++)
{
printf("%s\n",mapp[i]);
//if(i!=n-1)
//printf("\n");
}
printf("\n");
}
else if(ans1>ans2)
{
int k=(ans1-ans2)%4;
if(k==1)
{
printf("%d %d\n",m,n);
l1();
printf("\n");
}
else if(k==2)
{
printf("%d %d\n",n,m);
l2();
printf("\n");
}
else if(k==3)
{
printf("%d %d\n",m,n);
l3();
printf("\n");
}
else
{
printf("%d %d\n",n,m);
for(int i=0; i<n; i++)
{
printf("%s",mapp[i]);
//if(i!=n-1)
printf("\n");
}
printf("\n");
}
}
else
{
int k=(ans2-ans1)%4;
if(k==1)
{
printf("%d %d\n",m,n);
r1();
printf("\n");
}
else if(k==2)
{
printf("%d %d\n",n,m);
r2();
printf("\n");
}
else if(k==3)
{
printf("%d %d\n",m,n);
r3();
printf("\n");
}
else
{
printf("%d %d\n",n,m);
for(int i=0; i<n; i++)
{
printf("%s",mapp[i]);
//if(i!=n-1)
printf("\n");
}
printf("\n");
}
}
}
return 0;
}
I 填空题
#include<stdio.h>
int main()
{
printf("ac");
return 0;
}
J 强迫症的序列
卡了一小时发现n-1个数+1就是一个数+1,这么简单的反面效应竟然没看出来
#include<stdio.h>
#include<algorithm>
using namespace std;
const int maxn=100005;
int n;
//int ans2;
//int solve(int a[],int ans)
//{
for(int i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
// sort(a,a+n);
// if(a[0]==a[n-1])
// {
// printf("%d %d\n",ans,ans+a[0]);
// }
// else
// {
// a[n-1]-=1;
// solve(a,++ans);
// }
//}
int a[maxn];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
sort(a,a+n);
int ans=0;
for(int i=1;i<n;i++)
{
ans+=(a[i]-a[0]);
}
printf("%d %d\n",ans,ans+a[0]);
//ans2=a[n-1];
//solve(a,0);
//printf("%d\n",solve(a,0));
}
return 0;
}
K 密码
小模拟,简单
#include<stdio.h>
#include<string>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=100005;
char a[maxn];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
scanf("%s",a+1);
if(n==1)
{
printf("%s\n",a+1);
continue;
}
int len=strlen(a+1);
//printf("%d\n",len);
int k=(n-1)*2;
int sum=k;
for(int i=1; i<=n; i++)
{
//int j=i;
//int kk=k;
int flag=1;
for(int j=i; j<=len;)
{
//printf("%d",j);
printf("%c",a[j]);
if(i==1||i==n)
{
j+=sum;
}
else
{
if(flag%2) j+=k;
else j+=(sum-k);
}
flag++;
}
k-=2;
}
printf("\n");
}
return 0;
}
L 用来作弊的药水
#include<stdio.h>
#include<algorithm>
using namespace std;
#define LL long long
const LL mod=1e9+7;
LL solve(LL a,LL b)
{
LL ans=1;
while(b)
{
if(b&1)
ans=ans*a%mod;
a=a*a%mod;
b>>=1;
//printf("%lld ",ans);
}
//printf("%lld\n",ans);
return ans;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
LL x,a,y,b;
scanf("%lld%lld%lld%lld",&x,&a,&y,&b);
if(solve(x,a)==solve(y,b))
{
printf("Yes\n");
}
else
printf("No\n");
}
return 0;
}