摘要: 题目链接 题意 这是一个集会,最开始只有你一个人。 你邀请了 \(n\) 个人来参加集会,每个人有一个 \(a_i\) ,如果你要求这个人 \(t\) 时刻过来,那么必须满足 \(t\) 时刻以及 \(t\) 时刻之前来的人的个数 \(\geq a_i\) (注意对于这个人数的计算,包括你自己,但是 阅读全文
posted @ 2020-08-30 17:45 Dazzling! 阅读(194) 评论(0) 推荐(0) 编辑
摘要: acwing845 inline bool check(int x,int y) { return x>=0 && x<3 && y>=0 && y<3; } void print(string s) { for(int i=0;i<3;i++) { for(int j=0;j<3;j++) cou 阅读全文
posted @ 2020-08-28 11:00 Dazzling! 阅读(161) 评论(0) 推荐(0) 编辑
摘要: acwing143 一个整数可以转化成为一个二进制数,也就可以变成二进制字符串。 每一次检索的时候,我们都走与当前 \(A_i\) 这一位相反的位置走,也就是让 \(xor\) 值最大,如果说没有路可以走的话,那么就走相同的路. const int N=100010*31; int trie[N][ 阅读全文
posted @ 2020-08-26 10:39 Dazzling! 阅读(177) 评论(0) 推荐(0) 编辑
摘要: acwing800 const int N=100010; int a[N],b[N]; int n,m,x; int main() { cin>>n>>m>>x; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<m;i++) cin>>b[i]; int 阅读全文
posted @ 2020-08-26 08:51 Dazzling! 阅读(188) 评论(0) 推荐(0) 编辑
摘要: acwing799 const int N=100010; int a[N]; int n; int main() { cin>>n; for(int i=0;i<n;i++) cin>>a[i]; unordered_map<int,int> mp; int l=0,r=0; int ans=0; 阅读全文
posted @ 2020-08-25 22:45 Dazzling! 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 一维差分 const int N=1e5+10; int a[N],b[N]; int n,m; int main() { cin>>n>>m; for(int i=1;i<=n;i++) { cin>>a[i]; b[i]=a[i]-a[i-1]; } while(m--) { int l,r,x 阅读全文
posted @ 2020-08-25 21:01 Dazzling! 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 一维前缀和 const int N=1e5+10; int a[N],sum[N]; int n,m; int main() { cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) sum[i]=sum[i-1]+a[i 阅读全文
posted @ 2020-08-25 20:48 Dazzling! 阅读(154) 评论(0) 推荐(0) 编辑
摘要: acwing790 注意到 \(y=x^3\) 是一单调函数,可二分出其零点 double n; int main() { scanf("%lf",&n); double l=-50,r=50; for(int i=0;i<100;i++) { double mid=(l+r)/2; if(mid* 阅读全文
posted @ 2020-08-25 19:18 Dazzling! 阅读(543) 评论(0) 推荐(0) 编辑
摘要: acwing789 STL const int N=1e5+10; int a[N]; int n,m; int main() { cin>>n>>m; for(int i=0;i<n;i++) cin>>a[i]; while(m--) { int x; cin>>x; int st=lower_ 阅读全文
posted @ 2020-08-25 19:11 Dazzling! 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 归并排序求逆序对 const int N=1e5+10; int a[N],b[N]; int n; LL ans; void merge(int l,int r) { if(l>=r) return; int mid=l+r>>1; merge(l,mid); merge(mid+1,r); in 阅读全文
posted @ 2020-08-25 18:46 Dazzling! 阅读(151) 评论(0) 推荐(0) 编辑