2022牛客多校第六场
G Icon Design
思路:
n为5的小模拟,我是按规律输出的。
代码:
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
scanf("%d",&n);
for(int i=1;i<=13*n+19;i++) cout<<'*';
cout<<endl;
for(int i=1;i<=n;i++){
cout<<'*';
for(int j=1;j<=13*n+17;j++) cout<<'.';
cout<<'*';
cout<<endl;
}
for(int i=1;i<=2*n+3;i++){
cout<<'*';
for(int j=1;j<=n+1;j++) cout<<'.';
cout<<'@';
for(int j=2;j<=2*n+2;j++){
if(j==i) cout<<'@';
else cout<<'.';
}
cout<<'@';
for(int j=1;j<=n+1;j++) cout<<'.';
cout<<'@';
for(int j=1;j<=2*n+2;j++){
if(i==1||i==n+2) cout<<'@';
else cout<<'.';
}
for(int j=1;j<=n+1;j++) cout<<'.';
cout<<'@';
for(int j=1;j<=2*n+2;j++){
if(i==2*n+3) cout<<'@';
else cout<<'.';
}
for(int j=1;j<=n+1;j++) cout<<'.';
if(i<=n+2||i==2*n+3) cout<<'@';
else cout<<'.';
for(int j=1;j<=2*n+1;j++){
if(i==1||i==n+2||i==2*n+3) cout<<'@';
else cout<<'.';
}
if(i==1||i>=n+2) cout<<'@';
else cout<<'.';
for(int j=1;j<=n+1;j++) cout<<'.';
cout<<'*';
cout<<endl;
}
for(int i=1;i<=n;i++){
cout<<'*';
for(int j=1;j<=13*n+17;j++) cout<<'.';
cout<<'*';
cout<<endl;
}
for(int i=1;i<=13*n+19;i++) cout<<'*';
}
J Number Game
题意:
给出初始数a,b,c,可通过不限次数的操作,判断c能否变成给出的数x。
1、b=a-b
2、c=b-c,
思路: 两次相同操作是抵消的作用,所以可以将两种操作看作对c或b-c进行任意次数的加减。
注意对负数取模时要加一个模数。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll t,a,b,c,x;
int main(){
scanf("%lld",&t);
while(t--){
scanf("%lld%lld%lld%lld",&a,&b,&c,&x);
if(a-2*b==0) {
if(c==x||b-c==x) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
else {
ll d=(x%abs(a-2*b)+abs(a-2*b))%abs(a-2*b);
c=(c%abs(a-2*b)+abs(a-2*b))%abs(a-2*b);
ll y=((b-c)%abs(a-2*b)+abs(a-2*b))%abs(a-2*b);
if(c==d||y==d) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}
}