题目链接

思路:直接模拟即可,需要注意,排序要用stable_sort()

#include<iostream>
#include<algorithm>
#include<queue>
#include<set>
#include<unordered_map>
#include<stack>
#include<cstdio>
#include<vector>
#include<cstring>
#include<string>
#include<map>
#include<cmath>
#include<bitset>
#define ll long long
#define inf 0x3f3f3f3f
#define bug(a) cout<<"* "<<a<<endl;
#define bugg(a,b) cout<<"* "<<a<<" "<<b<<endl;
#define buggg(a,b,c) cout<<"* "<<a<<" "<<b<<" "<<c<<endl;
using namespace std;
typedef pair<ll,ll> P;
const int N=1e5+10;
const ll mod=1e9+7;int n,a[N],b[N],c[N],d[N],Ax[N],Bx[N];
ll sum1,sum2,ans1,ans2;struct node{int gj,xl,zh;
}va[N],vb[N];
bool cmp1(node x,node y){return x.zh>y.zh;
}bool cmp2(node x,node y){return x.zh<y.zh;
}int main()
{cin>>n;char X;cin>>X;for(int i=0;i<n;i++)scanf("%d",&a[i]);for(int i=0;i<n;i++)scanf("%d",&b[i]);for(int i=0;i<n;i++)scanf("%d",&c[i]);for(int i=0;i<n;i++)scanf("%d",&d[i]);for(int i=0;i<n;i++)scanf("%d",&Ax[i]);for(int i=0;i<n;i++)scanf("%d",&Bx[i]);vector<node> va,vb;for(int i=0;i<n;i++){va.push_back({a[i],b[i],a[i]+b[i]});vb.push_back({c[i],d[i],c[i]+d[i]});}stable_sort(va.begin(),va.end(),cmp1);//用稳定排序stable_sort(),大小相同时不改变初始顺序stable_sort(vb.begin(),vb.end(),cmp2);int p1=0,p2=0;int cnt1=Ax[p1],cnt2=Bx[p2];node pa,pb;while(ans1<n&&ans2<n){if(X=='A'){vb[cnt2-1].xl-=va[cnt1-1].gj;sum1+=va[cnt1-1].gj;cout<<"A"<<" "<<va[cnt1-1].gj<<endl;if(vb[cnt2-1].xl<=0){ans2++;p2++;cnt2=Bx[p2];}X='B';}if(X=='B'){va[cnt1-1].xl-=vb[cnt2-1].gj;sum2+=vb[cnt2-1].gj;cout<<"B"<<" "<<vb[cnt2-1].gj<<endl;if(va[cnt1-1].xl<=0){ans1++;p1++;cnt1=Ax[p1];}X='A';}}printf("%lld %lld %lld %lld\n",sum1,sum2,ans1,ans2);return 0;
}
/*
2
B
1 2
1 1
1 3
3 1
1 2
1 2
*/

(stable_sort稳定排序)阿罗拉联盟赛相关推荐

  1. ACM练习 小Z来讲排名规则(WA)【C++ stable_sort稳定排序】

    描述 本次比赛严格按照ACM的排名规则进行,但可能很多小伙伴并不太了解这个排名方法,今天小Z来给大家简单说明一下.每个人的排名根据他解出的题目数量.做题时间还有错误提交次数决定,呃...在某些特殊情况 ...

  2. Bailian3238 生日相同【稳定排序】

    3238:生日相同 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的学号,出生月日.试找出所有生日相同的学生. ...

  3. Bailian4016 班级排名【稳定排序】

    4016:班级排名 总时间限制: 1000ms 内存限制: 65536kB 描述 信息科学技术学院年终评定讲学金,需要对整个年级的学生按照平均分数进行排名. 要求:根据输入的学号和平均成绩,按照平均成 ...

  4. HDU1872 稳定排序【稳定排序】

    稳定排序 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...

  5. hdu 1872(稳定排序)

    稳定排序就是相同元素排序后次序不会发生改变的排序方法. 冒泡是稳定排序. 快一点的归并也是稳定排序. 稳定排序 Time Limit: 3000/1000 MS (Java/Others)    Me ...

  6. 稳定排序与不稳定排序的定义

    如果队列中存在两个相等的数字排序过程中 这两个数字的先后顺序如果不会发生变化 就叫做稳定的排序反之叫做不稳定 参考文章:稳定排序和不稳定排序.

  7. python numpy np.lexsort()(使用键序列执行间接稳定排序)(具体没太搞懂区别?)

    from numpy\core_multiarray_umath.py @array_function_from_c_func_and_dispatcher(_multiarray_umath.lex ...

  8. boost::sort模块实现测试并行稳定排序

    boost::sort模块实现测试并行稳定排序 实现功能 C++实现代码 实现功能 boost::sort模块实现测试并行稳定排序 C++实现代码 #include <ciso646> # ...

  9. HDU--1872 稳定排序

    大家都知道,快速排序是不稳定的排序方法.  如果对于数组中出现的任意aii,ajj(i<j),其中aii==ajj,在进行排序以后aii一定出现在ajj之前,则认为该排序是稳定的. 某高校招生办 ...

最新文章

  1. mysql慢查询检查流程_简单谈谈MySQL优化利器-慢查询
  2. C#调用C++DLL传递结构体数组的终极解决方案
  3. SPI参数化分配寄存器
  4. php分页类示例下载,PHP 通用分页类的简单示例
  5. 备战毕设——JAVA基础(简单的数据类型和语句类型)
  6. signal(SIGCLD,SIG_IGN)
  7. 多媒体信息技术对远程教育的影响
  8. linux ssd 4k对齐工具下载,4k对齐检测工具(as ssd benchmark)
  9. nssa和stub_实验4 OSPF的特殊区域STUB和NSSA
  10. 学校网站建设的必要性
  11. Elasticsearch地理位置总结
  12. 如何开发手机商城app? 商城APP功能
  13. 从容器中获取宿主机IP地址
  14. 准备嵌入式Linux开发环境
  15. Oracle---SQL语句
  16. 检查并杀死mysql锁死的进程
  17. Java 生成随机中文、英文姓名(下)
  18. ChinaSoft 论坛巡礼 | 软件工程研究与实践
  19. 二、获取AccessToken
  20. java原生开发是什么意思,深入剖析

热门文章

  1. Hadoop伪分布式简明安装操作说明
  2. android 自动更换壁纸,超简单实用!教你安卓自动更换壁纸的方法
  3. 马云,刘强东功成身退!给年轻人留下了6个启示
  4. java双线_[量化小实验] 双线 RSI 择时策略
  5. arduino十进制转十六进制
  6. 盘点那些具有特色的写作软件
  7. 计算机网络(3)数据链路层
  8. 微信小程序 页面传参(url)参数过长报错解决办法
  9. ad_with_lanelet2 编译问题解决
  10. Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps 论文解读