天天看點

(紀中)7208. 書頁【數學】

(紀中)7208. 書頁【數學】
(紀中)7208. 書頁【數學】
(紀中)7208. 書頁【數學】

解題思路

就從 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);
}