萌新求助站外题
  • 板块学术版
  • 楼主xsmfollower
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/6/8 20:37
  • 上次更新2024/6/8 22:18:16
查看原帖
萌新求助站外题
1308728
xsmfollower楼主2024/6/8 20:37

这个帖子的 T2

思路就是贪心,优先把 G<CG<C 的放在前面,G<CG<C 的按 GG 升序排序,G≥CG \ge C 的按 CC 降序排列。

但不知道排好序咋求过河时间,以下代码 20 分。

哪位大佬帮忙调一下 /bx /bx

#include<cstdio>
#include<algorithm>
using namespace std;
const int N=25010;
struct P { int g,c; }a[N];
bool cmp(P a,P b) {
  bool flag1=(a.g<a.c),flag2=(b.g<b.c);
  if(flag1!=flag2) return flag1>flag2;
  if(flag1) return a.g<b.g;
  return a.c>b.c;
}
int main() {
  int n; scanf("%d",&n);
  for(int i=1;i<=n;i++) scanf("%d %d",&a[i].g,&a[i].c);
  sort(a+1,a+n+1,cmp); int ans=a[1].g+a[n].c;
  for(int i=1;i<n;i++) ans+=max(a[i].c,a[i+1].g);
  printf("%d",ans);
  return 0;
}
2024/6/8 20:37
加载中...