牛客第六场题解

G Icon Design 

输出图标"NFLS"

#include<bits/stdc++.h>
using namespace std;
template <typename tn>void read(tn &n){
    tn f=1,t=0;char ch=getchar();
    while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
    while (isdigit(ch)) t=t*10+ch-'0',ch=getchar();
    n=f*t;
}
inline void out(int x){
	if(x>9)out(x/10);
	putchar(x%10+'0');
}
int n;
int main(){
	read(n);
	if(n==1){
		cout<<"********************************"<<endl;
		cout<<"*..............................*"<<endl;
		cout<<"*..@...@..@@@@@..@......@@@@@..*"<<endl;
		cout<<"*..@@..@..@......@......@......*"<<endl;
		cout<<"*..@.@.@..@@@@@..@......@@@@@..*"<<endl;
		cout<<"*..@..@@..@......@..........@..*"<<endl;
		cout<<"*..@...@..@......@@@@@..@@@@@..*"<<endl;
		cout<<"*..............................*"<<endl;
		cout<<"********************************"<<endl; 
	}
	if(n==2){
		cout<<"*********************************************"<<endl;
		cout<<"*...........................................*"<<endl;
		cout<<"*...........................................*"<<endl;
		cout<<"*...@.....@...@@@@@@@...@.........@@@@@@@...*"<<endl;
		cout<<"*...@@....@...@.........@.........@.........*"<<endl;
		cout<<"*...@.@...@...@.........@.........@.........*"<<endl;
		cout<<"*...@..@..@...@@@@@@@...@.........@@@@@@@...*"<<endl;
		cout<<"*...@...@.@...@.........@...............@...*"<<endl;
		cout<<"*...@....@@...@.........@...............@...*"<<endl;
		cout<<"*...@.....@...@.........@@@@@@@...@@@@@@@...*"<<endl;
		cout<<"*...........................................*"<<endl;
		cout<<"*...........................................*"<<endl;
		cout<<"*********************************************"<<endl;	
	}
	if(n==3){
		cout<<"**********************************************************"<<endl;
		cout<<"*........................................................*"<<endl;
		cout<<"*........................................................*"<<endl;
		cout<<"*........................................................*"<<endl;
		cout<<"*....@.......@....@@@@@@@@@....@............@@@@@@@@@....*"<<endl;
		cout<<"*....@@......@....@............@............@............*"<<endl;
		cout<<"*....@.@.....@....@............@............@............*"<<endl;
		cout<<"*....@..@....@....@............@............@............*"<<endl;
		cout<<"*....@...@...@....@@@@@@@@@....@............@@@@@@@@@....*"<<endl;
		cout<<"*....@....@..@....@............@....................@....*"<<endl;
		cout<<"*....@.....@.@....@............@....................@....*"<<endl;
		cout<<"*....@......@@....@............@....................@....*"<<endl;
		cout<<"*....@.......@....@............@@@@@@@@@....@@@@@@@@@....*"<<endl;
		cout<<"*........................................................*"<<endl;
		cout<<"*........................................................*"<<endl;
		cout<<"*........................................................*"<<endl;
		cout<<"**********************************************************"<<endl;
	}
	if(n==4){
		cout<<"***********************************************************************\n";
        cout<<"*.....................................................................*\n";
        cout<<"*.....................................................................*\n";
        cout<<"*.....................................................................*\n";
        cout<<"*.....................................................................*\n";
        cout<<"*.....@.........@.....@@@@@@@@@@@.....@...............@@@@@@@@@@@.....*\n";
        cout<<"*.....@@........@.....@...............@...............@...............*\n";
        cout<<"*.....@.@.......@.....@...............@...............@...............*\n";
        cout<<"*.....@..@......@.....@...............@...............@...............*\n";
        cout<<"*.....@...@.....@.....@...............@...............@...............*\n";
        cout<<"*.....@....@....@.....@@@@@@@@@@@.....@...............@@@@@@@@@@@.....*\n";
        cout<<"*.....@.....@...@.....@...............@.........................@.....*\n";
        cout<<"*.....@......@..@.....@...............@.........................@.....*\n";
        cout<<"*.....@.......@.@.....@...............@.........................@.....*\n";
        cout<<"*.....@........@@.....@...............@.........................@.....*\n";
        cout<<"*.....@.........@.....@...............@@@@@@@@@@@.....@@@@@@@@@@@.....*\n";
        cout<<"*.....................................................................*\n";
        cout<<"*.....................................................................*\n";
        cout<<"*.....................................................................*\n";
        cout<<"*.....................................................................*\n";
        cout<<"***********************************************************************\n";
	}
	if(n==5){
		cout << "************************************************************************************\n";
		cout << "*..................................................................................*\n";
		cout << "*..................................................................................*\n";
		cout << "*..................................................................................*\n";
		cout << "*..................................................................................*\n";
		cout << "*..................................................................................*\n";
		cout << "*......@...........@......@@@@@@@@@@@@@......@..................@@@@@@@@@@@@@......*\n";
		cout << "*......@@..........@......@..................@..................@..................*\n";
		cout << "*......@.@.........@......@..................@..................@..................*\n";
		cout << "*......@..@........@......@..................@..................@..................*\n";
		cout << "*......@...@.......@......@..................@..................@..................*\n";
		cout << "*......@....@......@......@..................@..................@..................*\n";
		cout << "*......@.....@.....@......@@@@@@@@@@@@@......@..................@@@@@@@@@@@@@......*\n";
		cout << "*......@......@....@......@..................@..............................@......*\n";
		cout << "*......@.......@...@......@..................@..............................@......*\n";
		cout << "*......@........@..@......@..................@..............................@......*\n";
		cout << "*......@.........@.@......@..................@..............................@......*\n";
		cout << "*......@..........@@......@..................@..............................@......*\n";
		cout << "*......@...........@......@..................@@@@@@@@@@@@@......@@@@@@@@@@@@@......*\n";
		cout << "*..................................................................................*\n";
		cout << "*..................................................................................*\n";
		cout << "*..................................................................................*\n";
		cout << "*..................................................................................*\n";
		cout << "*..................................................................................*\n";
		cout << "************************************************************************************\n";
	}
	return 0;
}

