- 最美学校(e)
死磕1h,90%
- 2024-5-12 21:00:02 @
代码(poker粘贴+改亿下)(或者帮我看看#10数据)我不知道咋看
#include<bits/stdc++.h>
#define ll long long
#define db double
#define cr char
#define rep(i,x,y) for(int i=x;i<=y;i++)
using namespace std;
ll f,n;
db a[5],ans[5][5];
char p[5]={' ','+','-','*','/'};
bool cmp(db x,db y){
return x>y;
}
db js(db x,db y,ll ys){
if(ys==1) return x+y;
if(ys==2) return x-y;
if(ys==3) return x*y;
if(ys==4) return x/y;
}
void dfs(ll t,db a[]){
if(f) return;
if(t==1&&a[1]==24){
f=1;
return;
}
if(t==1) return;
for(int i=1;i<=t;i++)
for(int j=1;j<=t;j++)
if(i!=j)
for(int k=1;k<=4;k++){
if(k==4){
if(a[j]>0){
ans[5-t][1]=a[i],ans[5-t][2]=k,ans[5-t][3]=a[j];
db tk[5];
for(int l=0;l<=4;l++) tk[l]=0;
for(int l=1;l<=t;l++) tk[l]=a[l];
tk[i]=js(tk[i],tk[j],k);
for(int l=j;l<t;l++) tk[l]=tk[l+1];
ans[5-t][4]=tk[i];
dfs(t-1,tk);
}
}
else{
ans[5-t][1]=a[i],ans[5-t][2]=k,ans[5-t][3]=a[j];
db tk[5];
for(int l=0;l<=4;l++) tk[l]=0;
for(int l=1;l<=t;l++) tk[l]=a[l];
tk[i]=js(tk[i],tk[j],k);
for(int l=j;l<t;l++) tk[l]=tk[l+1];
ans[5-t][4]=tk[i];
dfs(t-1,tk);
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[1]>>a[2]>>a[3]>>a[4];
f=0;
dfs(4,a);
if(f) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
2 条评论
-
bjxx0201 LV 5 @ 2024-9-15 14:41:37
-
2024-5-21 18:59:19@
有没有一种可能:
1 3 3 8 8 //8/(3-8/3))
- 1
信息
- ID
- 10
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 34
- 已通过
- 6
- 上传者