栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 3139 Balancing the Scale

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 3139 Balancing the Scale

#include<set>#include<map>#include<queue>#include<stack>#include<ctime>#include<deque>#include<cmath>#include<vector>#include<string>#include<cctype>#include<cstdio>#include<cstdlib>#include<cstring>#include<sstream>#include<iostream>#include<algorithm>#define REP(i,s,t) for(int i=(s);i<=(t);i++)#define REP2(i,t,s) for(int i=(t);i>=s;i--)using namespace std;typedef long long ll;typedef unsigned long long ull;typedef unsigned long ul;const int N=20;const int Maxans=10240+10;int a[N];int bit[N];vector<int>G[Maxans];int state[1<<17];bool judge(int x){  int cnt=0;  REP(i,1,16)  {    if(x&(1<<(i-1)))    {      bit[++cnt]=a[i];    }  }  return cnt==4;}int ***(){  REP(i,0,Maxans)  {    G[i].clear();  }  memset(state,0,sizeof(state));  sort(a+1,a+1+16);  REP(i,0,(1<<16)-1)  {    if(judge(i))    {      do      {        int tmp=bit[1]*1+bit[2]*2+bit[3]*3+bit[4]*4;        for(int j=0;j<G[tmp].size();j++)        {          if((i&G[tmp][j])==0)          { state[i|G[tmp][j]]++;          }        }        G[tmp].push_back(i);      }while(next_permutation(bit+1,bit+1+4));    }  }  int ans=0;  REP(i,0,(1<<16)-1)  {    ans+=state[i]*state[((1<<16)-1)^i];  }  return ans/2;}int main(){  int ca=1;  while(~scanf("%d",&a[1]))  {    if(!a[1])    {      break;    }    REP(i,2,16)    {      scanf("%d",&a[i]);    }    int ans=***();    printf("Case %d: %dn",ca++,ans);  }  return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374281.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号