• [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<cstdio>
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    struct node
    {
    int a,b;
    }p[5];
    int cmp(node s1,node s2)
    {
    if(s1.a==s2.a)
    return s1.b>s2.b;
    return s1.a>s2.a;
    }
    int main()
    {
    while(cin>>p[0].a>>p[0].b>>p[1].a>>p[1].b>>p[2].a>>p[2].b)
    {
    int flag=-1;
    int maxx=-1,a=0,b=0;
    for(int i=0;i<3;i++)
    {
    if(p[i].a>maxx||p[i].b>maxx)
    {
    maxx=max(p[i].a,p[i].b);
    flag=i;
    }
    }
    bool f=false;
    int ans=0;
    for(int i=0;i<3;i++)
    {
    if(p[i].a==maxx||p[i].b==maxx)
    ans++;
    if(p[i].a<p[i].b)
    swap(p[i].a,p[i].b);
    }
    if(ans==3)
    {
    int sum=0;
    for(int i=0;i<3;i++)
    if(p[i].a==maxx)
    sum+=p[i].b;
    else
    sum+=p[i].a;
    if(sum==maxx)
    f=true;
    }
    sort(p,p+3,cmp);
    if(p[1].a==p[2].a&&p[1].a+min(p[0].a,p[0].b)==maxx)
    f=true;
    if(p[1].a==p[2].b&&p[1].a+min(p[0].a,p[0].b)==maxx)
    f=true;
    if(p[1].b==p[2].a&&p[1].b+min(p[0].a,p[0].b)==maxx)
    f=true;
    if(p[1].b==p[2].b&&p[1].b+min(p[0].a,p[0].b)==maxx)
    f=true;
    if(f)
    printf("YES\n");
    else
    printf("NO\n");
    }
    return 0;
    }

  • ningbooj--1655--木块拼接(贪心)的更多相关文章

    1. Chocolate&&木块拼接&&Cards&& Wet Shark and Bishops

      B. Chocolate time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

    2. HDOJ 1330 Deck(叠木块-物理题啊!贪心算法用到了一点)

      Problem Description A single playing card can be placed on a table, carefully, so that the short edg ...

    3. leetcode 321. 拼接最大数(单调栈,分治,贪心)

      题目链接 https://leetcode-cn.com/problems/create-maximum-number/ 思路: 心都写碎了.... 也许就是不适合吧.... 你是个好人... cla ...

    4. <算法竞赛入门经典> 第8章 贪心+递归+分治总结

      虽然都是算法基础,不过做了之后还是感觉有长进的,前期基础不打好后面学得很艰难的,现在才慢慢明白这个道理. 闲话少说,上VOJ上的专题训练吧:http://acm.hust.edu.cn/vjudge/ ...

    5. POJ 1065 Wooden Sticks / hdu 1257 最少拦截系统 DP 贪心

      参考链接:http://blog.csdn.net/xiaohuan1991/article/details/6956629 (HDU 1257 解题思路一样就不继续讲解) POJ 1065题意:给你 ...

    6. 【贪心】Codeforces 349B.Color the Fence题解

      题目链接:http://codeforces.com/problemset/problem/349/B 题目大意 小明要从9个数字(1,2,--,9)去除一些数字拼接成一个数字,是的这个数字最大. 但 ...

    7. AtCoder Grand Contest 026 (AGC026) E - Synchronized Subsequence 贪心 动态规划

      原文链接https://www.cnblogs.com/zhouzhendong/p/AGC026E.html 题目传送门 - AGC026E 题意 给定一个长度为 $2n$ 的字符串,包含 $n$ ...

    8. 【bzoj5073】[Lydsy1710月赛]小A的咒语 后缀数组+倍增RMQ+贪心+dp

      题目描述 给出 $A$ 串和 $B$ 串,从 $A$ 串中选出至多 $x$ 个互不重合的段,使得它们按照原顺序拼接后能够得到 $B$ 串.求是否可行.多组数据. $T\le 10$ ,$|A|,|B| ...

    9. 【BZOJ4922】[Lydsy六月月赛]Karp-de-Chant Number 贪心+动态规划

      [BZOJ4922][Lydsy六月月赛]Karp-de-Chant Number Description 卡常数被称为计算机算法竞赛之中最神奇的一类数字,主要特点集中于令人捉摸不透,有时候会让水平很 ...

    随机推荐

    1. webpack 打包后 Uncaught SyntaxError: Unexpected token <

      问题描述:npm run dev 没报错.是可以正常运行的, npm run build 过程也没报错, 但是打开dist   index.html  就报错了  错误内容:       解决方法: ...

    2. html——特例

      1.a标签与a标签之间有3px距离 2.标准流中的文字不会被浮动的盒子遮挡 <div style="width:150px;height:150px;background-color: ...

    3. ABP初始化

      默认认为你手中已经有abp-zero项目,当前4.6.0 angularJS切换到jquery 运行项目,初始化是跳转到~/App/common/views/layout/layout.cshtml, ...

    4. jenkins配置邮件通知

      参考: https://www.cnblogs.com/imyalost/p/8781759.html 谢谢大佬~

    5. CAD直接打印,不出现打印对话框(com接口VB语言)

      主要用到函数说明: MxDrawXCustomFunction::Mx_Print 直接打印,不出现打印对话框,详细说明如下: 参数 说明 double ptLBx 打印的范围左下角x double ...

    6. 基于fpga的256m的SDRAM控制器

      2018/7/26 受教于邓堪文老师,开始真真学习控制sdram 由于自己买的sdram模块是256的,原来老师的是128,所以边学边改,不知道最后好不好使,但是我有信心 一.sdram的初始化 sd ...

    7. (C/C++学习)9.C/C++优化排序

      说明:在C/C++中常见的排序方法有两种,第一种为选择排序法,第二种为冒泡排序法,本文将对这两种排序法进行优化,并给出一种更为快捷的排序法. 一.未优化的排序法 现在假如要对一个数组进行排序,假设这个 ...

    8. Shell脚本备份数据库

      使用crontab 定时备份数据库 1. 编辑crontab 规则,定时执行脚本 2. 在my.cnf 文件中加 [mysqldump] user=root password=密码 3.编写shell ...

    9. Vue.js:使用vue-cli快速构建项目

      vue-cli是什么? vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. vue-cli怎么使用? 安装vue-cli之前,需要先安装了vue和webpack,不知道怎么安 ...

    10. 【Codeforces 429B】Working out

      [链接] 我是链接,点我呀:) [题意] 两个人,一个人在左上角,一个人在左下角. 左上角要到右下角去 左下角要到右上角去 只能走到相邻的格子(不能往回走,即一个往右下,一个往右上走) 要求这两个人必 ...