首页 > 小红关鸡
头像 AliLexiWalker
发表于 2026-05-01 00:02:40
先将坐标排序,然后用双指针找到长度不超过k的区间中包含最多鸡窝的数量,最后用该最大数除以n得到概率。 import sys data=sys.stdin.read().split() it=iter(data) MOD=1e9+7 MOD2=998244353 def solve(): n 展开全文
头像 小男娘
发表于 2026-05-01 00:33:56
题目可以转化成找出能圈最多鸡窝的栅栏喵~排序双指针就可以了喵~ #include <algorithm> #include <cfloat> #include <iomanip> #include <iostream> #include <vec 展开全文
头像 飞鸢泛惊鸿
发表于 2026-05-01 10:46:02
import sys input=sys.stdin.readline n,k=map(int,input().split()) nums=sorted(list(map(int,input().split()))) l=0 ans=0 for r in range(n): while nu 展开全文
头像 光电理中外范育博
发表于 2025-09-18 21:24:11
首先用双指针,算法去做(无法用滑动区间,因为区间长度不固定),然后保留4位小数即可 using namespace std; #define int long long const int N=2e5+10; int a[N]; vector<int>q; signed main() 展开全文
头像 IA3000
发表于 2026-05-01 00:54:25
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; int n, k; int x[N]; void solve() { cin >> n >> k; for 展开全文
头像 BeauWill
发表于 2026-05-01 04:00:53
Modern Cpp二分写法 #include <iostream> #include <vector> #include <algorithm> #include <iomanip> int main() { std::ios::sync_wi 展开全文
头像 此在Dasein
发表于 2026-05-01 04:18:00
问题分析 本问题的核心是在一维数轴上寻找一个长度不超过 的闭区间 ,使得该区间内覆盖的离散点(鸡窝)数量最大化。 概率本质:由于小鸡等概率出现在 个鸡窝中,成功“关鸡”的概率 ,其中 是落在区间 内的鸡窝数量。由于 是常数,最大化概率等价于最大化 。 区间边界确定性:对于任意一个包含 展开全文
头像 4FGR
发表于 2026-05-01 09:04:22
想要得到最大的概率,实际上就是找出某个端点 到 所能覆盖的最多鸡窝数,显然端点应该贪心的为其中一个鸡窝,我们只要从一个鸡窝 出发,判断最大能包含的鸡窝数,记录其中的最大值除以 即可。排序后,使用二分查找到大于 的位置,减去 就得到了该区间包含的鸡窝数。 #include <iost 展开全文
头像 牛客524077229号
发表于 2026-05-01 14:34:04
#include <iostream> #include<stdio.h> #include<vector> #include<algorithm> using namespace std; int main() { int n,k; 展开全文
头像 W_L_J_Y
发表于 2026-05-05 13:24:59
#include <bits/stdc++.h> #define ll long long using namespace std; ll a[100005]; void solve() { ll n, k; cin >> n >> k; 展开全文

等你来战

查看全部