J Number Game

给定A,B,C和目标值x,可以进行任意次赋值,使B=A−B或者C=B−C 。求是否可以使c变为x 。

​ B存在B与A-B两种情况,即为B1和B2。由分析可知,C要轮流减去B1和B2,否则会重复。列式子,并化简。当B1=B2时要特判。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int INF=0x3f3f3f3f;
const int mod=1e9+7;
const int N=4e4+10,M=5e5+5;

int n,m,k;
ll a,b,c,x;

int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int T; cin>>T;
	while(T--) {
        cin>>a>>b>>c>>x;
        ll b1=b,b2=a-b;
        ll t=abs(b1-b2);
        if(b1==b2) {
            if(c==x||b-c==x) {
                cout<<"Yes\n";
            } else {
                cout<<"No\n";
            }
            continue;
        }
        if((x-c)%t==0) {
            cout<<"Yes\n"; continue;
        }
        if((x-(b2-c))%t==0) {
            //printf("%lld %lld\n",(x-(b2-c)),t);
            cout<<"Yes\n"; continue;
        }
        if((x-(b1-c))%t==0) {
            cout<<"Yes\n"; continue;
        }
        cout<<"No\n";
	}
	return 0;
}

B Eezie and Pie

给定一棵有根树,根是结点1,城市中有n(1≤n≤2×10^6) 个结点,每个结点上有一个饼屋。每个饼屋将饼往根结点传递(传递的点包括自己),最大传递距离为di。计算每个结点收到多少个饼。
​树上差分。一段简单路径上的节点值都加一,只用让两边端点加一,减一。用倍增求某一节点的k级父节点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值