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 }
                    
                
                
            
        
浙公网安备 33010602011771号