17984 FFF团的怒火

17984 FFF团的怒火

该题有题解

时间限制:1000MS  内存限制:65535K
提交次数:55 通过次数:3 收入:3

题型: 编程题   语言: G++;GCC;VC;JAVA

Description

在信软学院,男女比例失衡已经是习以为常的事情。
在这样的一个学院,诞生了一个神秘的组织,FFF团。
    O  O  O
   /F\/F\/F   / \/ \/ 他们的任务是将一切不是真爱的爱情扼杀在摇篮中。
对于某些信软学院的学生,每天都只有一些时间是空闲的,其他时间都只能默默地打代码。
在这段空闲的时间里,所有男生都会去寻找一位空闲的女生,希望能与其进行一次美妙的约会。
然而FFF团的团长——小邪早已看穿一切。
为了防止FFF团团员做出过激行为,小邪决定对所有有着同一段空闲时间的异性进行监控。
现在,小邪想知道,这样的异性有多少对。但是如果小邪现在不对团员进行监控,将会发生严重的后果,于是,统计的任务就交了给你。

出题人:K·小邪

输入格式

第一行是两个整数n,m(0 <= n,m <= 100),分别代表男生的数量和女生的数量

接下来输入n个男生的数据,对于每个男生有一组数据
每组数据的第一行为一个整数t( 0 <= t <= 10 ),代表该男生拥有的空闲时间段数量
接下来为t行
每行的格式为XX:XX-XX:XX    (00:00 <= XX:XX <= 23:59)
代表其在XX:XX至XX:XX的时间段有空闲时间,但是可能跨越一天

接下来m个女生的数据,输入格式同男生

输出格式

输出一个整数,代表有可能见面的男女的对数

输入样例

(Sample #XX:不是输入的一部分)
Sample #1:

1 1
1
23:59-00:01
1
08:00-19:00

Sample #2:

1 2
2
19:30-19:33
00:00-08:00
1
07:30-09:00
1
19:30-19:33

输出样例

Sample #1:
0

Sample #2:
2

提示

注意端点相交也算是有可能见面的
比如08:00-09:00是可能与09:00-10:00见面的
并且对于同一个人输入的区间可能有重叠

这题都说不清楚的,不知道跨了一天算明天的还是算谁。然后是算同一天的,也就是23:59-07:00  和 01:00-02:00是相交的。。。晕。。然后这题又不能用scanf("%d",) != EOF,这样会错误。。坑啊
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;

#include <iostream>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <string>
const int maxn = 2400 + 20;
struct node {
    int num;
    bool book[maxn];
}boy[100 + 20], girl[100 + 20];
int n, m;
void work() {
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; ++i) {
        int t;
        scanf("%d", &t);
        boy[i].num = t;
        while (t--) {
            int a, b, c, d;
            scanf("%d:%d-%d:%d", &a, &b, &c, &d);
            int begin = a * 100 + b;
            int end = c * 100 + d;
            if (begin > end) {
                for (int j = begin; j <= 2400; ++j) {
                    boy[i].book[j] = true;
                }
                for (int j = 0; j <= end; ++j) {
                    boy[i].book[j] = true;
                }
            } else {
                for (int j = begin; j <= end; ++j) {
                    boy[i].book[j] = true;
                }
            }
        }
    }
    for (int i = 1; i <= m; ++i) {
        int t;
        scanf("%d", &t);
        girl[i].num = t;
        while (t--) {
            int a, b, c, d;
            scanf("%d:%d-%d:%d", &a, &b, &c, &d);
            int begin = a * 100 + b;
            int end = c * 100 + d;
            if (begin > end) {
                for (int j = begin; j <= 2400; ++j) {
                    girl[i].book[j] = true;
                }
                for (int j = 0; j <= end; ++j) {
                    girl[i].book[j] = true;
                }
            } else {
                for (int j = begin; j <= end; ++j) {
                    girl[i].book[j] = true;
                }
            }
        }
    }
    int ans = 0;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            for (int k = 0; k <= maxn - 20; ++k) {
                if (boy[i].book[k] && girl[j].book[k]) {
                    ans++;
                    break;
                }
            }
        }
    }
    printf("%d\n", ans);
}

int main() {
#ifdef local
    freopen("data.txt","r",stdin);
#endif
    work();
    return 0;
}
时间: 2024-11-05 15:50:08

17984 FFF团的怒火的相关文章

D FFF团的怒火

Time Limit:1000MS  Memory Limit:65535K 题型: 编程题   语言: 无限制 描述 在信软学院,男女比例失衡已经是习以为常的事情. 在这样的一个学院,诞生了一个神秘的组织,FFF团. O O O /F\/F\/F / \/ \/ 他们的任务是将一切不是真爱的爱情扼杀在摇篮中. 对于某些信软学院的学生,每天都只有一些时间是空闲的,其他时间都只能默默地打代码. 在这段空闲的时间里,所有男生都会去寻找一位空闲的女生,希望能与其进行一次美妙的约会. 然而FFF团的团长

