ural 1208 Legendary Teams Contest
题意描述:给定K支队伍,每队三个队员,不同队伍之间队员可能部分重复,输出这些队员同时能够组成多少完整的队伍;
DFS,利用DFS深度优先搜索,如果该队所有队员都没有被访问过,那么将该队计入结果,再去选择下一队~
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stdlib.h>
#include <map>
using namespace std; struct team{
int a,b,c;
}; team dif[];
int n,result;
int visit[];
map<string,int>q; void dfs(int x,int y){
result = max(result,x);
if(y>n)
return ; //如果 dif[y]队的成员都没被访问过 ,那么就可以计入结果,result++;
//否则就 继续搜索下一队。
if(!visit[dif[y].a]&&!visit[dif[y].b]&&!visit[dif[y].c]){
visit[dif[y].a] = visit[dif[y].b] = visit[dif[y].c]=;
dfs(x+,y+);
visit[dif[y].a] = visit[dif[y].b] = visit[dif[y].c]=;
}
else{
dfs(x,y+);
}
} int main(){
int temp=;
string str1,str2,str3;
cin>>n;
for(int i=;i<=n;i++){
cin>>str1>>str2>>str3; //利用 map 直接将重复元素滤去 if(!q[str1]){ //选择不重复的 string,匹配 int后, 作为q的新元素
temp++;
q[str1] = temp;
}
if(!q[str2]){
temp++;
q[str2] = temp;
}
if(!q[str3]){
temp++;
q[str3] = temp;
}
dif[i].a = q[str1];
dif[i].b = q[str2];
dif[i].c = q[str3];
}
//如此就将人名映射成不同的数字 ,然后在 visit[]中计入是否已经访问过。 for(int i=;i<= n;i++){
visit[dif[i].a] = visit[dif[i].b] = visit[dif[i].c] = ;
dfs(,i+);
visit[dif[i].a] = visit[dif[i].b] = visit[dif[i].c] = ;
}
cout<<result<<endl;
return ;
}
ural 1208 Legendary Teams Contest的更多相关文章
- URAL 1208 Legendary Teams Contest(DFS)
Legendary Teams Contest Time limit: 1.0 secondMemory limit: 64 MB Nothing makes as old as years. A l ...
- 1208. Legendary Teams Contest(dfs)
1208 简单dfs 对于每个数 两种情况 取还是不取 #include <iostream> #include<cstdio> #include<cstring> ...
- Ural State University Internal Contest October'2000 Junior Session
POJ 上的一套水题,哈哈~~~,最后一题很恶心,不想写了~~~ Rope Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7 ...
- URAL 1106 Two Teams二分图
S - Two Teams Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submi ...
- ural 1106. Two Teams 二分图染色
链接:http://acm.timus.ru/problem.aspx?space=1&num=1106 描述:有n(n<=100)个人,每个人有一个或多个朋友(朋友关系是相互的).将其 ...
- ural 1106 Two Teams
http://acm.timus.ru/problem.aspx?space=1&num=1106 #include <cstdio> #include <cstring&g ...
- URAL 1106 Two Teams (DFS)
题意 小组里有N个人,每个人都有一个或多个朋友在小组里.将小组分成两个队伍,每个队伍的任意一个成员都有至少一个朋友在另一个队伍. 思路 一开始觉得和前几天做过的一道2-sat(每个队伍任意两个成员都必 ...
- URAL 1873. GOV Chronicles
唔 神题一道 大家感受一下 1873. GOV Chronicles Time limit: 0.5 secondMemory limit: 64 MB A chilly autumn night. ...
- URAL 2025. Line Fighting (math)
2025. Line Fighting Time limit: 1.0 second Memory limit: 64 MB Boxing, karate, sambo- The audience i ...
随机推荐
- JavaScript学习笔记-正则表达式(语法篇)
正则表达式的模式规则是由一个字符系列组成的,包括所有字母和数字在内;大多数的字符(所有字母和数字)都是按字符的直接量来描述带匹配的字符;一些具有特殊语义的字符按照其特殊语义来进行匹配,有些字符需要通过 ...
- form中动态生成Radiobutton控件
public partial class GetLabelFields : Form { int tableCount; public GetLabelFields(AxMapControl axma ...
- 解决IIS进程回收后第一次访问慢的问题
IIS 有一种机制,默认会在IIS空闲一定时间段后,将应用程序池进行回收,这个时间段在IIS6中默认是20分钟,在IIS7中默认是1740分钟.两个配置都不合理,都会导致当应用程序池被回收后,第一次访 ...
- Asp.net web hosting
start /D "C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0" /B WebDev.WebSe ...
- [Android]RapidFloatingActionButton框架正式出炉
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4474748.html RapidFloatingActionB ...
- BMP图像数据格式详解
一.简介 BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式.Windows系统内部各图像绘制操作都是以B ...
- swift开发多线程篇 - 多线程基础
swift开发多线程篇 - 多线程基础 iOS 的三种多线程技术 (1)NSThread 使用NSThread对象建立一个线程非常方便 但是!要使用NSThread管理多个线程非常困难,不推荐使用 ...
- 代码创建storyboard
代码创建storyboard方式如下 // 加载storyboard UIStoryboard *storyboard = [UIStoryboard StoryboardWithName:@&quo ...
- mac 终端(terminal) 启动tomcat
mac 终端启动tomcat: 找到你的tomcat安装的根目录:找到bin目录,在终端 cd 到这个bin中,输入sudo ./startup.sh (然后终端会提示你输入本机密码如果是在需要权限的 ...
- iOS开发UINavigation——导航控制器UINavigationController
iOS开发UINavigation系列一——导航栏UINavigtionBar摘要iOS中的导航条可以附着于导航控制器之中使用,也可以在controller中单独使用,这篇博客,主要讨论有关导航栏的使 ...