• [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——预解析

      1.排查语法错误 <script> console.log(1; </script> 2.变量提升和函数整体提升 <script> console.log(n1); ...

    2. 剔除重复jar包,查找重复类

      作为程序员,没有遇到过jar包冲突,不是你幸运,就是你还年轻. jar包冲突有着无穷的魔力,一提到就会有说不完的怨愤,道不清的忧伤,这都是内伤.jar 包冲突就像深藏地底的地雷,看上去平常无奇,一切是 ...

    3. 通过offset值的设置使html元素对齐

      今天是我第一次写这个随笔,为了记录我发现的一个jquery的offset的值的问题. 这个offset的值会因为页面标签是否处于隐藏状态而表现出不同的值,隐藏状态时,offset的值是相对于直接父亲的 ...

    4. centOS7创建python虚拟环境

      参考: 非常棒的2篇博客 https://www.centos.bz/2018/05/centos-7-4-%E5%AE%89%E8%A3%85python3%E5%8F%8A%E8%99%9A%E6 ...

    5. CAD在网页中如何得到用户自定义事件的参数?

      主要用到函数说明: _DMxDrawX::CustomEventParam 得到用户自定义事件的参数. js代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

    6. vue移动端地址三级联动组件(二)

      继续上一篇: 子组件css: <style scoped lang="less"> #city { width: 100%; height: 100%; positio ...

    7. colgroup 整行变色

      <table border="2" width="100%"> <colgroup span="2" align=&quo ...

    8. OpenStack命令行工具与API

      Openstack命令行工具 我们推荐Openstack命令行工具和Openstack的Dashboard两者结合使用.一些用户由于使用过其他云技术背景的,可能会使用EC2兼容的API,相对于我们需要 ...

    9. 创建broker配置

      1.准备工作 ■ 创建oracle11g的primary和standby库,物理standby,最大性能模式 ■ DG_BROKER_START设置为TRUE 2.创建broker配置 DGMGRL& ...

    10. 背包again

      Gy最近学习了01背包问题,无聊的他又想到了一个新的问题,给定n个物品的价值,和01背包一样,每个物品只能选1次或0次,求最小不能被得到的价值. 输入 第一行一个正整数T(T <= 100),表 ...