zoukankan      html  css  js  c++  java
  • Codeforces Gym100971 G.Repair-思维题(切矩形板子) (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)

    这个题就是一块大板子,问你能不能切成两块要求的长宽的两块板子,一开始是按切板子想的,感觉有点麻烦。

    直接反过来想,把两块要求的板子拼起来,填成一个大板子,看填出来的这个板子和题目给的板子比较,小于等于就满足。

    想了一下是四种情况,直接贴一下草稿纸上画的,丑乎乎的( ̄▽ ̄)/

    代码虽然长,但是直接复制粘贴条件改一下就可以。

    代码:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<cmath>
     5 #include<algorithm>
     6 using namespace std;
     7 int main(){
     8     int x,y,n,m,a,b;
     9     while(~scanf("%d%d",&x,&y)){
    10         scanf("%d%d",&n,&m);
    11         scanf("%d%d",&a,&b);
    12         if(x>y)swap(x,y);
    13         if(n>m)swap(n,m);
    14         if(a>b)swap(a,b);
    15         int cnt1;
    16         if(m>b)cnt1=m;
    17         else cnt1=b;
    18         int cnt2=n+a;
    19         if(cnt1<cnt2){
    20             if(cnt1<=x&&cnt2<=y){
    21                 printf("YES
    ");
    22                 return 0;
    23             }
    24         }
    25         else{
    26             if(cnt1<=y&&cnt2<=x){
    27                 printf("YES
    ");
    28                 return 0;
    29             }
    30         }
    31         int cnt11;
    32         if(n>b)cnt11=n;
    33         else cnt11=b;
    34         int cnt22=m+a;
    35         if(cnt11<cnt22){
    36             if(cnt11<=x&&cnt22<=y){
    37                 printf("YES
    ");
    38                 return 0;
    39             }
    40         }
    41         else{
    42             if(cnt11<=y&&cnt22<=x){
    43                 printf("YES
    ");
    44                 return 0;
    45             }
    46         }
    47         int cnt111;
    48         if(n>a)cnt111=n;
    49         else cnt111=a;
    50         int cnt222=m+b;
    51         if(cnt111<cnt222){
    52             if(cnt111<=x&&cnt222<=y){
    53                 printf("YES
    ");
    54                 return 0;
    55             }
    56         }
    57         else{
    58             if(cnt111<=y&&cnt222<=x){
    59                 printf("YES
    ");
    60                 return 0;
    61             }
    62         }
    63         int cnt1111;
    64         if(m>a)cnt1111=m;
    65         else cnt1111=a;
    66         int cnt2222=n+b;
    67         if(cnt1111<cnt2222){
    68             if(cnt1111<=x&&cnt2222<=y){
    69                 printf("YES
    ");
    70                 return 0;
    71             }
    72         }
    73         else{
    74             if(cnt1111<=y&&cnt2222<=x){
    75                 printf("YES
    ");
    76                 return 0;
    77             }
    78         }
    79         printf("NO
    ");
    80     }
    81     return 0;
    82 }
  • 相关阅读:
    windows下命令行
    利用border画三角形
    正则
    flex布局
    css笔记
    W3C标准
    SEO相关
    左边固定,右边自适应(解决方案)
    容错性测试的测试点
    Charles安装及使用教程
  • 原文地址:https://www.cnblogs.com/ZERO-/p/9703042.html
Copyright © 2011-2022 走看看