[2018.03.13 T1] 比赛(contest)
暂无链接
比赛(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)相关推荐
- 【401天】跃迁之路——程序员高效学习方法论探索系列(实验阶段158-2018.03.13)...
@(跃迁之路)专栏 专栏调整通知(2018.3.13) 由于SegmentFault对专栏文章内容和格式有一定要求,个人时间精力有限,每天更新的<我爱刷题系列>和<每日项目总结系列& ...
- (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest
layout: post title: (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest author: "luow ...
- (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest(爽题)
layout: post title: (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest(爽题) author: " ...
- 武汉大学计算机学院乒乓球室,武汉大学2018年研究生乒乓球比赛报名
在这个百花齐放.绿意盎然的时节,武汉大学2018年研究生乒乓球比赛的战鼓即将擂响!一场场精彩激烈的比赛即将呈现!不管你是乒乓球健将,还是乒乓球爱好者,亦或是一名运动爱好者,2018年研究生乒乓球比赛都 ...
- The 2018 ACM-ICPC Asia Qingdao Regional Contest
The 2018 ACM-ICPC Asia Qingdao Regional Contest 青岛总体来说只会3题 C #include<bits/stdc++.h> using nam ...
- AI公开课:19.03.13沈徽-商汤副总裁《AI创新与落地》课堂笔记以及个人感悟
AI公开课:19.03.13沈徽-商汤副总裁<AI创新与落地>课堂笔记以及个人感悟 导读:重要的不是学历而是能力,AI领域人才,硕士学位,不是优势也不是劣势,要更多的去考虑自己的能力.坚持 ...
- 2018 ICPC Asia Jakarta Regional Contest
2018 ICPC Asia Jakarta Regional Contest 题号 题目 知识点 难度 A Edit Distance B Rotating Gear C Smart Thief D ...
- 暑期训练日志----2018.8.13
训练第15天. 以为组合数学的专题到14号就截止了,为了完成任务通宵肝一晚上,结果早上开会队友给我说延期了两天...延期了...期了..了... 肝疼... 上午回去补觉,下午又被拽来打个人赛,感觉肝 ...
- 2018年13个AI趋势 | CB Insights报告
李根 发自 凹非寺 量子位 报道 | 公众号 QbitAI CB Insights最新的AI报告,预测了2018年13个AI趋势. 其中关于中美双雄时代的趋势,量子位之前已经专文搬运过,其中核心要点 ...
- easyUI datebox 日期空间斜杠格式化。例如将日期空间中显示2017-03-13,改为2017/03/13...
easyUI datebox 日期空间斜杠格式化 将日期空间中显示2017-03-13,改为2017/03/13 //日期控件斜杠格式化 function formatDate(date){if( & ...
最新文章
- [UWP小白日记-1]判断APP是否是第一次运行初始化SQLITE数据库
- java实现MD5加密
- RocketMQ-初体验RocketMQ(03)_RocketMQ多机集群部署
- 求列表中个元素的数量
- NYOJ 745 蚂蚁的难题(二)
- pywin32官方说明文档_为什么你应该看官方文档而不是搜索博客文章
- 首都师范大学数学专业考研试题参考解答
- 豪赌激光电视,海信算是赢了吗?
- 小米10手机电路图 主板元件位号图
- python中求和公式是什么函数_python中求和函数怎么用
- web应用开发相关技术,CSS盒模型概述
- js实现京东快递单号查询效果
- Java编写五线谱上的音符_在五线谱上怎么写音符
- 修改layui绿色为蓝色
- 别了dvorak!-----论qwert、dvorak布局优劣
- P12证书转BKS证书
- 海南信用社计算机试题,2021年海南农村信用社计算机笔试内容17
- 谷歌想要返华,但却陷入了尴尬境地
- 跟着老万学linux运维-vi编辑器中的大小写转换技巧
- 前端及后端项目开发工具