(纪中)7208. 书页【数学】

119 篇文章 0 订阅
57 篇文章 0 订阅

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


解题思路

就从 k + 1 k+1 k+1开始暴力的假设后面的都是文本页,当再加一页文本页,数码和就超过 s s s的时候,开始贪心。

为了补上s和当前数码和的差值,试着让每一页都往后推一页,因为就算全部文本页都往后推了一页,也只多了一个插图页。

假设现在文本页为 x x x页,多了一个插图页的代价,可以让全部文本页都往后推了一页,让差值减小x。所以用差值除以 x x x的商,就是至少要多多少插图页,最后如果差值除以x有余数(设为 e e e),插图页还要加一,因为还要让e个文本页往后推,而 e < n e<n e<n,保证不会多出两个插图,只用加一。


代码

#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define ll long long

using namespace std;

ll k,s,w;

int main(){
	scanf("%lld%lld",&k,&s);
	ll j=k+1,ss=s;
	while(ss-j>=0)
	{
		ss=ss-j;
		j++;
	}
	j=j-1-k;
	if((ss/j)*j==ss)
		printf("%lld",ss/j+k);
	else printf("%lld",ss/j+k+1);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值