简单模拟,注意不要漏情况
<span style="font-size:14px;">#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <cmath>
using namespace std;
int h[5],hh,w[5],ww,vis[10];
int slove()
{
int i,j,k;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(i==j) continue;
memset(vis,0,sizeof(vis));
if(w[i]==w[j])
{
ww=w[i];
hh=h[i]+h[j];
vis[i]=vis[j]=1;
for(k=0;k<4;k++)
{
if(vis[k]) continue;
if(w[k]==ww || w[k]==hh || h[k]==ww || h[k]==hh)
return 1;
}
}
else if(w[i]==h[j])
{
ww=w[i];
hh==h[i]+w[j];
vis[i]=vis[j]=1;
for(k=0;k<4;k++)
{
if(vis[k]) continue;
if(w[k]==ww || w[k]==hh || h[k]==ww || h[k]==hh)
return 1;
}
}
else if(h[i]==h[j])
{
hh=h[i];
ww=w[i]+w[j];
vis[i]=vis[j]=1;
for(k=0;k<4;k++)
{
if(vis[k]) continue;
if(w[k]==ww || w[k]==hh || h[k]==ww || h[k]==hh)
return 1;
}
}
}
}
return 0;
}
int main()
{
int t;
cin>>t;
while(t--)
{
for(int i=0;i<4;i++)
scanf("%d%d",&w[i],&h[i]);
if(slove())
printf("Yes\n");
else
printf("No\n");
}
return 0;
}</span><span style="font-size:18px;">
</span>
本文探讨了在解决编程问题时如何避免遗漏特殊情况,并通过一个具体实例展示了在判断多个变量组合时的逻辑处理方法。

被折叠的 条评论
为什么被折叠?



