题目链接 五维偏序,对每一维维护bitset,表示哪儿为1(比它大),然后5个bitset与起来就能得到答案了. 具体实现可以用5*n个bitset,按排名搞个前缀和. 复杂度\(O(n^2/w)\)(本质是暴力的优化). //1284ms 565MB #include <cstdio> #include <cctype> #include <bitset> #include <algorithm> #define gc() getchar() const…
目录 题目链接 题解 代码 题目链接 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() #def…
大意: n个人, 5门课, 给定每个人每门课的排名, 对于每个人输出有多少人5门课都比他差. 明显是个5维偏序问题, 题目有保证排名均不同, 可以用bitset优化为$O(\frac{n^2}{\omega})$ #include <iostream> #include <algorithm> #include <cstdio> #include <math.h> #include <set> #include <map> #incl…
题目:http://hihocoder.com/problemset/problem/1513 自带的题解写得很好…… #include<cstdio> #include<cstring> #include<algorithm> #include<bitset> using namespace std; int rdn() { ;;char ch=getchar(); ;ch=getchar();} +ch-',ch=getchar(); return fx…
hihoCoder 1513 小Hi的烦恼 思路: 用bitset判断交集个数 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset(a,b,sizeof(a)) ; ]; ];//在第j门课排名为i的同学的编号 bitset<N>s[N][],tmp;//在第j门课小于排名i的状态 int main(){…
题意 题目链接 Sol 五位数点问题,写个cdq分治套cdq分治套cdq分治套cdq分析就完了 可以用bitset搞 对于每一科开\(n\)个bitset,其中\(b[i]\)表示的排名为\(1 - i\)的人是哪些 查询的时候把每科的bitset &起来就行了 复杂度\(k\frac{n^2}{32}\) 然后可以分块加速一下 注意这里在预处理有个关于势能分析的操作:如果块内元素较少的话,可以每次跑根号个,然后和前面的|起来,如果元素较多的话直接从1开始跑 复杂度:\(k\frac{n\sqr…
思路:考虑第i个同学,第一门课排名比他靠前的同学的集合是S1,第二门课是S2...第五门课是S5,很明显比这个同学每门课程都优秀的同学就是S1&S2&S3&S4&S5,即五个集合的交集. rank[i][j]表示第i名同学第j门课程的成绩,rev_rank[i][j]表示第j门课程中排名第i名的同学的编号. stu[i][j]表示第j门课程比排名为i的同学优秀的同学的集合,即{0,1,0,1,1}表示比这个同学优秀的有2,4,5这三名同学.stu[i][j] = stu[i…
hiho#1513 : 小Hi的烦恼 五维偏序 链接 hiho 思路 高维偏序用bitset,复杂度\((\frac{n^2}{32})\) 代码 #include <bits/stdc++.h> using namespace std; const int N=3e4+7; int read() { int x=0,f=1;char s=getchar(); for(;s>'9'||s<'0';s=getchar()) if(s=='-') f=-1; for(;s>='0…
题意:给出\(n<3e4\)个有序组\((a,b,c,d,e)\),求对第\(i\)个有序组有多少个\(j\)满足\((a_j<a_i,b_j<b_i,c_j<c_i,d_j<d_i,e_j<e_i)\) 五维偏序问题按套路来可以排序+树套树套树套树(打死 然而这是显然连\(O(n^2)\)暴力都不如的 可是题目给4s,\(O(n^2)\)是不可能的,但在神奇的bitset加持下\(O(5*n^2/32)\)的时空复杂度是可以卡过去的! 用bitset表示集合,\(bi…
Clarke and puzzle Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc2015beijingonline/problem/10 Description Kyle is a student of Programming Monkey Elementary School. Just as others, he is deeply concerned with his grad…