CodeVS4416 FFF 团卧底的后宫

题目描述 Description 你在某日收到了 FFF 团卧底的求助,在他某日旅游回来,他的后宫们出现了一些不可调和的矛盾,如果 FFF 团卧底把自己的宝贝分给 a 号妹子,那么 b 号妹子至少要在站在 a 号妹子的右边距离 d,妹子才愿意得到那个宝贝.可是后宫里也有玩得好的妹子呀,她们总是渴望亲近一点,如果把自己的宝贝分给 a 号妹子,那么与她亲近的妹子与 a 号妹子的距离不会超过 l.现在总共有 n 个妹子,k 个这样的矛盾关系,m 个亲近关系.假设他的宝贝是无限的,保证每一个妹子都有宝贝

codevs4419 FFF 团卧底的菊花

题目描述 Description FFF 团卧底在这次出题后就知道他的菊花可能有巨大的危险,于是他提前摆布好了菊花阵,现在菊花阵里有若干朵菊花,出现次数最多的那一朵就是出题人的,你的任务是需要找出出题人的菊花. 输入描述 Input Description 第一行为 n 第二行为 n 朵菊花 输出描述 Output Description 一行,为出题人的菊花 样例输入 Sample Input 5 1 1 1 2 3 样例输出 Sample Output 1 数据范围及提示 Data Size

MZOJ #70 FFF团

分析 没太多好说的,强连通缩点,然后拓扑排序,一旦某一时刻有两个及以上入度为零的点,则不可能 代码 1 /************************** 2 User:Mandy.H.Y 3 Language:c++ 4 Problem:FFF 5 Apgorithm: 6 **************************/ 7 8 #include<bits/stdc++.h> 9 #define Max(x,y) ((x) > (y) ? (x) : (y)) 10 #de

HXY烧情侣(洛谷 2194)

题目描述 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要使用它需要一定的费用.m条单向通道连接相邻的两对情侣所在电影院.然后HXY有个绝技,如果她能从一个点开始烧,最后回到这个点,那么烧这条回路上的情侣的费用只需要该点的汽油费即可.并且每对情侣只需烧一遍,电影院可以重复去.然后她想花尽可能少的费用烧掉所有的情侣.问最少需要多少费用,并且当费用最少时的方案

Codeforces Round #261 (Div. 2)[ABCDE]

Codeforces Round #261 (Div. 2)[ABCDE] ACM 题目地址:Codeforces Round #261 (Div. 2) A - Pashmak and Garden 题意: 一个正方形,它的边平行于坐标轴,给出这个正方形的两个点,求出另外两个点. 分析: 推断下是否平行X轴或平行Y轴,各种if. 代码: /* * Author: illuz <iilluzen[at]gmail.com> * File: A.cpp * Create Date: 2014-0

XidianOJ 1048 二分图匹配模板

题目描述 西电ACM实验室是一个很和谐的实验室,有n个男生和m个女生组成(m>0),尽管表面大家都全心全意地为了荣誉而战,然而经过亮亮的深入调查,我们已经知道了有一些人三心二意:每天只有99%的时间花费在切题上,而还有1%的时间在想着某位或某几位异性!作为FFF团西电分部的部长,亮亮显然不能容许这种朝三暮四的情况.但是西电ACM实验室又是一个很开明的实验室,于是亮亮决定尽可能的撮合实验室的队员! 那么问题来了,亮亮最多能撮合多少对呢? 输入 多组数据,每组数据首先是两个整数,n,m表示男女生的人

[CTSC 2012][BZOJ 2806]Cheat

真是一道好题喵~ 果然自动机什么的就是要和 dp 搞基才是王道有木有! A:连 CTSC 都叫我们搞基,果然身为一个程序猿,加入 FFF 团是我此生最明智的选择.妹子什么闪边去,大家一起来搞基吧! Q:教练你是什么时候产生了 dp 和自动机是同性的错觉~ 教练你又是什么时候产生了你还有个不入团的选择 ( 妹 子 )这样的错觉~ A:显而易见的,我们…… Q:教练不要转移话题啊! A:显而易见的,我们先搞一个后缀自动机…… Q:等等,教练,多串的自动机要怎么写? A:把几个串并在一起不就好了? Q

从零开始的JS生活(二)——BOM、DOM与JS中的事件

上回书说道,JS中变量.运算符.分支结构.循环和嵌套循环等内容.本回就由本K给大伙唠唠JS中的BOM.DOM和事件. 一."花心大萝卜"--BOM 1.震惊,FFF团为何对BOM举起了火把--BOM简介 BOM(Browser Object Model) 是指浏览器对象模型,在JS中BOM是个不折不扣的花心大萝卜,因为它有很多个对象,其中代表浏览器窗口的Window对象是BOM的"正室".也就是最重要的,其他对象都是正室的下手.或者叫侧室也不足为过. 2.细数BOM