NBUT 1655-木块拼接【模拟】

  • [1655] 木块拼接

  • 时间限制: 1000 ms 内存限制: 65535 K
  • 问题描述
  • 好奇的skyv95想要做一个正方形的木块,现在有三种颜色的矩形木块,颜色分别为"A","B","C"。他现在很想把三个木块拼接成一个大正方形,现在求助于你们,问分别给你们三种颜色矩形的两个边长,判断是否能组成一个正方形。
  • 输入
  • 依次输入颜色为A的矩形的两边长度,颜色为B的矩形的两边长度,颜色为C的矩形的两边长度。
  • 输出
  • 可以输出"YES",否则输出"NO"。
  • 样例输入
  • 4 4 2 6 4 2
  • 样例输出
  • YES
  • 提示
  • 例子的图像可以是这样
    6
    BBBBBB
    BBBBBB
    AAAACC
    AAAACC
    AAAACC
    AAAACC
  • 来源
  • By&Recoder
  •  
    #include <stdio.h> #include<string.h> #include<algorithm> using namespace std; struct node { int x,l; }num[100]; bool cmp(node xx,node yy) { return xx.x>yy.x; } bool vis[100]; int main() { int dp[50]; int i ; int max ; int l1,r1,l2,r2,l3,r3; while(scanf("%d%d%d%d%d%d",&l1,&r1,&l2,&r2,&l3,&r3)!=EOF) { int yyyy=0; memset(vis,false,sizeof(vis)); int ji=1; for(int i=0;i<6;i+=2) { num[i].l=num[i+1].l=ji++; } num[0].x=l1,num[1].x=r1,num[2].x=l2,num[3].x=r2,num[4].x=l3,num[5].x=r3 ; sort(num,num+6,cmp); max=num[0].x; if(num[0].x==num[1].x&&num[1].x==num[2].x) { if(num[0].l!=num[1].l&&num[0].l!=num[2].l&&num[2].l!=num[1].l) { if(num[0].x==(num[3].x+num[4].x+num[5].x)) { printf("YES\n"); yyyy=1; continue; } } } else { int wc; int i,j,k,oo; max=num[0].x; vis[num[0].l]=true; for(i=1;i<6;i++) { if(num[0].l==num[i].l) { wc=num[i].x; } } int cha; cha=max-wc; int nm; for(i=0;i<6;i++) { if(cha==num[i].x&&!vis[num[i].l]) { vis[num[i].l]=true; for(j=0;j<6;j++) { if(j!=i&&num[i].l==num[j].l) { nm=max-num[j].x; for(k=0;k<6;k++) { if(!vis[num[k].l]&&num[k].x==nm) { for(oo=0;oo<6;oo++) { if(oo!=k&&num[oo].l==num[k].l&&cha==num[oo].x) { printf("YES\n"); yyyy=1; } if(yyyy==1) break; } } if(yyyy==1) break; } } if(yyyy==1) break; } vis[num[i].l]=false; } if(yyyy==1) break; } } if(yyyy==0) printf("NO\n"); } return 0; } 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值