Cow Tennis Tournament

//矩阵,异或

//树套树

总方案数-不合法方案数

C(N,3) - 不存在一个环(有人能打赢另外两个)

第i个人能赢d[i]场

sum{C(d[i],2)}

C(N,3)-sum{C(d[i],2)}

问题转化成k次操作后,每人的情况

离线,把所有操作都读进来,进行一些处理

把所有操作记录下来,什么能力值开始出现反转,什么能力值结束反转

5~9 5,10

离散化//考试的时候打暴力没有注意到这个,所以一分没有

l[i]+1 r[i]-1

 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<vector>
 7 using namespace std;
 8 #define ls (t<<1)
 9 #define rs ((t<<1)|1)
10 typedef long long ll;
11 typedef pair<int,int>pii;
12 const int maxn=1e5+7;
13 const int INF=0x7f7f7f7f;
14 int n,k;
15 ll ans;
16 int s[maxn],sum[maxn<<2],lazy[maxn<<2];//线段树开4倍,2倍不够 
17 vector<int>vl[maxn],vr[maxn];
18 void push_up(int t){
19   sum[t]=sum[ls]+sum[rs];
20 }
21 void push_down(int t,int l,int r){
22   if(lazy[t]){
23     lazy[t]^=1;
24     lazy[ls]^=1;lazy[rs]^=1;
25     int mid=(l+r)/2;
26     sum[ls]=mid-l+1-sum[ls];
27     sum[rs]=r-mid-sum[rs];
28   }
29 }
30 void update(int L,int R,int l,int r,int t){
31   if(L<=l&&r<=R){
32     sum[t]=r-l+1-sum[t];//取反后和进行的操作 
33     lazy[t]^=1;
34     return;
35   }
36   push_down(t,l,r);
37   int mid=(l+r)/2;
38   if(L<=mid) update(L,R,l,mid,ls);
39   if(R>mid) update(L,R,mid+1,r,rs);
40   push_up(t); 
41 }
42 int query(int L,int R,int l,int r,int t){
43   if(L<=l&&r<=R) return sum[t];
44   push_down(t,l,r);
45   int mid=(l+r)/2,ret=0;
46   if(L<=mid) ret+=query(L,R,l,mid,ls);
47   if(R>mid) ret+=query(L,R,mid+1,r,rs);
48   return ret;
49 }
50 int main(){
51   cin>>n>>k;
52   for(int i=0;i<n;i++) cin>>s[i];
53   sort(s,s+n);
54   while(k--){
55     int l,r;cin>>l>>r;
56     l=lower_bound(s,s+n,l)-s;
57     r=upper_bound(s,s+n,r)-s-1;
58     if(l>r) continue;
59     vl[l].push_back(r);vr[r].push_back(l);
60   } 
61   ll ans=1LL*n*(n-1)*(n-2)/6;
62   for(int i=0;i<n;i++){
63     for(int j=0;j<vl[i].size();j++) update(i,vl[i][j],0,n-1,1);
64     int res=0;
65     if(i>0) res+=i-query(0,i-1,0,n-1,1);
66     if(i<n-1) res+=query(i+1,n-1,0,n-1,1);
67     ans-=1LL*res*(res-1)/2;//乘法原理,顺序要去掉 
68     for(int j=0;j<vr[i].size();j++) update(vr[i][j],i,0,n-1,1);
69   }
70   cout<<ans<<endl;
71   return 0;
72 }

不过我感觉,......

转载于:https://www.cnblogs.com/lcan/p/9860955.html

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值