Gym-101630C:Connections B - Box ###K //K

题目链接:https://codeforces.ml/gym/101630
题意:给定 一个盒子的长宽高, 给一个矩形 w*h 问能否在矩形中拼出一个盒子

思路:已经说了给了所有的情况,那么根据给出的11个图形, 写出11种abc 的组成  最后发现只有5种是不重复的

然后长宽高并不确定,abc6种组合判断一下即可  注意在画那11种的时候 a b c 可以随意转换, 所以发现重复格式的 就不用继续画了

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 #define pb push_back
 5 const int mod=1e4;
 6 const int maxn=1e5+10;
 7 int f;
 8 int h,w;
 9 
10 void solve(int a,int b,int c)
11 {
12     int x=a+2*c,y=2*b+2*c;
13     if((x<=h&&y<=w)||(x<=w&&y<=h))
14         f=1;
15     x=a+b+c,y=2*b+2*c;
16     if((x<=h&&y<=w)||(x<=w&&y<=h))
17         f=1;
18     x=a+2*c,y=a+2*b+c;
19     if((x<=h&&y<=w)||(x<=w&&y<=h))
20         f=1;
21     x=3*a+b+c,y=b+c;
22     if((x<=h&&y<=w)||(x<=w&&y<=h))
23         f=1;
24     x=a+b+c,y=2*a+b+c;
25     if((x<=h&&y<=w)||(x<=w&&y<=h))
26         f=1;
27 }
28 
29 
30 int main()
31 {
32     ios::sync_with_stdio(0);
33     cin.tie(0);
34     int a,b,c;
35     cin>>a>>b>>c;
36     cin>>h>>w;
37     solve(a,b,c);
38     solve(a,c,b);
39     solve(b,a,c);
40     solve(b,c,a);
41     solve(c,a,b);
42     solve(c,b,a);
43     if(f)
44         cout<<"Yes"<<'\n';
45     else
46         cout<<"No"<<'\n';
47 
48 
49 
50 
51 
52 
53 
54 }
View Code

 

posted @ 2020-10-03 20:58  canwinfor  阅读(145)  评论(0)    收藏  举报