题目链接:http://codeforces.com/problemset/problem/469/B

题目意思:给出 Little Z 的上线时间段,分别是[a1, b1], [a2, b2],...,[ap, bp] (bi < ai + 1) ,以及 Little X的上线时间段,不过他的上线时间段需要依赖 t,也就是上线时间段为[c1+t, d1+t],[c2+t, d2+t],...,[cq+t, dq+t](dj < cj + 1 )。问从[l, r] 中 选择 t,使得 X 与 Z 两个人上线的时间至少有一个时刻的数量有多少个。(这些区间段都包括边界点!)

思路就是用一个vis[]数组把 Z 的上线时间段全部标记为1,然后对于 X 的所有时间段,通过 + x( l <= x <= r)来判断是否已经被标记过,是的话就说明 x 这个点是可选的,可纳入答案范围内。

比赛的时候其实是有这个思路的,但是怕超时就不敢写,然后一直纠结...纠结......纠结(1000*50*1000:[l,r] * q * [cj, dj] ),想不到确实可以这样做,后悔死了~~~

赛后做发现有一个小小的要注意的地方,从test 4 那里可以看出,判断 vis 时有可能超出1000,所以vis 数组要开到2000以上!!!否则memset初始化不到1000以外的数据,导致初始值不明确,以致最后的判断可能会有误!!!

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std; const int maxn = + ;
int vis[*maxn]; // ci+x, di+x (l<= x <=r)有可能超出1000,所以要开大点
int c[maxn], d[maxn]; int main()
{
int p, q, l, r, a, b;
// freopen("in.txt", "r", stdin); while (scanf("%d%d%d%d", &p, &q, &l, &r) != EOF)
{
memset(vis, , sizeof(vis));
for (int i = ; i < p; i++)
{
scanf("%d%d", &a, &b);
for (int j = a; j <= b; j++)
vis[j] = ;
}
for (int i = ; i < q; i++)
scanf("%d%d", &c[i], &d[i]); int ans = ;
for (int k = l; k <= r; k++)
{
int flag = ;
for (int i = ; i < q && !flag; i++)
{
for (int j = c[i]+k; j <= d[i]+k && !flag; j++)
{
if (vis[j]) // 如果vis大小是1000,if判断中写成vis[i] = 1是错误的,注意注意!!!
{
flag = ;
break;
}
}
}
if (flag)
ans++;
}
printf("%d\n", ans);
}
return ;
}

codeforces 469B Chat Online 解题报告的更多相关文章

  1. Codeforces Round 665 赛后解题报告(暂A-D)

    Codeforces Round 665 赛后解题报告 A. Distance and Axis 我们设 \(B\) 点 坐标为 \(x(x\leq n)\).由题意我们知道 \[\mid(n-x)- ...

  2. Codeforces Round 662 赛后解题报告(A-E2)

    Codeforces Round 662 赛后解题报告 梦幻开局到1400+的悲惨故事 A. Rainbow Dash, Fluttershy and Chess Coloring 这个题很简单,我们 ...

  3. Codeforces Round #277.5 解题报告

    又熬夜刷了cf,今天比正常多一题.比赛还没完但我知道F过不了了,一个半小时贡献给F还是没过--应该也没人Hack.写写解题报告吧= =. 解题报告例如以下: A题:选择排序直接搞,由于不要求最优交换次 ...

  4. codeforces B. Simple Molecules 解题报告

    题目链接:http://codeforces.com/problemset/problem/344/B 题目意思:这句话是解题的关键: The number of bonds of an atom i ...

  5. codeforces 591A. Wizards' Duel 解题报告

    题目链接:http://codeforces.com/problemset/problem/591/A 题目意思:其实看下面这幅图就知道题意了,就是Harry 和 He-Who-Must-Not-Be ...

  6. codeforces 582A. GCD Table 解题报告

    题目链接:http://codeforces.com/problemset/problem/582/A 网上很多题解,就不说了,直接贴代码= = 官方题解: http://codeforces.com ...

  7. codeforces 581C. Developing Skills 解题报告

    题目链接:http://codeforces.com/problemset/problem/581/C 题目意思:给出 n 个数:a1, a2, ..., an (0 ≤ ai ≤ 100).给出值 ...

  8. codeforces 577B. Modulo Sum 解题报告

    题目链接:http://codeforces.com/problemset/problem/577/B 题目意思:就是给出 n 个数(a1, a2, ..., an) 和 m,问能不能从这 n 个数中 ...

  9. codeforces 540B.School Marks 解题报告

    题目链接:http://codeforces.com/problemset/problem/540/B 题目意思:给出 k 个test的成绩,要凑剩下的 n-k个test的成绩,使得最终的n个test ...

随机推荐

  1. Oracle PL/SQL 存储过程、函数、包 的范例

    1,写函数和过程,输入三角形三个表的长度.在控制台打印三角形的面积 -- 创建包 create or replace package pac_area is -- 定义计算三角形面积的过程 proce ...

  2. Android 适配器教程 (六)

    我们的适配器学习已经接近尾声了.尽管这不是一个大问题,可是确实是值得学习的一块知识,回忆一下之前五讲的知识.我们已经学到了非常多东西了. 在之前五讲中.我们已经由浅入深的认识了适配器,从最简单的Lis ...

  3. MySQL高可用之——keepalived+互为主从

    目标:配置一个keepalived双机热备架构,并配置主从复制 规划: master1     zlm177     192.168.17.177 master2     zlm188     192 ...

  4. python(16)- python内置函数

    python内置了一系列的常用函数,以便于我们使用,python英文官方文档详细说明:https://docs.python.org/3/library/functions.html     Buil ...

  5. MySQL 压缩解决方案

    From:https://www.qcloud.com/community/article/876100 导语 描述 MySQL 压缩的使用场景和解决方案,包括压缩传输协议.压缩列解决方案和压缩表解决 ...

  6. 【每日Scrum】第三天(4.24) TD学生助手Sprint2站立会议

    站立会议 组员 昨天 今天 困难 签到 刘铸辉 (组长) 今天主要看了多事件处理的内容然后改了下界面, 和小楠重写架构,使代码更加简洁,并增加了几个界面 架构太难,数据库字段总出问题 Y 刘静 添加事 ...

  7. ecshop 国付宝支付接口

    function get_code($order, $payment){ $version = '2.2'; $charset = '1'; $language = '1'; $signType = ...

  8. Continuous Integration with Selenium

    I have seen a lot of queries from people who basically want to know how to blend Selenium, Maven, an ...

  9. 第 2 章 第 1 题 同位词问题 下问 Multimap实现

    问题分析 输入:一个任意的单词和一个内含多个乱序单词的字典文件 输出:该单词在字典中的所有同位词 约束:允许事先对字典进行预处理 解决思路 上问的程序有个缺点 - 我们必须遍历完整个字典文件才能输出所 ...

  10. POJ 1952 BUY LOW, BUY LOWER 动态规划题解

    Description The advice to "buy low" is half the formula to success in the bovine stock mar ...