首页 > 极客资料 博客日记
Codeforces Round894.D
2024-08-14 15:00:03极客资料围观21次
极客之家推荐Codeforces Round894.D这篇文章给大家,欢迎收藏极客之家享受知识的乐趣
题目: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;
}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”