//矩阵,异或

//树套树

总方案数-不合法方案数

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

Cow Tennis Tournament相关推荐

  1. 283EEZOJ #89 Cow Tennis Tournament

    传送门 分析 我们考虑用所有的情况减去不合法的情况 不难想出所有情况为$C_n^3$ 于是我们考虑不合法的情况 我们知道对于一个不合法的三元组$(a,b,c)$一定是修改后$a<b,b>c ...

  2. CF283E Cow Tennis Tournament

    线段树+组合数学 这道题直接做好像根本不可做,考虑转化:我们可以用任意方案数-不合法的方案数,那么答案为:\[C_n^3 - \sum_{i=1}^{n} C_{ki}^2\] 其中ki为第i个点能打 ...

  3. Transformers

    概述 Transformer 是一种非常流行的架构,它利用和扩展自注意力的概念,为下游任务创建非常有用的输入数据表示. 优点: 通过上下文嵌入更好地表示我们的输入令牌,其中令牌表示基于使用自我注意的特 ...

  4. 2016区域赛前冲刺训练

    UPD 2016.10.23 shift-and (2题) Codeforces 训练 现在已经完成了: 191 [Codeforces Round #377] (6/6) Div 2 A Buy a ...

  5. FORMULA ONE RACES AHEAD (F1锦标赛全速前进)

    Introduction: Sleek cars race at high speeds as top racecar drivers compete for millions of dollars ...

  6. FORMULA ONE RACES AHEAD (F1锦标赛全速前进)【空中英语】

    Introduction: Sleek cars race at high speeds as top race car drivers compete for millions of dollars ...

  7. POJ 3268 D-Silver Cow Party

    http://poj.org/problem?id=3268 Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently ...

  8. usaco Cow Tours 牛的旅行

    Cow Tours 牛的旅行 农民 John 的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场. 但是就目前而言,你能看到至少有两个牧区不连通.这样,农民 John 就有 ...

  9. 贪心  POJ - 3617 ​​​​​​​Best Cow Line

    Best Cow Line POJ - 3617 FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of ...

最新文章

  1. ThinkPHP 详细介绍
  2. 第十六届智能车竞赛广东省线上比赛第二波来袭
  3. 从零开始学springboot笔记(二)-Spring boot返回json数据(中文无乱码)
  4. oracle错误代码12516,ORA-12516错误解决
  5. 电脑系统重装后没有声音怎么办​
  6. TensorFlow 教程 --进阶指南--3.4数据读取
  7. ROS 科大讯飞语音(三)识别篇
  8. android 动态规划,7. 动态规划(二)Android移动应用开发.pdf
  9. Android真机连接Eclipse时,打不开File Explorer下的data文件夹解决方法
  10. CCF201604-5 网络连接(募集解题代码)
  11. 堆排序matlab,matlab 堆排序 ...原创(初来报到)
  12. 升级总代分享思路_定档了!升级了!1月23日《我家那闺女》第二季要给你“好看”...
  13. Windows系统下hosts文件工作原理
  14. python爬取百度迁徙动态图_python爬虫动态爬取百度迁徙
  15. 从0到1打造自己的网络电话系统
  16. 简单了解mouseover与mouseenter的使用场景
  17. 学习机器学习总体感受
  18. 千亿商用车车联网市场,智能车载终端企业如何抢食?
  19. Java高级程序员必备:高性能计数器及Striped64和LongAdder
  20. 三十而立的用友,未来的路将向何方?

热门文章

  1. mpc5125 开发板 基于 核心板
  2. html写出太极八卦图,求图,谁能用符号拼成太极八卦图!!!!!!!!!!!!...
  3. 【图像加密】基于matlab行列像素置乱+DWT图像加密【含Matlab源码 675期】
  4. js 动态加版块进页面
  5. 通过Debug命令行清除BIOS Setup密码
  6. 【华为中央硬件部】最新社会招聘公告!
  7. 丘成桐讲数学简史(2小时完整视频)
  8. matlab中(:)的部分使用
  9. vue3+Echart
  10. 疫情期间远程办公,我这么计划