ZOJ 3601 Unrequited Love 浙江省第九届省赛
Unrequited Love
Time Limit: 16 Seconds Memory Limit: 131072 KB
There are n single boys and m single girls. Each of them may love none, one or several of other people unrequitedly and one-sidedly. For the coming q days, each night some of them will come together to hold a single party. In the party, if someone loves all the others, but is not loved by anyone, then he/she is called king/queen of unrequited love.
Input
There are multiple test cases. The first line of the input is an integer T ≈ 50 indicating the number of test cases.
Each test case starts with three positive integers no more than 30000
-- n m q
. Then each of the next n lines describes a boy, and each of the next m lines describes a girl. Each line consists of the name, the number of unrequitedly loved people, and the list of these people's names. Each of the last q lines describes a single party. It consists of the number of people who attend this party and their names. All people have different names whose lengths are no more than 20
. But there are no restrictions that all of them are heterosexuals.
Output
For each query, print the number of kings/queens of unrequited love, followed by their names in lexicographical order, separated by a space. Print an empty line after each test case. See sample for more details.
Sample Input
- 2
- 2 1 4
- BoyA 1 GirlC
- BoyB 1 GirlC
- GirlC 1 BoyA
- 2 BoyA BoyB
- 2 BoyA GirlC
- 2 BoyB GirlC
- 3 BoyA BoyB GirlC
- 2 2 2
- H 2 O S
- He 0
- O 1 H
- S 1 H
- 3 H O S
- 4 H He O S
Sample Output
- 0
- 0
- 1 BoyB
- 0
- 0
- 0
- 看的人家的代码算是理解了,我是直接比较的明显要超时(n^2),换个思路后时间复杂度变为(2*n)代码:
- #include<iostream>
- #include<algorithm>
- #include<cstdio>
- #include<map>
- #include<set>
- using namespace std;
- char s1[],s2[],s3[];
- int main()
- {
- int T;
- int n,m,q,n0;
- scanf("%d",&T);
- while(T--)
- {
- string lovy,lovyed;
- map< pair<string,string> ,int >love;
- love.clear();
- scanf("%d %d %d",&n,&m,&q);
- lovy = lovyed = "";
- while(n--)
- {
- scanf("%s %d",s1,&n0);
- lovy = s1;
- while(n0--)
- {
- scanf("%s",s2);
- lovyed = s2;
- love[make_pair(lovy,lovyed)] = ;
- }
- lovy = lovyed = "";
- }
- while(m--)
- {
- scanf("%s %d",s1,&n0);
- lovy = s1;
- while(n0--)
- {
- scanf("%s",s2);
- lovyed = s2;
- love[make_pair(lovy,lovyed)] = ;
- }
- lovy = lovyed = "";
- }
- while(q--)
- { bool flag = true;
- int k =;
- string mm[];
- scanf("%d",&n0);
- scanf("%s",s1);
- mm[]=lovy = s1;
- for(int i=;i<n0;i++)
- {
- scanf("%s",s1);
- lovyed = mm[i] = s1;
- //关键在于下面的判断
- if(love[make_pair(lovy,lovyed)] == || love[make_pair(lovyed,lovy)] == )
- {
- lovy = mm[i];
- k = i;
- }
- }
- for(int j=;j<k;j++)
- {
- if(lovy != mm[j])
- {
- if(love[make_pair(lovy,mm[j])] == || love[make_pair(mm[j],lovy)] == )
- {
- flag = false;
- }
- }
- }
- if(flag)
- printf("1 %s\n",lovy.c_str());
- else printf("0\n");
- }
- printf("\n");
- }
- return ;
- }
ZOJ 3601 Unrequited Love 浙江省第九届省赛的更多相关文章
- ZOJ 3606 Lazy Salesgirl 浙江省第九届省赛
Lazy Salesgirl Time Limit: 5 Seconds Memory Limit: 65536 KB Kochiya Sanae is a lazy girl who ma ...
- nyoj1273 河南省第九届省赛_"宣传墙"、状压DP+矩阵幂加速
宣传墙 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 ALPHA 小镇风景美丽,道路整齐,干净,到此旅游的游客特别多.CBA 镇长准备在一条道路南 面 4*N 的墙上做 ...
- NYOJ 1272 表达式求值 第九届省赛 (字符串处理)
title: 表达式求值 第九届省赛 nyoj 1272 tags: [栈,数据结构] 题目链接 描述 假设表达式定义为: 1. 一个十进制的正整数 X 是一个表达式. 2. 如果 X 和 Y 是 表 ...
- 河南省acm第九届省赛--《表达式求值》--栈和后缀表达式的变形--手速题
表达式求值 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 假设表达式定义为:1. 一个十进制的正整数 X 是一个表达式.2. 如果 X 和 Y 是 表达式,则 X+Y, ...
- ZOJ 3601 Unrequited Love 【STL__pair_的应用】
下面这个例子就是 STL:pair 的用法 #include <iostream> #include <utility> #include <string> usi ...
- NYOJ--1276--机器设备(河南省第九届省赛,简单的bfs)
机器设备 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 Alpha 公司设计出一种节能的机器设备.它的内部结构是由 N 个齿轮组成.整个机器设备有 一个驱动齿轮,当 ...
- SD第九届省赛B题 Bullet
Bullet Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description In G ...
- 蓝桥杯第九届省赛 sscanf(),str.c_str()函数的使用
标题:航班时间 [问题背景]小h前往美国参加了蓝桥杯国际赛.小h的女朋友发现小h上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”. 小h对超音速飞行感到十分恐惧.仔 ...
- 【二分图最大匹配】Bullet @山东省第九届省赛 B
时间限制: 6 Sec 内存限制: 128 MB 题目描述 In GGO, a world dominated by gun and steel, players are fighting for t ...
随机推荐
- centos启动流程[转]
启动流程概览 在硬件驱动成功后,Kernel 会主动呼叫 init 程序,而 init 会取得 run-level 资讯: init 运行 /etc/rc.d/rc.sysinit 文件来准备软件运行 ...
- python文件操作--字符串替换
如把test.txt文件的 所有 AAA 字符串 替换成 aaaaa with open('test.txt','+r') as f: t = f.read() t = d.replace('AAA' ...
- C# 正则表达式类 Match类和Group类
@"\b(\S+)://(\S+)\b"; //匹配URL的模式foreach (Match match in mc){ Console.WriteLine(match.Value ...
- background-position 用法详细介绍
语法: background-position : length || length background-position : position || position 取值: length : ...
- easyui datagrid 添删改(纪录)
var groups;//用户组为另一个表,所以需先加载,用于编辑时下拉框 var editindex = undefined; var action; $(function () { $.ajax( ...
- 非root模式下安装mysql php小记
假设你的home目录为/home/work mysql-server 安装 1. 下载mysql.tar.gz wget http://dev.mysql.com/get/Downloads/MySQ ...
- js 触摸类库
A javascript library for multi-touch gestures :// You can touch this http://hammerjs.github.io ...
- 【转】C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(1)
C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(1) #region 截获消息 /// 截获消息 处理XP不能关机问题 protected ...
- Java中的定时器Timer
java.util.Timer是一个实用工具类,该类用来调度一个线程,使线程可以在将来某一时刻开始执行. Java的Timer类可以调度一个线程运行一次,或定期运行. java.util.TimerT ...
- 导入和导出表空间:复制文件比mysqldump&restore快
#生成测试数据server1:mysql> CREATE TABLE test (c1 INT PRIMARY KEY)engine = innodb;Query OK, 0 rows affe ...