Chat Ban 二分,等差数列(1300)
题意 :
- 有2k−12k-12k−1行,且1-k行递增,k+1行-2k-1行递减,发大于等于x个表情后会被封号,问最多发出多少行,发生“超出”行为的那行也累加答案中
思路 :
- 范围太大了,只能用二分来做
- 分前半段和后半段来考虑,二分时边界取大一点
- 发现后半段如果第k+1行看作第一行,那么第i行的表情数就是
k-mid
- ans(最终结果)更新(当前mid如果合法就更新)时注意和边界判断
- 后半段二分的时候,L也是从1算起,为了扩大二分范围,L初始化为0
- setprecision在头文件
iomanip
中
#include <iostream>
#include <iomanip>using namespace std;
using ll = long long;int main()
{cin.tie(nullptr) -> sync_with_stdio(false);cout << fixed << setprecision(20);int _ = 1;cin >> _;while (_ -- ){ll k, x;cin >> k >> x;ll half = (1 + k) * k / 2;ll ans = 1;if (x <= half){ll L = 0, R = k + 1;while (L < R){ll mid = L + R >> 1;ll now = (1 + mid) * mid / 2;if (now < x){ans = min(2 * k - 1, mid + 1);L = mid + 1;}elseR = mid;}}else{ans = k;ll L = 0, R = k + 1;while (L < R){ll mid = L + R >> 1;ll now = (k - 1 + k - mid) * mid / 2 + half;if (now < x){ans = min(2 * k - 1, k + mid + 1); // 不要忘了加上kL = mid + 1;}elseR = mid;}}cout << ans << endl;}
}
Chat Ban 二分,等差数列(1300)相关推荐
- CF1612C Chat Ban
cf1612C Chat Ban 输入k和x,求出你能过发送信息的行数 可以分开3种情况去讨论,如何根据求根公式去求 #include<bits/stdc++.h> using names ...
- Educational Codeforces Round 117 (Rated for Div. 2)
A. Distance B. Special Permutation C. Chat Ban D.X-Magic Pair E. Messages F:没看F,好难的样子 G. Max Sum Arr ...
- Educational Codeforces Round 117 (Rated for Div. 2)题解(A~D)
Educational Codeforces Round 117 (Rated for Div. 2) 今天这场没打,赛后从九点半到十一点把前面四个题目给补了一下,E题明天有时间看看能不能弄出来. A ...
- python读取json文件,大批量写入mongo
1.需求:现在要求将服务器上523GB的json文件,导入到mongo库中,由于mongoimport 速度在25MB/s, 现在用脚本多进程将数据读取,在写入mongo中. 2.源码: # -*- ...
- LeetCode-数据结构
文章目录 应做未做 未弄懂 经典题+易错题 一.长见识的方法 二.杂七杂八积累 三.面试常考题目索引 java刷题常用 树 数组 摩尔投票算法 堆 数据流的中位数 排序 四.基础知识总结 4.x 数组 ...
- 蓝桥杯校内选拔赛(河南农业大学)
这里写目录标题 蓝桥杯介绍 前言 A通辽 B仿生机器人 C加减乘除 D霹雳数 E扫雷 F项目招标 G一步两步 H短板 蓝桥杯介绍 蓝桥杯全国软件和信息技术专业人才大赛[1]是由工业和信息化部人才交流中 ...
- AcWing120防线 经典题二分+前缀和+等差数列
达达学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天-受尽屈辱的达达黑化成为了黑暗英雄怪兽达达. 就如同中二漫画的情节一样,怪兽达达打算毁掉这个世界. 数学竞赛界的精英 lqr 打算阻止怪兽达达的阴谋 ...
- LeetCode 1300. 转变数组后最接近目标值的数组和(二分查找)
1. 题目 给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value , 使得将数组中所有大于 value 的值变成 value 后,数组的和 最接近 target (最接 ...
- LeetCode:数组(排列组合,二分查找I,二分查找II)
1,排列组合 38,剑指Offer:字符串的排列 题目:输入一个字符串,打印出该字符串中字符的所有排列.你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. class Solution {Li ...
最新文章
- 浏览器安全检查己通过_百度主动推送三项合一功能
- linux 脚本案例,30个关于Shell脚本的经典案例(上)
- memcpy 头文件_C|memcpy()和memmove()的比较及实现
- Flutter 2 源码阅读
- megacli通过盘符定位物理盘_柴少鹏的官方网站
- 磁盘里竟然还有这个东西!多亏这个1.5M大小的神器工具发现了它
- SpringMVC的工作流程
- 1-第一个pyqt5程序
- 初窥Linux 之 我最常用的20条命令
- 68 SD配置-发票凭证配置-定义出具发票类型
- 如何实现共享软件网络授权认证,包括注册新用户、登录、修改密码等操作
- ProFile配置节属serializeAs
- 【转】NGUI创建UIRoot后报NullReferenceException的解决办法
- JavaScript控制类名(className属性)
- python 动态加载代码_python 动态网页爬取?(不是加载更多页的动态网页哟)?...
- 推荐几款大家常使用的 SSH 客户端工具
- 模拟电视原理(笔记)
- 特征值与特征向量及其应用
- 【方差分析】之matlab求解
- php之RSA加密解密