hihocoder#1513 : 小Hi的烦恼 bitset

目录

  • 题目链接
  • 题解
  • 代码


题目链接

hihocoder#1513 : 小Hi的烦恼

题解

cdq 套cdq 套cdq 套cdq就完了呀
对每一科开n个bitset 表示该科目前i个有谁
每次查询都&起来就好了

代码

#include<cstdio>
#include<bitset>
#include<cstring>
#include<algorithm>
#define LL long long
#define gc getchar()
#define pc putchar
inline int read() {
    int x = 0,f = 1;
    char c = gc;
    while(c < '0' || c > '9' )c = gc;
    while(c <= '9' && c >= '0') x = x * 10 + c - '0',c = gc;
    return x * f ;
}
void print(LL x) {
     if(x >= 10) print(x / 10);
     pc(x % 10 + '0');
}
const int maxn = 30007;
std::bitset<maxn>b[6][maxn];
int a[maxn][6];
int rk[maxn];
int main() {
    int n = read();
    for(int i = 1;i <= n;++ i)
        for(int j = 1;j <= 5;++ j) {
            a[i][j] = read();
        }
    for(int j = 1;j <= 5;++ j) {
        for(int i = 1;i <= n;++ i) rk[a[i][j]] = i - 1;
        for(int i = 1;i <= n;++ i) {
            b[j][i] = b[j][i - 1];
            b[j][i].set(rk[i]);
        }
    }
    std::bitset<maxn>ans;
    for(int i = 1;i <= n;++ i) {
        ans.set();
        for(int j = 1;j <= 5;++ j) ans &= b[j][a[i][j] - 1];
        print(ans.count());
        pc('\n');
    }
    return 0;
}

原文地址:https://www.cnblogs.com/sssy/p/9769411.html

时间: 2024-10-12 09:38:32

hihocoder#1513 : 小Hi的烦恼 bitset的相关文章

hihocoder 1513 小Hi的烦恼——bitset

题目:http://hihocoder.com/problemset/problem/1513 自带的题解写得很好-- #include<cstdio> #include<cstring> #include<algorithm> #include<bitset> using namespace std; int rdn() { int ret=0;bool fx=1;char ch=getchar(); while(ch>'9'||ch<'0')

hihocoder 1513 小Hi的烦恼 (bitset优化)

大意: n个人, 5门课, 给定每个人每门课的排名, 对于每个人输出有多少人5门课都比他差. 明显是个5维偏序问题, 题目有保证排名均不同, 可以用bitset优化为$O(\frac{n^2}{\omega})$ #include <iostream> #include <algorithm> #include <cstdio> #include <math.h> #include <set> #include <map> #incl

【hihoCoder】#1513 : 小Hi的烦恼

题解 我会五维数点辣 只要用个bitset乱搞就好了 记录一下rk[i][j]表示第j科排名为i的是谁 用30000 * 5个大小为30000的bitset s[i][j]是一个bitset表示第j科,排名为1 - i的人是多少 最后只要对于每个人,把每一维小于它的集合and起来,然后用count()函数输出里面1的个数 代码 #include <iostream> #include <algorithm> #include <cstdio> #include <

hunnu 11545小明的烦恼——找路径 (最大流)

小明的烦恼--找路径  Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:32768KB Total submit users: 45, Accepted users: 37 Problem 11545 : No special judgement Problem description   小明真的是个很厉害的人,每当老师有什么事时,总是会找到小明,二小明也总能解决,所以老师决定给小明一个奖励,给他额外的假期.小明当然很高兴

《Mysql 公司职员学习篇》 第一章 小A的烦恼

第一章  小A的烦恼 ----- 为什么学习数据库 和 如何选择数据库 小A是某公司的职员,公司数据部的员工,平常的大小工作,完全离不开EXCELL,而最近小A却越来越苦恼,不由的向好朋友小Y吐槽.小Y是某互联网公司的程序员,拥有多年开发经验. 小Y:"小A,你最近'印堂发黑',越来越疲劳无力,怎么?工作上遇见什么难题了?". 小A:"唉,别提了,最近公司发展迅速,数据量越来越大,我那'极品'电脑,关打开EXCELL就要卡个半天,再加上处理和计算,一天下来,卡顿的时间,都够我

BZOJ 3280: 小R的烦恼 &amp; BZOJ 1221: [HNOI2001] 软件开发

3280: 小R的烦恼 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 399  Solved: 200[Submit][Status][Discuss] Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要求小R帮助他一起解决一个难题. 问题是这样的,程设老师最近要进行一项邪恶的实验来证明P=NP,这个实验一共持续n天,第i天需要a[i]个研究生来给他搬砖.研究生毕竟也是人,

hunnu 小明的烦恼——找字符串

http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11544&courseid=0 小明的烦恼——找字符串 Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB Total submit users: 108, Accepted users: 68 Problem 11544 : No special judgement Probl

nyoj453 小珂的烦恼 (set容器)

题目453 题目信息 运行结果 本题排行 讨论区 小珂的烦恼 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述        小珂遇到了一个麻烦的问题,有这样的N对数(1,2),(3,5),(4,7),(6,10)--,第i对的差值为i,第n对数的第一个数为没在前n-1对中出现过的数中最小的,现在要找第n对这样的数,你能帮帮他吗? 输入 第一行只有一个整数m(m<=10000),表示测试数据组数. 接下来的m行,每行有一个整数n(n<=100000). 输出 输出第

bzoj 3280: 小R的烦恼(费用流)

3280: 小R的烦恼 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 300  Solved: 154 [Submit][Status][Discuss] Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要求小R帮助他一起解决一个难题. 问题是这样的,程设老师最近要进行一项邪恶的实验来证明P=NP,这个实验一共持续n天,第i天需要a[i]个研究生来给他搬砖.研究生毕竟也是