首页 > 其他分享 >Codeforces Round894.D

Codeforces Round894.D

时间:2024-08-14 14:54:45浏览次数:17  
标签:Round894 ll Codeforces 冰淇淋 mid ans 类型

题目:D. Ice Cream Balls
题目链接:https://codeforces.com/contest/1862/problem/D
思路:二分找到当所有冰淇淋球类型不同的情况下,假设记位k,满足k(k-1)/2 <=n ;此时不一定就等于k,所以考虑到有重复类型的冰淇淋球。
当有两个重复类型的球时,可做不同类型的冰淇淋有 k
(k-1)/2+1 ,若有三个及以上重复类型的冰淇淋球则结果仍是加1并且还浪费掉了冰淇淋球所以不满足最小数的条件。
所以,重复类型的冰淇淋球最后仅为 n-k(k-1)/2;
综上所述,结果为k+n-k
(k-1)/2;

详细代码如下:

点击查看代码
#include <iostream>
#include <climits>
using namespace std;
#define ll long long

void solve(ll n)
{
	ll l = 1, r = INT_MAX,ans=0;// 2147483647
	while (l <= r)
	{
		ll mid = (l + r) >> 1;
		if ((mid * (mid - 1) / 2) > n) r = mid - 1;
		else
		{
			l = mid + 1;
			ans = mid;
		}
	}
	ll result = ans + n - (ans * (ans - 1) / 2);
	cout << result << endl;

}
int main()
{
	ios::sync_with_stdio(false); 
	cin.tie(nullptr);

	int t;
	ll n;
	cin >> t;
	while (t--)
	{
		cin >> n;
		solve(n);

	}

	return 0;
}

标签:Round894,ll,Codeforces,冰淇淋,mid,ans,类型
From: https://www.cnblogs.com/Tree907/p/18359008

相关文章

  • Codeforces Round 966 (Div. 3)
    Abstract第二次打CodeForce。A.PrimaryTaskIdea签到题。意思就是说给一个字符串,要你判断一下前两位是不是10,除去前两位后后面的部分是不是一个大于等于2的数(不能有前导零)。Code#include<bits/stdc++.h>usingnamespacestd;voidsolve(){stringtext;......
  • Codeforces Round 947 (Div. 1 + Div. 2)
    [传送门](Dashboard-CodeforcesRound947(Div.1+Div.2)-Codeforces)###A.枚举一个位置,把他前面和后面反转一下判断就行。###B.找到最小的数和最小的不是它的倍数的数当作$i$和$j$,判断合不合法即可。###C.不知道怎么就模出来了操作长度一定小于等于3,然后......
  • Codeforces Round 946 (Div. 3)
    ###G.一眼看上去很想个背包,然后发现好像不大能做。考虑反悔贪心。对于当前的$c_i$,如果到现在攒的钱足够买这个,那就直接买了它。如果钱不够,就从之前的买过的里面把一个最大的给退掉,然后买这个,优先队列维护即可。```c++#include<bits/stdc++.h>#defineintlonglongu......
  • Codeforces Round 964 (Div. 4)
    ###A.```c++#include<bits/stdc++.h>usingnamespacestd;constintN=1e6+7;voidsolve(){  intx;  cin>>x;  cout<<x/10+x%10<<endl;}intmain(){  intT;  cin>>T;  while(T--)solve();......
  • 【做题记录】Codeforces Round 915 (Div. 2)/CF1905A-F
    @目录A.ConstructiveProblems(800)B.Begginer'sZelda(1100)C.LargestSubsequence(1400)D.CyclicMEX(2000)E.One-X(2400)F.FieldShouldNotBeEmpty(2600)提交记录A.ConstructiveProblems(800)注意到,对于\(n\timesn\)的矩阵,只需要把对角线全染黑即可。推广到\(......
  • Codeforces Round 903 (Div. 3) F. Minimum Maximum Distance
    https://codeforces.com/contest/1881/problem/F不难发现一件事情,我们这里最后的答案所在的点是1和3号点。我们有没有发现一个性质:就是这两个点都是红点间的路径上的,而且最后的答案就是最长的红点间的距离的长度除以二上取整。那么,我们怎么找到最长的红点间的距离呢?很显......
  • Codeforces Round 964 (Div. 4)
    CodeforcesRound964(Div.4)标题CodeForces1999A.A+BAgain?时限1second空限256megabytes题目描述给定一个两位数的正整数\(n\),求其数字之和。输入第一行包含一个整数\(t\)(\(1\leqt\leq90\))——测试用例的数量。每个测试用例的唯一一行包含一个两位数的正......
  • Codeforces Round 963 (Div. 2)
    Preface有懒狗上周日的比赛拖到这周日才写博客,我不说是谁这场比赛的时候因为C数组没开两倍卡了1h最后写对拍才看出来,直接心态爆炸导致D没写完掉大分A.QuestionMarks签到#include<cstdio>#include<iostream>#include<utility>#include<vector>#include<cstring>......
  • Codeforces Round 965 (Div. 2) 题解
    个人难度顺序:A<D<B<C<E。A.FindKDistinctPointswithFixedCenter如果\(k\)是偶数,构造\((x_c+i,yc+i)\),其中\(-\frac{k}{2}\lei\le\frac{k}{2}\)。对于\(k\)是奇数,先加一个点\((xc,yc)\),然后就变成偶数的情况了。B.MinimizeEqualSumSubarr......
  • Codeforces Round 965 (Div. 2) 补题记录(A,B,D,E1)
    speedforcesagain~A<E1<<B<D<<CA若\(k\equiv1(\bmod2)\),则构造\((x,y)\),\((x-1,y)\),\((x+1,y)\),\((x-2,y)\),\((x+2,y)\),\(\ldots\)。否则构造\((x-1,y)\),\((x+1,y)\),\((x-2,y)\),\((x+2,y)\),\(\ldots\)。#pra......