• [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. JS——scroll动画

      固定导航栏 1.计算导航栏到顶部的距离值 2.当scrollTop值大于这个距离值就添加定位,当小于距离值后解除定位 注意事项:当导航栏添加定位之后,导航栏就脱离了文档流,也就是不占位了,下面的盒子就 ...

    2. 設置VS2015

      減少VsHub的資源占用 VsHub在某些環境下會挂,原因見這個帖子 其作用簡述如下: First, the service that detects and auto-updates extensi ...

    3. Ubuntu用户自定义脚本开机启动

      如果想让自己写的脚本随开机自动执行,可以这样做: 编辑文件/etc/init.d/rc.local,在最后添加用户自定义脚本的完整路径即可. 很简单有木有!!

    4. 06--ubuntu的sqlite安装

      知道学习嵌入式技术,数据库是必须懂的,看的书上嵌入式的教程都在用,看来我是非学不可了,下面就简单的记录一下我在Ubuntu 12.04系统上安装 SQLite 的过程以及使用. 相关阅读: SQLit ...

    5. PHP 之CURL请求封装GET、POST、PUT、DELETE

      /** * @Description: curl请求 * @Author: Yang * @param $url * @param null $data * @param string $method ...

    6. Python 内置函数 day4

      import random s = 'abczfg' st= {3,4,9,1,8} print(dir(random))#打印模块内的方法,输出模块/变量可以调用的方法 print(dir(s))# ...

    7. bootstrap table分页(前后端两种方式实现)

      bootstrap table分页的两种方式: 前端分页:一次性从数据库查询所有的数据,在前端进行分页(数据量小的时候或者逻辑处理不复杂的话可以使用前端分页) 服务器分页:每次只查询当前页面加载所需要 ...

    8. 洛谷——P1757 通天之分组背包

      P1757 通天之分组背包 题目背景 直达通天路·小A历险记第二篇 题目描述 自01背包问世之后,小A对此深感兴趣.一天,小A去远游,却发现他的背包不同于01背包,他的物品大致可分为k组,每组中的物品 ...

    9. 18清明校内测试T1

      消失的数字(number) Time Limit:1000ms   Memory Limit:128MB 题目描述 rsy拥有n个数,这n个数分别是a1,a2,…,an. 后来出现了一个熊孩子zhw, ...

    10. 5.terms搜索多个值以及多值搜索结果优化

      主要知识点 terms搜索多个值,并和term的比较     一.term和terms terms是在这个字段中搜索多个值,相当于sql中的in语法 (select * from tbl where ...