农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于1头,也不会超过2000头. 约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大. 围起区域内至少需要包含f块地,其中 f会在输入中给出. 在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少. #include<bits/stdc++.h> #define N 1000000 using namespace std; int a[N]; int n,m…
农夫约翰的农场由 NN 块田地组成,每块地里都有一定数量的牛,其数量不会少于1头,也不会超过2000头. 约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大. 围起区域内至少需要包含 FF 块地,其中 FF 会在输入中给出. 在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少. 输入格式 第一行输入整数 NN 和 FF ,数据间用空格隔开. 接下来 NN 行,每行输出一个整数,第i+1i+1行输出的整数代表,第ii片区域内包含…
P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold 题意 给一个字符串,每次可以从两边中的一边取一个字符,要求取出的字符串字典序最小 可以Hash+二分 也可以SA 首先贪心选字典序小的 然后遇到相等的了比Rank数组,把原串倍长一下就可以比了. Code: #include <cstdio> #include <algorithm> const int N=6e4+10; char s[N],ans[N]; int sa[N],Rank[N]…
P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold我比赛的时候A了,luogu上25分,QAQ,又憨又傻的200+代码,我为什么要干电脑干的事情,无语了.如果左边<右边,取左如果右边<左边,取右如果相等,就向中间找,直到找到第一个不同的,然后给电脑指明下一步是取队首或队尾取就行了. AC代码: #include<iostream> #include<cstdio> #include<queue> #include<…
Portal Description 给出一个字符串\(s(|s|\leq3\times10^4)\),每次从\(s\)的开头或结尾取出一个字符接在新字符串\(s'\)的末尾.求字典序最小的\(s'\). Solution 设当前剩余的字符串为\(t\),将其翻转得到\(t'\).则\(t<t'\)时取开头,否则取结尾. 令\(p=lcp(t,t')\),则有\(t<t' \Leftrightarrow t[1..p]=t'[1..p],t[p+1]<t'[p+1]\).那么最优的取法必…
题目链接:Glider Gym-101911B 解题分析:下落的高度一定,是h.在没有气流的地方每秒下落1:所以可以转化为经过无气流地带的时间总长为h. 那么很显然从一个有气流地带的开始,选择下落,那么问题来了,一个一个去试然后一个一个计算他的路径去维护一个最大值吗?未免太过麻烦,所给数据有 那么大. 解题关键:二分+前缀和 二分查找用:lower_bound() int x=lower_bound(a, a+n, val)-a; 其中i返回值为数组元素值大于等于val的第一个下标.相应地,如果…
A /* Huyyt */ #include <bits/stdc++.h> using namespace std; typedef long long ll; ]; ]; map<ll, int> mp; int main() { int n; cin >> n; ; i <= n; i++) { cin >> a[i]; } ; ; i <= n; i++) { memset(num, , sizeof(num)); ; ; j <…
A. 全部空的放狗 B. 先O(NLOGNLOGN)处理出一个合数质因数中最大的质数是多少 因为p1 x1 x2的关系是 x2是p在x1之上的最小倍数 所以x1的范围是[x2-p+1,x2-1]要使最后答案尽可能小 要包含尽可能多的选择 p0 x0  x1关系同上 #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #define TS printf("!!!\…
链接: https://www.acwing.com/problem/content/104/ 题意: 农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于1头,也不会超过2000头. 约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大. 围起区域内至少需要包含 F 块地,其中 F 会在输入中给出. 在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少. 思路: 二分最大值,然后前缀和检查一遍. 代码: #…
我真的是服了,看了一晚上发现居然,,,,, 上图吧,话说有人评论没... 对于结果来说,不一定要枚举有序数列,感觉这是一种猜结果的方法,只不过特别精确,令人发指 #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #define maxn 110000 #define INF 0x3f3f3f3f using namespace std; double list[…