Codeforce Round #437 div2 A B C E 题解

Slurm集群调度策略详解(1)-主调度 Slurm调度系统中针对作业的调度主要有三种,主调度,回填调度,GANG调度,这篇文章主要针对主调度进行解析。 阅读详情


A:Between the Offices

题意:给出只含SF的字符串,S代表在S地,F代表在F地

若S-F的航班数多于F-S的航班数输出YES,否则输出NO

思路:考虑头尾,F开头肯定NO,S开头S结尾也是NO 其余都是YES


B:Save the problem!

题意:给出问题A的答案D,请构造其中一种数据,

问题A:给出N种,面值不同,数目无限的硬币,求组成总价M的组合数D

面值的数目不同视为不同情况

思路:只需1 2的硬币就可以构造所有的D

由母函数,1元可以表示成:A1(m)=(1+x+x^2+x^3+x^4...x^m)

由母函数,2元可以表示成:A2(m)=(1+x^2+x^4+x^6.....x^m)

D就等于 1元和2元的卷积,指数为M的系数 

现在考虑比较简单的情况。。

M=2  ,A1(2)*A2(2)=1+x+2x^2+x^3+x^4

M=3          = 1+x+2x^2+2x^3+x^4+x^5

M=4    1+x+2x^2+2x^3+3x^4+2x^5+2x^6+x^7+x^8

对于出现的最高系数

M=2或3 D=2 

M=4或5 D=3

所以对于每一个D 我们输出M=2D-1 N=2  \n1 2就好了

对于D=1特判


C:Ordering Pizza

题意:有两种pizza:AB,AB都能分成s小块,共N个人每个人要吃Si块 

每吃一块A的小块+Ai开心值  B的小块+Bi开心值  

买尽量少的pizza但是要尽量开心值最大,问最大的开心值是多少

思路:多出来的A小块需要转成B (A->B) 或者 多出来的B小块需要转成A  

比较两者,开心值减少的小,就选哪个

ans=理论开心最大值-因转化损失的开心值

那么输入的时候把ai>bi的划入A->B的集合

把ai<bi的划入B->A的集合

考虑贪心,对于A->B 尽量让Ai-Bi小的去转 ,排序

对于B->A 尽量让Bi-Ai小的去转

学到了个小技巧:如果si的和不是s的倍数,建一个虚拟人吃余数块但不加开心


E. Buy Low Sell High

题意:N天的股票价格,买卖不限,持有股票不限,但没有股票不能卖,问最大收益

思路:建一个multiset不断加入股价,如果今天的价格比队首低,删掉队首元素,加入两次今天的价格,

其中一次代表队首的股票升值成今天的股价,那么我们就可以赚差价


=========w========

AC code:

A:

int main()
{
	int n;
	cin>>n;
	getchar();
	char cs[105];
	for(int i=1;i<=n;i++)
	{
		char c;
		cin>>cs[i];
	} 
	if(cs[1]=='F')
	{
		printf("NO\n");
		return 0;
	}
	if(cs[1]=='S'&&cs[n]=='S')
	{
		printf("NO\n");
		return 0;
	}
	printf("YES\n");
	return 0;
}

B:

int main()
{ 
	int n;
	cin>>n;
	if(n==1)
	{
		printf("1 1\n");
		printf("1\n");
		return 0;
	}
		printf("%d 2\n",2*n-1);
		printf("1 2\n");
	return 0;
}

C:

