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

poj 1903 Jurassic Remains

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

poj 1903 Jurassic Remains

#include<iostream>#include<stdio.h>#include<string.h>#include<cmath>#include<map>#include<algorithm>#define ll long longusing namespace std;  struct node{      int w[25],num;}ans; char s[25][105]; int n;map<int,node> mymap;void dfs1(int i,int x,node h){       int l,j;       if (mymap.find(x)==mymap.end()) mymap[x]=h;       if (mymap[x].num<h.num) mymap[x]=h;      if (i>n/2) return;      dfs1(i+1,x,h);      l=strlen(s[i]);      for (j=0;j<l;j++) x^=1<<(int)(s[i][j]-'A');       h.w[++h.num]=i;      dfs1(i+1,x,h);      return;}void dfs2(int i,int x,node h){      int l,j;       if (mymap.find(x)!=mymap.end() && mymap[x].num+h.num>ans.num)      {    ans=mymap[x];    for (j=1;j<=h.num;j++) ans.w[++ans.num]=h.w[j];      }      if (i>n) return;      dfs2(i+1,x,h);      l=strlen(s[i]);      for (j=0;j<l;j++) x^=1<<(int)(s[i][j]-'A');       h.w[++h.num]=i;      dfs2(i+1,x,h);      return;}int main(){          int i;      node h;      scanf("%d",&n);      for (i=1;i<=n;i++) scanf("%s",s[i]);      h.num=0;      mymap.clear();      dfs1(1,0,h);      ans.num=0;      dfs2(n/2+1,0,h);      printf("%dn",ans.num);      for (i=1;i<=ans.num;i++) printf("%d ",ans.w[i]);      return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368109.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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