bzoj1215

Posted 宣毅鸣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj1215相关的知识,希望对你有一定的参考价值。

题解:

暴力枚举每一种方案,然后hash判重

代码:

#include<bits/stdc++.h>
#define eps 1e-7
using namespace std;
int v[4],r[4],hs[8000],p=0,ans=0;
void add(int v1,int v2,int v3,int v4,int v5,int v6,int v7)
{
    hs[++p]=(v1|v2<<3|v3<<6|v4<<9|v5<<12|v6<<15|v7<<18);
}
double f(double a,double b,int op)
{
    if (op==0) return a+b;
    if (op==1) return a-b;
    if (op==2) return a*b;
    return a/b;
}
bool e(int a,int b)
{
    if (a==0) return b>1;
    if (a==2) return b<2;
    return 1;
}
void check(int v1,int v2,int v3,int v4)
{
    for (int i=0;i<4;i++)
     for (int j=0;j<4;j++)
      for (int k=0;k<4;k++)
       {
        bool e1=e(k,j),e2=e(j,i);
        if (fabs(f(f(f(v[v1],v[v2],i),v[v3],j),v[v4],k)-24)<eps)
         add(r[v1],r[v2],i+4,r[v3],j+4,r[v4],k+4);
        if (e1&&fabs(f(f(v[v1],v[v2],i),f(v[v3],v[v4],j),k)-24)<eps)
         add(r[v1],r[v2],i+4,r[v3],r[v4],j+4,k+4);
        if (e2&&fabs(f(f(v[v1],f(v[v2],v[v3],i),j),v[v4],k)-24)<eps)
         add(r[v1],r[v2],r[v3],i+4,j+4,r[v4],k+4);
        if (e1&&fabs(f(v[v1],f(f(v[v2],v[v3],i),v[v4],j),k)-24)<eps)
         add(r[v1],r[v2],r[v3],i+4,r[v4],j+4,k+4);
        if (e1&&e2&&fabs(f(v[v1],f(v[v2],f(v[v3],v[v4],i),j),k)-24)
        <eps)
         add(r[v1],r[v2],r[v3],r[v4],i+4,j+4,k+4);
       }
}
int main()
{
    for (int i=0;i<4;i++)scanf("%d",&v[i]);
    for (int i=0;i<4;i++)
     for (int j=0;j<4;j++)r[i]+=v[i]<v[j];
    for (int i=0;i<4;i++)
     for (int j=0;j<4;j++)
      if (i!=j)
       for (int k=0;k<4;k++)
        if (i!=k&&j!=k)
         check(i,j,k,6-i-j-k);
    sort(hs+1,hs+p+1);
    if (p) ans=1;
    for (int i=2;i<=p;i++) if (hs[i]!=hs[i-1]) ans++;
    printf("%d",ans);
}

 

以上是关于bzoj1215的主要内容,如果未能解决你的问题,请参考以下文章

Bzoj2339--Hnoi2011卡农

从片段内部调用活动方法[重复]

[bzoj1966][Ahoi2005][VIRUS 病毒检测] (字符串dp)

$P1215 [USACO1.4]母亲的牛奶 Mother's Milk$

BZOJ4641基因改造 KMP

BZOJ2339HNOI2011卡农