#define ll long long
const int N =1e6+5;
ll a[N];
ll b[N];
ll eat[N];//每个人吃的数目
vector<pair<ll,ll> >atob,btoa;
int main()
{
	ll n,s;
	scanf("%I64d%I64d",&n,&s);
	ll sum=0;//小块总数目
	for(int i=0; i<n; i++)
	{
		scanf("%I64d%I64d%I64d",&eat[i],&a[i],&b[i]);
		sum+=eat[i];
	}
	ll nump=ceil((double)sum/s);// 要买多少份pizza
	ll extra=nump*s-sum;		//多出来的小块数
	eat[n]=extra;
	a[n]=0;
	b[n]=0;
	//计算理论最大值
	ll ans=0;
	ll cnta=0;
	ll cntb=0;
	for(int i=0; i<=n; i++)
	{
		if(a[i]>b[i])
		{
			ans+=a[i]*eat[i];
			atob.push_back(make_pair(a[i]-b[i],eat[i]) );
			cnta+=eat[i];
		}
		else
		{
			ans+=b[i]*eat[i];
			btoa.push_back(make_pair(b[i]-a[i],eat[i]) );
			cntb+=eat[i];
		}
	}
	//计算亏损 A-B or B-A
	ll lost=1e18;
	//A-B
	sort(atob.begin(),atob.end());
	ll tmp=0;
	ll extraa= cnta%s;//不能凑齐一份的A
	for(int i=0; i<(int)atob.size(); i++)
	{
		
		pair<ll,ll>p=atob[i];
		ll take=min(extraa,p.second);
		tmp+=take*p.first;
		extraa-=take;
	}
	lost=min(lost,tmp);
	
	//B-A
	tmp=0;
	sort(btoa.begin(),btoa.end());
	ll extrab=cntb%s;
	for(int i=0; i<(int)btoa.size(); i++)
	{
		
		pair<ll,ll>p=btoa[i];
		ll take=min(extrab,p.second);
		tmp+=take*p.first;
		extrab-=take;
	}
	lost=min(lost,tmp);
	
	ans-=lost;
	cout<<ans<<endl;
}

E:

#define ll long long
int n,w;
ll s;
multiset<int> hs;
int main()
{
	scanf("%d",&n);
	for(int i=0; i<n; i++)
	{
		scanf("%d",&w);
		hs.insert(w);
		hs.insert(w);
		hs.erase(hs.begin());
		s-=w;
	}
	for (multiset<int>::iterator poi=hs.begin();poi!=hs.end();poi++) 
	s+=*poi;
	printf("%lld\n",s);
}
















ICESat-2数据下载的两种方法 ICESat-2数据下载 阅读详情

相关推荐

机器学习预测材料性能:从特征工程到SHAP可解释性分析

机器学习在材料科学中的应用,核心在于将复杂的材料性能预测问题转化为数据驱动的建模任务。其基本原理是通过算法从历史数据中学习特征与目标属性之间的映射关系。这项技术的价值在于能够大幅加速新材料的发现与设计周期,降低传统“试错法”的高昂成本。在工程实践中,它广泛应用于预测如形成能、带隙、弹性模量以及居里温度等关键材料性能。具体到磁性材料领域,居里温度的准确预测对于永磁体和自旋电子器件设计至关重要。本项目深入探讨了如何利用特征工程从材料成分与结构中构建有效描述符,并借助SHAP这一可解释性工具,揭示模型决策背后的物

weixin_27155667的博客 650

B. Getting an A(水题)

B. Getting an Atime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputTranslator's note: in Russia's most widespread grading system, there are four grades...

JiaYao的博客 588

TCP协议中ARQ自动重传的三种实现方式对比(含SACK详解)

本文深入解析TCP协议中ARQ自动重传的三种实现方式,包括停止-等待、回退N步和选择重传协议,特别详细介绍了SACK机制的工作原理和优势。通过对比分析各协议的效率、复杂度和适用场景,为网络通信中的可靠性传输提供了实用的选型指南。

weixin_30776273的博客 462

CodeForces 437C (贪心,拓扑排序)

题意: 给出一个n个点m条边的图,每个点有一个权值。每次分割出一个点,代价是该点相邻点的权值和,问分割所有的点最小的代价是多少。 思路: 建成有向图,方向从权值大的点指向权值小的点,边权为两个点权中小的那个。 然后从入度最小的点开始分割,边分割边修改入度,一直取入度最小的点分割即可。 代码: #include &lt;iostream&gt; #include &lt;iomanip&...

陋室 1066

DIY音频必备:手把手教你用AB类功放模块打造高保真桌面音响(含电路图)

本文详细指导如何利用AB类功放模块DIY高保真桌面音响,涵盖选型指南、核心元器件清单、电路搭建与焊接工艺,以及系统调试与音质优化技巧。AB类功放以其接近A类功放的音质和B类功放的效率,成为音频爱好者的理想选择,适合有一定电子基础的实践者。

weixin_42665725的博客 443

防火墙旁挂组网

