CSU-ACM2018寒假集训比赛1B C - Contest Balloons

2023-10-29 19:20

本文主要是介绍CSU-ACM2018寒假集训比赛1B C - Contest Balloons,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目传送门

优先队列 / 重载运算符


1、按每支队伍的气球数从大到小排序

2、将气球数比Limak多的队伍加入优先队列

优先队列按队伍重量与气球数的差值从小到大排序

此处需用到重载运算符

3、判断是否能让队首上天,

能,则让他上天,Limak减去相应气球数,继续第2步骤

不能,则得到答案


代码:

#include <algorithm>
#include <iostream>
#include <string>
#include <cstdio>
#include <queue>
#include <cmath>using namespace std;struct node
{long long num,wig;bool operator < (const node & a) const{return wig - num > a.wig - a.num;}
}s[333333],k;bool judge (node a,node b){return a.num > b.num;}priority_queue <node> que;int main ()
{int n;scanf ("%d",&n);scanf ("%lld%lld",&k.num,&k.wig);for (int i=1;i<n;i++){scanf ("%lld%lld",&s[i].num,&s[i].wig);if (s[i].num > s[i].wig){i--;n--;}}sort (s+1,s+n,judge);int o=1,cnt=1;bool flag = true;while (o < n && s[o].num > k.num){//cout<<"in  "<<s[o].num<<" "<<s[o].wig<<" "<<k.num<<endl;cnt ++;que.push (s[o]);o ++;}int ans = cnt;while (!que.empty() && flag){long long tmp = que.top().wig - que.top().num + 1;if (k.num >= tmp){//cout<<"out "<<que.top().num<<" "<<que.top().wig<<" "<<k.num<<endl;k.num -= tmp;cnt --;que.pop();}elseflag = false;while (o < n && s[o].num > k.num){//cout<<"in  "<<s[o].num<<" "<<s[o].wig<<" "<<k.num<<endl;cnt ++;que.push (s[o]);o ++;}ans = min (ans,cnt);}printf ("%d\n",ans);return 0;
}







e.g. gai中国有嘻哈的歌怎么都没了再见


这篇关于CSU-ACM2018寒假集训比赛1B C - Contest Balloons的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/302836

相关文章

csu(背包的变形题)

题目链接 这是一道背包的变形题目。好题呀 题意:给n个怪物,m个人,每个人的魔法消耗和魔法伤害不同,求打死所有怪物所需的魔法 #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>//#include<u>#include<map

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

AtCoder Beginner Contest 370 Solution

A void solve() {int a, b;qr(a, b);if(a + b != 1) cout << "Invalid\n";else Yes(a);} B 模拟 void solve() {qr(n);int x = 1;FOR(i, n) FOR(j, i) qr(a[i][j]);FOR(i, n) x = x >= i ? a[x][i]: a[i][x];pr2(

我们依旧在追梦的路上-山东省第六届ACM比赛总结

这场比赛从结果而言达到了预期(金牌),从过程而言和我的预期相差甚远(打的太乱,个人发挥很差),还好关键时刻队友抗住压力,负责后果真的不堪设想。 热身赛 热身赛纯粹测机器的,先把A,B,C草草水过(A题小写x打成大写的也是醉了),我和老高开始各种测机器,long long不出所料是lld的,试了一下除0和数组越界的re问题,发现没有re,只有wa(甚至数组越界还AC了),至于栈深的话也没过多追

CF Bayan 2015 Contest Warm Up B.(dfs+暴力)

B. Strongly Connected City time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output 题目链接: http://codeforces.com/contest/475/probl

CF Bayan 2015 Contest Warm Up A.(模拟+预处理)

A. Bayan Bus time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output 题目链接: http://codeforces.com/contest/475/problem/A The fi

2014暑假集训搜索专题

A - 漫步校园 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Description LL最近沉迷于AC不能自拔,每天寝室、机房两点一线。由于长时间坐在电脑边,缺乏运动。他决定充分利用每次从寝室到机房的时间,在校园里散散步。整个HDU校园呈方形布局,可划