hdu 4068 SanguoSHA
搜索下就可以了……
代码如下:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
int p[][],n,a[],b[];
string str[],s;
bool flag,vis[],vis2[];
bool dfs2(int d)
{
int i,j;
if(d==n){
i=j=;
while(i<n&&j<n){
bool f=;
for(int k=;k<=p[b[j]][];k++)
if(p[b[j]][k]==a[i]){
f=;
break;
}
if(f) i++;
else j++;
}
if(i==n) return ;
return ;
}
for(i=;i<n;i++){
if(vis2[i]==){
vis2[i]=;
b[d]=i;
if(!dfs2(d+)) return ;
vis2[i]=;
}
}
return ;
}
bool dfs(int d)
{
int i,j;
if(d==n){
flag=;
for(i=;i<n;i++){
memset(vis2,,sizeof(vis2));
b[]=i;
vis2[i]=;
if(!dfs2()){
flag=;
break;
}
}
if(flag) return ;
return ;
}
for(i=;i<n;i++){
if(vis[i]==){
vis[i]=;
a[d]=i;
if(dfs(d+)) return ;
vis[i]=;
}
}
}
int main()
{
int t,i,j,k,ca=;
cin>>t;
while(t--){
cin>>n;
for(i=;i<n;i++)
cin>>str[i];
sort(str,str+n);
for(i=;i<n;i++){
cin>>p[i][];
for(j=;j<=p[i][];j++){
cin>>s;
for(k=;k<n;k++){
if(s==str[k]){
p[i][j]=k;
break;
}
}
}
}
for(i=;i<n;i++){
memset(vis,,sizeof(vis));
vis[i]=;
a[]=i;
if(dfs()){
break;
}
}
printf("Case %d: ",++ca);
if(i==n) puts("No");
else{
puts("Yes");
for(i=;i<n-;i++)
cout<<str[a[i]]<<' ';
cout<<str[a[i]]<<endl;
}
}
return ;
}
hdu 4068 SanguoSHA的更多相关文章
- HDU 4068
http://acm.hdu.edu.cn/showproblem.php?pid=4068 暴力枚举两个全排列,犯了若干错误,以此为鉴 #include <iostream> #incl ...
- hdu 4068 I-number【大数】
题目: http://acm.hdu.edu.cn/showproblem.php?pid=4608 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- hdu 4068 福州赛区网络赛H 排列 ***
拍的太慢了,很不满意 排完序之后,枚举自己和对手状态,若被击败,则再枚举自己下一个策略,直到可以击败对手所有的策略 #include<cstdio> #include<iostrea ...
- hdu 4068 I-number
#include<stdio.h> #include<string.h> ]; int al; int mysum() //求各位和 { ; al=strlen(a); ; i ...
- [置顶] 2013_CSUST暑假训练总结
2013-7-19 shu 新生训练赛:母函数[转换成了背包做的] shuacm 题目:http://acm.hdu.edu.cn/diy/contest_show.php?cid=20083总结:h ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
- HDU 4569 Special equations(取模)
Special equations Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
随机推荐
- Android动画解析--XML
动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面 ...
- Ubuntu 12.04 Desktop配置XAMPP【转】
转载:[ubuntu][xampp]开发环境配置 XAMPP 并不适用于生产环境,而仅供开发环境使用.XAMPP 被设置为尽量开放,并提供开发者任何他/她想要的功能.这对于开发环境来说是很棒的,但对于 ...
- OpenGL学习笔记之了解OpenGL
OpenGL(全写Open GraphicsLibrary)是个定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库. 说 ...
- VC++编程之对话框贴图
基于对话框的程序写好后,为对话框贴上个图片让界面更加美观(我承认做界面,MFC显得力不从心,不如QT). 其实很简单,我们以位图为例,选好我们需要的位图资源(bmp),假若自己的图片不是位图资源,可以 ...
- Oracle 11g 11201_RHEL5.5_RAC_VBOX 详细搭建步骤
1.安装好vbox,创建好虚拟机(红帽5.5),注意:VBOX全局设置VBOX磁盘的位置和备份位置 IP.hostname 规划: hostname ...
- 简单的C语言小学四则运算设计
题目:设计一个简单的四则运算编辑器 思路:我使用的是C语言编程,看到题目首先要随机出3个随机数,其中两个为100以内的随机数(a,b),一个为0~3的随机数(k). k值的变化使得+ - * /的变化 ...
- Struts2重定向
第一方式: 参数之间必须使用& .&是&在xml中转义字符 <result name="error" type="redirect& ...
- 添加swap分区
1.创建swap文件,可以单独划分一个分区出来,也可以直接生成一个swap文件 dd if=/dev/zero of=swap bs=1M count=1024 2.格式化为swap文件 mkswap ...
- HTML统一资源定位器
w3c 更好的解释 在OSGi in action中安装bundle时要加文本传输协议,要不然shell判断不出来
- C#委托详解(2):实现方式大全
本系列文章将详细探讨C#中的委托,列举其主要的实现方式,并分析其在设计层面和编码层面带来的好处,最后会讨论其安全性和执行效率等. 接上篇(C#委托详解(1):什么是委托)介绍完什么是委托之后,来看看C ...