分析拓扑结构,涉及路由器、交换机、防火墙。步骤包括基础 IP 配置、OSPF、防火墙双机热备、安全策略等。第一步,路由器配置。R5、R6 连接 ISP 和核心交换机,配置接口 IP,然后 OSPF。然后防火墙,双机热备的 HRP、VRRP,还有安全策略。接着交换机,划分 VLAN,配置 TRUNK,加入 OSPF。

weixin_73298423的博客 902

Codeforces 437C The Child and Toy(贪心)

题目连接:Codeforces 437C The Child and Toy 题目大意:孩子有一个玩具,有n个部件组成,m条绳子组成,每条绳子连接两个部件。小孩比较顽皮,要将玩具拆成不可分割的部件,每次剪断一条绳子的代价是该绳子连接的两个部件的权值中较小的值。问说最小的总代价是多少。 解题思路:以为每条边都是要被剪断的,所以将节点按照代价值从大到小排序,每次拿掉权值大的点,与该点连接并

不慌不忙、不急不躁 2119

突破Cloudflare 5秒盾:Python爬虫+GPT分析JS混淆,零基础也能爬

传统突破Cloudflare 5秒盾的门槛极高,需要精通JS逆向、浏览器指纹伪造、行为模拟,而本文的“Playwright+GPT”方案,彻底降低了门槛——无需懂逆向、无需手动改指纹、无需写复杂JS代码,只需3步就能突破大部分网站的防护。低门槛:新手1小时内就能上手,无需逆向工程知识;高成功率:覆盖80%+的普通防护网站,15%的中等防护网站;易扩展:适配不同类型网站,可结合代理、打码平台升级为高可用系统。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1163

codeforces 437 c 贪心+图论

题目: C. The Child and Toy time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output On Children's Day, the child g

xiaoli_nu的博客 445

[QMT量化交易小白入门]-九、如何用Python记录每一笔交易和调试,报错信息?

定义一个函数来获取日志记录器。: 返回全局的日志记录器,以便在其他地方调用。

木头大左的博客 2143

Unreal5从入门到精通之一文搞懂Unreal的C++代码编译之谜

我们在开发Unreal项目时,如果时蓝图模板的项目,一般问题不大,因为当你修改完蓝图,点击编译Compile+保存Save,就可以继续开发了。这对于开发者来说也非常友好。但是,如果你使用的C++模板开发项目,代码编译一切都变得魔幻起来,IDE(VS/Rider)里面有编译,编辑器里面也有编译,有什么区别呢?我们来列举几个新手常碰到的问题。1.代码我明明新建了,编辑器里怎么看不到?2.昨天我新家的功能运行的好好的,今天怎么感觉还是老逻辑。或者昨天加的新代码,新蓝图不见了。

TxNet 1604

codeforces 632E. Thief in a Shop(生成函数)

传送门 题意简述:给nnn个物件,物件iii有一个权值aia_iai​,可以选任意多个。现在要求选出kkk个物件出来(允许重复)问最后得到的权值和的种类数。 n,k,ai≤1000n,k,a_i\le1000n,k,ai​≤1000 思路: 这是一道很显然的生成函数,我们把选一个物件的生成函数给列出来,然后取它的kkk次方就是答案。 显然可以上一波fftfftfft 成功T飞 在博主卡场无果之后...

苟为蒟蒻又何妨 557

Python 爬虫 + 数据分析:社会调查数据抓取与结果可视化分析

在当今数字化时代,数据已成为推动社会发展的关键资源之一。无论是市场调研、学术研究还是政策制定,社会调查数据都扮演着至关重要的角色。通过 Python 爬虫技术,我们可以高效地获取这些数据,并结合数据分析与可视化工具,深入挖掘数据背后的价值。本文将通过一个完整的实战项目,带你掌握如何使用 Python 爬虫抓取社会调查数据,并进行可视化分析。

yansideyucsdn的博客 126

Codeforces Round #437 (Div. 2)[A、B、C、E]

Codeforces Round #437 (Div. 2) codeforces 867A. Between the Offices(水) 题意:已知白天所在地(晚上可能坐飞机飞往异地),问是否从西雅图飞到旧金山次数更多。 题解:只要判断第一天和最后一天状态即可。 1 #include<cstdio> 2 #include<cstrin...

dhe56357的博客 212

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Codeforces Round #250 (Div. 2) (ABCD题解)

