博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中位数——二维坐标下的中位数lightoj1349
阅读量:5341 次
发布时间:2019-06-15

本文共 1209 字,大约阅读时间需要 4 分钟。

第一次碰到这种题,不知所措,题解链接 =》 

#include
using namespace std;#define maxn 50005struct Node{
int x,y,num;}p[maxn];int cmp1(Node a,Node b){
return a.x
>T; for(int tt=1;tt<=T;tt++){ printf("Case %d: ",tt); int sum=0,mid; cin>>n>>m>>q; for(int i=1;i<=q;i++) cin>>p[i].x>>p[i].y>>p[i].num,sum+=p[i].num; mid=sum+1>>1; sort(p+1,p+1+q,cmp1); int tot=0,x=0,y=0; for(int i=1;i<=q;i++){ tot+=p[i].num; if(tot>=mid){ if(sum%2)x=p[i].x;//总数是奇数,那么中位数很好确定 else if(tot==mid)x=(p[i].x+p[i+1].x)/2;//总数是偶数,当前刚好卡在一半的位置 else x=p[i].x; break;} } sort(p+1,p+1+q,cmp2); tot=0; for(int i=1;i<=q;i++){ tot+=p[i].num; if(tot>=mid){ if(sum%2)y=p[i].y;//总数是奇数,那么中位数很好确定 else if(tot==mid)y=(p[i].y+p[i+1].y)/2;//总数是偶数,当前刚好卡在一半的位置 else y=p[i].y; break; } } cout<
<<" "<
<

 

转载于:https://www.cnblogs.com/zsben991126/p/10759885.html

你可能感兴趣的文章
带你全面了解高级 Java 面试中需要掌握的 JVM 知识点
查看>>
sonar结合jenkins
查看>>
解决VS+QT无法生成moc文件的问题
查看>>
AngularJs练习Demo14自定义服务
查看>>
stat filename
查看>>
关于空想X
查看>>
CF1067C Knights 构造
查看>>
[BZOJ2938] 病毒
查看>>
webstorm修改文件,webpack-dev-server不会自动编译刷新
查看>>
Scikit-learn 库的使用
查看>>
CSS: caption-side 属性
查看>>
python 用数组实现队列
查看>>
认证和授权(Authentication和Authorization)
查看>>
Mac上安装Tomcat
查看>>
CSS3中box-sizing的理解
查看>>
传统企业-全渠道营销解决方案-1
查看>>
Lucene全文检索
查看>>
awk工具-解析1
查看>>
推荐一款可以直接下载浏览器sources资源的Chrome插件
查看>>
CRM product UI里assignment block的显示隐藏逻辑
查看>>