您的位置:首页 > 其它

第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛(下)

2018-03-26 21:40 316 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