Codeforces Round #250 (Div. 2) (ABCD题解)

Tc的专栏 1768

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

(Codeforces Round 947 (Div. 1 + Div. 2)前三题)

题意:对于整个数组,我们可以选择一个范围(l,r),将这个范围内的数全部变为这个范围内的中位数,可以进行多次操作或者不做操作,求最后的数组的全部元素的最大值。思路:因为当选择的范围长度是2时,就可以将这个范围的两个数全部变为这两个数的较小值(x),那么一定存在一个长度为3的范围内的中位数

2301_80314483的博客 762

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Codeforces Round #437-贪心-C. Ordering Pizza

http://codeforces.com/contest/867/problem/C 给定m个人,他们吃第一种披萨,吃一片可以获得a的幸福值。 吃2片可以获得b幸福值。他们每个人必须要吃x片。 并且每一个披萨是s片。 问你如何在最少的披萨饼书目下,得到的幸福值最大。 我开始一位计算一下每个人饼数的sum。 然后除s 向上取整 然后计算一下最优解,如果最优解的饼的数目小于等于这数目,就是

天与云与山与水 375

Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2)

A - Between the Offices 题目链接http://codeforces.com/contest/867/problem/A 解题心得:就是一个水题,读懂题就好,如果从S到F次数大于F到S就输出YES,否则输出NO。 #include<bits/stdc++.h> using namespace std; cons...

weixin_30655569的博客 134

Round 6 B - Greg and Graph CodeForces - 295Div.1B - Floyd && DP

转载自: http://blog.youkuaiyun.com/qq_24451605/article/details/48544639

Joovo的博客 565

CodeForces 891E Lust(生成函数)

    大致题意:给出一个数列{an},每次随机的选择一个数字ai,产生出了ai之外其余所有数字之积的贡献,然后ai减一。现在进行k次这样的操作,问最后者k次操作产生的贡献之和是多少。 这个贡献看起来很复杂,但是实际上,我们可以把每一次操作的贡献,看作是操作前后所有数字的乘积之差。具体推导如下:                                          ...

alpc_qleonardo 939

Codeforces 437C The Child and Toy 简单图论贪心

C. The Child and Toy time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output On Children's Day, the child got a toy

J. Cole 691

Codeforces Round 471-2B题解报告

Let’s call a string adorable if its letters can be realigned in such a way that they form two consequent groups of equal symbols (note that different groups must contain different symbols). For exampl...

小树学信奥 534

Codeforces Round #491 (Div. 2) A.B.C.D

打的好烂的一场啊,,, B竟然还FST了,,, 被C卡的不要不要的 ,, A. If at first you don’t succeed… 忘记题意了,,, 特判一下就好了,, #include &lt;bits/stdc++.h&gt; using namespace std; #define LL long long const int MAXN = (int)2e5+10;...

Yishui_lovely 237

【浮*光】【Codeforces Round #491 (Div. 2)】A,B,C,D,E

A. If at first you don't succeed...#include &lt;bits/stdc++.h&gt; using namespace std; typedef long long ll; /*【A. If at first you don't succeed...】 通过考试的人中,A名学生去了a餐厅,B名学生去了b餐厅,C名学生去了这两家餐厅。 团队有N名学生。根...

flora715的博客 257

Codeforces Round #423 (Div. 2) C. String Reconstruction思维 D. High Load 构造

C:http://codeforces.com/contest/828/problem/C 题意:有一个字符串,你知道他的一些子串所在的位置,求符合条件的字典序最小的原串 因为已知的数据较大,还存在较多重复的部分,直接暴力不可行 可以记录原串每个位置的下一个没确定出来的字符的位置(记住next【i】),优化后可以过,时间较长 #include #define eps 1e-9 #defin

jerans的博客 672

CodeForces ~ 991B ~ Getting an A(贪心)

题意 给你N个数字,你可以将其中一个数字变为5,问最少操作几次可以使得平均值≥4.5 思路 排个序,优先变值小的 #include &lt;bits/stdc++.h&gt; using namespace std; const int MAXN = 105; int n, a[MAXN]; double sum; int main() { scanf("%d", &amp...

张松超的博客 431
上一篇: sdut 2605 预处理A^N mod p
下一篇: 刷一波数学期望,数论,数学
animalcoder
博客等级 码龄9年 43粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值