暂无链接

比赛(contest)

【题目描述】

n 支队伍一共参加了三场比赛。

一支队伍 x 认为自己比另一支队伍 y 强当且仅当 x 在至少一场比赛中比 y 的排名高。

求有多少组(x,y),使得 x 自己觉得比 y 强,y 自己也觉得比 x 强。

(x, y), (y, x)算一组。

【输入】

第一行一个整数 n,表示队伍数;

接下来 n 行,每行三个整数 a[i], b[i], c[i],分别表示 i 在第一场、第二场和第三 场比赛中的名次;

【输出】

输出一个整数表示满足条件的(x,y)数;

【输入样例】

4
1 3 1
2 2 4
4 1 2
3 4 3

【输出样例】

5

【提示】
【数据规模】

对于 30%的数据,n≤1000;

对于 100%的数据,n≤200000, 1≤a[i],b[i],c[i]≤n, 且所有的 a[i],b[i],c[i]都是不同的;

题解

我们按某一次比赛的成绩排序,求另一场比赛成绩中的逆序对即可统计满足要求的(x,y),考虑去重如下(用W表示胜,F表示负):

第一种情况:

W W W
F F F

显然这种情况不存在满足要求的数对。

第二种情况:

W W F
F F W

这样就存在两组逆序对,所以该数对被统计了两次。

其他情况皆与第二种相同,所以归并排序三次,最终统计出的逆序对除以2即可AC。

代码
#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int M=400005;
struct sd{int gra[5];
};
LL ans;
int n;
sd x[M],r[M];
bool cmp1(sd a,sd b)
{return a.gra[1]<b.gra[1];}
bool cmp2(sd a,sd b)
{return a.gra[2]<b.gra[2];}
void guisort(int le,int ri,int p)
{if(le==ri)return;int mid=(le+ri)>>1;guisort(le,mid,p);guisort(mid+1,ri,p);int i=le,j=mid+1,k=le;while(i<=mid&&j<=ri){if(x[i].gra[p]<=x[j].gra[p])r[k++]=x[i++];elser[k++]=x[j++],ans+=mid-i+1;}while(i<=mid)r[k++]=x[i++];while(j<=ri)r[k++]=x[j++];for(int i=le;i<=ri;++i)x[i]=r[i];
}
void in()
{scanf("%d",&n);for(int i=1;i<=n;++i)for(int j=1;j<=3;++j)scanf("%d",&x[i].gra[j]);
}
void ac()
{sort(x+1,x+1+n,cmp1);guisort(1,n,2);guisort(1,n,3);guisort(1,n,1);printf("%lld",ans/2);
}
int main()
{//  freopen("test.in","r",stdin);in();ac();return 0;
}

[2018.03.13 T1] 比赛(contest)相关推荐

  1. 【401天】跃迁之路——程序员高效学习方法论探索系列(实验阶段158-2018.03.13)...

    @(跃迁之路)专栏 专栏调整通知(2018.3.13) 由于SegmentFault对专栏文章内容和格式有一定要求,个人时间精力有限,每天更新的<我爱刷题系列>和<每日项目总结系列& ...

  2. (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest

    layout: post title: (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest author: "luow ...

  3. (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest(爽题)

    layout: post title: (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest(爽题) author: " ...

  4. 武汉大学计算机学院乒乓球室,武汉大学2018年研究生乒乓球比赛报名

    在这个百花齐放.绿意盎然的时节,武汉大学2018年研究生乒乓球比赛的战鼓即将擂响!一场场精彩激烈的比赛即将呈现!不管你是乒乓球健将,还是乒乓球爱好者,亦或是一名运动爱好者,2018年研究生乒乓球比赛都 ...

  5. The 2018 ACM-ICPC Asia Qingdao Regional Contest

    The 2018 ACM-ICPC Asia Qingdao Regional Contest 青岛总体来说只会3题 C #include<bits/stdc++.h> using nam ...

  6. AI公开课:19.03.13沈徽-商汤副总裁《AI创新与落地》课堂笔记以及个人感悟

    AI公开课:19.03.13沈徽-商汤副总裁<AI创新与落地>课堂笔记以及个人感悟 导读:重要的不是学历而是能力,AI领域人才,硕士学位,不是优势也不是劣势,要更多的去考虑自己的能力.坚持 ...

  7. 2018 ICPC Asia Jakarta Regional Contest

    2018 ICPC Asia Jakarta Regional Contest 题号 题目 知识点 难度 A Edit Distance B Rotating Gear C Smart Thief D ...

  8. 暑期训练日志----2018.8.13

    训练第15天. 以为组合数学的专题到14号就截止了,为了完成任务通宵肝一晚上,结果早上开会队友给我说延期了两天...延期了...期了..了... 肝疼... 上午回去补觉,下午又被拽来打个人赛,感觉肝 ...

  9. 2018年13个AI趋势 | CB Insights报告

    李根 发自 凹非寺  量子位 报道 | 公众号 QbitAI CB Insights最新的AI报告,预测了2018年13个AI趋势. 其中关于中美双雄时代的趋势,量子位之前已经专文搬运过,其中核心要点 ...

  10. easyUI datebox 日期空间斜杠格式化。例如将日期空间中显示2017-03-13,改为2017/03/13...

    easyUI datebox 日期空间斜杠格式化 将日期空间中显示2017-03-13,改为2017/03/13 //日期控件斜杠格式化 function formatDate(date){if( & ...

最新文章

  1. [UWP小白日记-1]判断APP是否是第一次运行初始化SQLITE数据库
  2. java实现MD5加密
  3. RocketMQ-初体验RocketMQ(03)_RocketMQ多机集群部署
  4. 求列表中个元素的数量
  5. NYOJ 745 蚂蚁的难题(二)
  6. pywin32官方说明文档_为什么你应该看官方文档而不是搜索博客文章
  7. 首都师范大学数学专业考研试题参考解答
  8. 豪赌激光电视,海信算是赢了吗?
  9. 小米10手机电路图 主板元件位号图
  10. python中求和公式是什么函数_python中求和函数怎么用
  11. web应用开发相关技术,CSS盒模型概述
  12. js实现京东快递单号查询效果
  13. Java编写五线谱上的音符_在五线谱上怎么写音符
  14. 修改layui绿色为蓝色
  15. 别了dvorak!-----论qwert、dvorak布局优劣
  16. P12证书转BKS证书
  17. 海南信用社计算机试题,2021年海南农村信用社计算机笔试内容17
  18. 谷歌想要返华,但却陷入了尴尬境地
  19. 跟着老万学linux运维-vi编辑器中的大小写转换技巧
  20. 前端及后端项目开发工具

热门文章

  1. 西门子S7系列中间人攻击:PLC探测和流量分析(二)
  2. 【转载】身份证号码验证算法
  3. 攻防世界web新手随记
  4. u盘启动盘安装centos7.5操作系统
  5. BZOJ 1036 [ZJOI2008]树的统计Count (树链剖分 - 点权剖分 - 单点权修改)
  6. Servlet接收JSP参数乱码问题解决办法
  7. 信息发布系统 Jquery+MVC架构开发(3) 解决方案创建
  8. 使用OQL语言查询对象信息
  9. MySQL order by、group by关键字优化
  10. Java 线程死锁初理解