【链接】h在这里写链接


【题意】


让你在n个点组成的集合里面选取不为空的集合s.
使得这里面的点没有出现某个点a和b,ax>=bx且ay>=by;
问你s的个数。

【题解】


我们把这些点按照(x,y)升序排(x优先,y次之).
然后按顺序处理这些点。
会发现.
我们在处理(x,y)点的时候.
只有它的左上方那些点是可以和他在一起的。
(也即xi<x 且 yi > y)
随便取左上方的矩形区域里面的一个点。都能组成一个集合。
但是随便取的那个点,可能也可以和它的左上方的更小的矩形区域里的某个点组合。
会发现这是一个DP的问题。
只要维护sum((x,y)的左上角矩形区域内的dp(x,y) )就可以了。
因为随便加上哪一个点的dp(xi,yi),就表示一定选(x,y)和(xi,yi)然后问题就能转化成以(xi,yi)作为(x,y)的一个问题了。
(隐藏含义:xi+1..x之间的所有点都不选。)
这个问题显然是重叠的。(之前已经解决过了。);
写个树状数组就能搞定。
把(1,1)..(x,y)这个矩形区域的减掉。就是左上角的了。
(选完(x,y)之后,dp(x,y)=左上角的dp(x,y)之和 + 1)
(因为不选(x,y)的左上角里的任意一个点也是可以的,只选(x,y),供后面的点继续做DP);
但是答案只递增(x,y)左上角的dp(x,y)之和

【错的次数】


0

【反思】


在这了写反思

【代码】

#include <bits/stdc++.h>
using namespace std; const int N = 1e5;
const long long MOD = 1e9 + 7; struct BI {
long long a[N + 10]; int lowbit(int x) {
return x&(-x);
} void add(int x, long long y) {
while (x <= N) {
a[x] = ((a[x] + y) % MOD + MOD) % MOD;
x += lowbit(x);
}
} long long sum(int x) {
long long now = 0;
while (x > 0) {
now = ((now + a[x]) % MOD + MOD) % MOD;
x -= lowbit(x);
}
return now;
} long long get_sum(int l, int r) {
return sum(r) - sum(l - 1);
} }b; vector <pair <int, int> > v;
int n;
long long sum = 0, ans = 0; int main() {
//freopen("F:\\rush.txt", "r", stdin);
ios::sync_with_stdio(0), cin.tie(0);
cin >> n;
for (int i = 1, x, y; i <= n; i++) {
cin >> x >> y;
v.push_back(make_pair(x, y));
}
sort(v.begin(), v.end());
b.add(v[0].second, 1);
int j = 1;
sum = 1;
while (j <= (int)v.size() - 1 && v[j].first == v[0].first) {
b.add(v[j].second, 1);
sum += 1;
j++;
}
ans = n;
for (int i = j; i <= n - 1; i++) {
long long temp = b.get_sum(1, v[i].second);
long long temp1 = ((sum - temp) % MOD + MOD) % MOD;
b.add(v[i].second, (temp1 + 1) % MOD);
ans = (ans + temp1) % MOD;
sum = (sum + temp1 + 1) % MOD;
}
cout << ans << endl;
return 0;
}

【CS Round #48 (Div. 2 only)】Dominant Free Sets的更多相关文章

  1. 【CS Round #48 (Div. 2 only)】8 Divisible

    [链接]h在这里写链接 [题意] 给你一个长度为n的数字(n<=1000) 然后让你任意组合这个数字. 使得这个数字能被8整除. (不能出现前导0) [题解] 只要后三位能被8整除就可以了. 则 ...

  2. 【CS Round #48 (Div. 2 only)】Water Volume

    [链接]h在这里写链接 [题意] 在这里写题意 [题解] 枚举0在哪个位置就好. [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++.h> us ...

  3. 【CS Round #48 (Div. 2 only)】Game of Chance

    [链接]h在这里写链接 [题意] 在这里写题意 [题解] 在这里写题解 [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++.h> using n ...

  4. 【Codeforces Round #432 (Div. 1) B】Arpa and a list of numbers

    [链接]h在这里写链接 [题意] 定义bad list是一个非空的.最大公约数为1的序列.给定一个序列,有两种操作:花费x将一个元素删除.花费y将一个元素加1,问你将这个序列变为good list所需 ...

  5. 【CS Round #36 (Div. 2 only) A】Bicycle Rental

    [题目链接]:https://csacademy.com/contest/round-36/task/bicycle-rental/ [题意] 让你从n辆车中选一辆车; 每一辆车有3个属性 1.到达车 ...

  6. 【CS Round #37 (Div. 2 only) D】Reconstruct Graph

    [Link]:https://csacademy.com/contest/round-37/task/reconstruct-graph/statement/ [Description] 给你一张图; ...

  7. 【CS Round #37 (Div. 2 only) B】Group Split

    [Link]:https://csacademy.com/contest/round-37/task/group-split/ [Description] 让你把一个数分成两个数a.b的和; (a,b ...

  8. 【CS Round #37 (Div. 2 only) A】Boring Number

    [Link]:https://csacademy.com/contest/round-37/task/boring-number/ [Description] 让你找离平均数最近的一个数的下标; [S ...

  9. 【CS Round #39 (Div. 2 only) D】Seven-segment Display

    [Link]:https://csacademy.com/contest/round-39/task/seven-segment-display/ [Description] 0..9各自有一个数字, ...

随机推荐

  1. Windows7下修改pip源

    以下列举三种方式的pip源配置: 1. 设置环境变量PIP_CONFIG_FILE指向pip.ini源配置文件,pip.ini文件内容如下: [global] index-url = http://m ...

  2. SFINAE 模板替换失败而非报错的应用

    体会这一个例子,检查是否是一个类:P187

  3. .Net写的比较清晰的接口

    尼玛,隔行如隔山. .Net真操蛋. /// <summary> /// 加入群 /// </summary> /// <returns></returns& ...

  4. SAR(遥感、卫星) 图像常用数据集

    Brazilian Coffee Scenes数据集较小,5MB左右: UC Merced Land Use Dataset(数据集规模较大,300MB+) MSTAR public targets ...

  5. #学习笔记#——JavaScript 数组部分编程(五)

    11.为数组 arr 中的每个元素求二次方.不要直接修改数组 arr,结果返回新的数组 function square(arr) { var resultArr=new Array(); for(va ...

  6. Gym 100952 F. Contestants Ranking

    http://codeforces.com/gym/100952/problem/F F. Contestants Ranking time limit per test 1 second memor ...

  7. spring三大框架整合

        Spring概述 Spring介绍 Spring它是一个一站式的分层轻量级框架. Spring体系结构 1.      core container a)        beans与core ...

  8. 谈一谈Nginx的强大

    什么是Nginx? Nginx是一款高性能,开源的,支持高并发而轻量级的Web服务器,同时也是具有反向代理服务器及电子邮件(IMAP/POP3)的代理服务器. 基于REST架构风格,并且以统一资源描述 ...

  9. 解决Docker容器内访问宿主机MySQL数据库服务器的问题

    懒得描述太多,总归是解决了问题,方法简要记录如下,虽然简要,但是完整,一来纪念处理该问题耗费的大半天时间,二来本着共享精神帮助其他遇到该问题的哥们儿,当然这个方法并不一定能解决你们的问题,但是多少能提 ...

  10. Jenkins学习总结(3)——Jenkins+Maven+Git搭建持续集成和自动化部署的

    前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正 ...