http://acm.hdu.edu.cn/showproblem.php?pid=4068

暴力枚举两个全排列,犯了若干错误,以此为鉴

#include <iostream>
#include <cstdio>
#include <cstring>
#include <map>
using namespace std ;
int n,f,m[],vis[],vis2[],temp[] ;
string str[],ans[],s[][],res[] ;
int OK()
{
int i,j,flag ;
i=j= ;
while(i<n && j<n)
{
flag= ;
for(int k= ;k<m[temp[i]] ;k++)
{
if(s[temp[i]][k]==res[j])
{
flag= ;
break ;
}
}
if(flag)j++ ;
else i++ ;
}
if(i==n)return ;
return ;
}
int ff ;
int dfs2(int cur)
{
if(cur==n)
{
if(!OK()){
ff= ;
return ;
}
}
for(int i= ;i<n && ff ;i++)
{
if(!vis2[i])
{
vis2[i]= ;
temp[cur]=i ;
dfs2(cur+) ;
vis2[i]= ;
}
}
if(ff)return ;
return ;
}
void dfs(int cur)
{
if(f)
return ;
if(cur==n)
{
ff= ;
memset(vis2,,sizeof(vis2)) ;
if(dfs2())
{
f= ;
for(int i= ;i<n ;i++)
ans[i]=res[i] ;
}
return ;
}
for(int i= ;i<n ;i++)
{
if(!vis[i])
{
vis[i]= ;
res[cur]=str[i] ;
dfs(cur+) ;
vis[i]= ;
}
}
} int main()
{
int t ;
scanf("%d",&t) ;
for(int cas= ;cas<=t ;cas++)
{
scanf("%d",&n) ;
for(int i= ;i<n ;i++)
cin >> str[i] ;
for(int i= ;i<n ;i++)
{
scanf("%d",&m[i]) ;
for(int j= ;j<m[i] ;j++)
{
cin >> s[i][j] ;
}
}
sort(str,str+n) ;
f= ;
memset(vis,,sizeof(vis)) ;
dfs() ;
printf("Case %d: ",cas) ;
if(f)
{
puts("Yes") ;
for(int i= ;i<n ;i++)
{
if(i)
{
putchar(' ') ;
}
cout << ans[i] ;
}
putchar('\n') ;
}
else
puts("No") ;
}
return ;
}

HDU 4068的更多相关文章

  1. hdu 4068 I-number【大数】

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=4608 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  2. hdu 4068 福州赛区网络赛H 排列 ***

    拍的太慢了,很不满意 排完序之后,枚举自己和对手状态,若被击败,则再枚举自己下一个策略,直到可以击败对手所有的策略 #include<cstdio> #include<iostrea ...

  3. hdu 4068 SanguoSHA

    搜索下就可以了…… 代码如下: #include<iostream> #include<cstring> #include<cstdio> #include< ...

  4. hdu 4068 I-number

    #include<stdio.h> #include<string.h> ]; int al; int mysum() //求各位和 { ; al=strlen(a); ; i ...

  5. [置顶] 2013_CSUST暑假训练总结

    2013-7-19 shu 新生训练赛:母函数[转换成了背包做的] shuacm 题目:http://acm.hdu.edu.cn/diy/contest_show.php?cid=20083总结:h ...

  6. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  7. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  8. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  9. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

随机推荐

  1. PHP之设计模式

    https://blog.csdn.net/self_realian/article/details/78228733 掌握PHP各类设计模式,具备设计纯面向对象框架和系统能力是非常有必要的.给大家一 ...

  2. MessageBox.show显示窗口在最上层

    C#中使用MessageBox.Show();有时候会被主窗口挡住而看不到.使用如下语句则可以使其显示在最上层. MessageBox.Show("MessageBox显示窗口在最上层了吗? ...

  3. [golang note] 工程组织

    golang项目目录结构 <golang_proj> ├─README                 ├─AUTHORS                 ├─<bin>    ...

  4. Cocos2d-JS实现的打飞机

    一.前言 今天我们来讲一个最最最常见的一个小游戏--打飞机!是的,打飞机!还记得小时候在玩儿的雷电,应该是打飞机最早的样子了吧.直到现在,也有微信打飞机,全民飞机大战,全民打飞机等游戏的出现,这些游戏 ...

  5. Know that more adidas NMD Singapore colorways are coming

    The adidas NMD Singapore continues to be the right silhouette for summer time because of a mix of a ...

  6. SpringData_CrudRepository接口

    CrudRepository CrudRepository 接口提供了最基本的对实体类的添删改查操作 T save(T entity);//保存单个实体 Iterable<T> save( ...

  7. Learn2Rank

    Learning to rank 排序学习是推荐.搜索.广告的核心方法.排序结果的好坏很大程度影响用户体验.广告收入等.排序学习可以理解为机器学习中用户排序的方法,这里首先推荐一本微软亚洲研究院刘铁岩 ...

  8. Anchor、Dock

    转:http://blog.sina.com.cn/s/blog_7f7cd96601013trt.html 在设计可供用户调整大小的窗体时,如何实现该窗体上的控件也应能正确地随窗体的改变而自动调整大 ...

  9. python 匹配指定后缀的文件名

    import glob x=glob.glob('*.py') print(x)

  10. HashMap put方法

    HashMap的put方法执行过程可以通过下图来理解,自己有兴趣可以去对比源码更清楚地研究学习. ①.判断键值对数组table[i]是否为空或为null,否则执行resize()进行扩容: ②.根据键 ...