$ POJ~2018~Best~Cow~ Fences $(二分答案构造新权值)



$ solution: $

题目大意:

给定正整数数列 $ A $ ,求一个平均数最大的长度不小于 $ L $ 的子段

  1. 这道题首先我们如果没有长度限制,直接扫一遍数组即可
  2. 而有了长度限制之后我们的候选集合发生改变,很容让我们想到DP
  3. 事实上这一道题可以DP,用斜率优化复杂度极小,就是有点常数(事实上最优)
  4. 但是我们可以参考类似01规划的做法,因为答案具有单调行。
  5. 我们让数组中每一个数都减去我们二分答案枚举的值,然后求前缀和,我们只要扫描一遍即可
  6. 因为我们们可以从后往前,求出以每一个数为左端点的最大字段和,然后我们只需要知道将后面离它距离大于\(L\)的最大值即可,这个可以边扫描边维护(就是更新最大值)。


$ code: $

#include<iostream>
#include<cstdio>
#include<iomanip>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<ctime>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<set>#define ll long long
#define db double
#define rg register intusing namespace std;const int mod=9901;int n,m,ans;inline int qr(){register char ch; register bool sign=0; rg res=0;while(!isdigit(ch=getchar()))if(ch=='-')sign=1;while(isdigit(ch))res=res*10+(ch^48),ch=getchar();if(sign)return -res; else return res;
}inline int ksm(ll x,int y){ll res=1;while(y){if(y&1)res=res*x%mod;x=x*x%mod; y>>=1;}return res;
}inline int ask(int x,int y){if(y==1)return x;if(y&1) return ((ll)ask(x,y>>1)*(ksm(x,y>>1)+1)%mod+ksm(x,y)%mod)%mod;else return (ll)ask(x,y>>1)*(ksm(x,y>>1)+1)%mod;
}int main(){//freopen(".in","r",stdin);//freopen(".out","w",stdout);while(~scanf("%d%d",&n,&m)){if(m==0){puts("1");continue;}ans=1;for(rg i=2;i*i<=n;++i){if(n%i)continue;rg x=0; while(!(n%i))++x,n/=i;ans=(ll)ans*(ask(i%mod,x*m)+1)%mod;}if(n!=1)ans=(ll)ans*(ask(n%mod,m)+1)%mod;printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/812-xiao-wen/p/11248810.html

POJ 2018 Best Cow Fences (二分答案构造新权值 or 斜率优化)相关推荐

  1. POJ - 2018 Best Cow Fences(二分+最长连续子段和)

    题目链接:点击查看 题目大意:给出n个正整数,求一个平均数最大的.长度不小于L的连续子段 题目分析:因为这个题目的答案满足二分的性质,也就是若二分的平均数小于答案,则更小的平均数肯定都满足答案(因为这 ...

  2. POJ 1064 Cable master (二分答案,G++不过,C++就过了)

    题目: 这题有点坑,G++过不了,C++能过. 条件:n个数据a[],分成k段,结果精度要求两位小数. 问题:每段最长为多少? 思路:因为精度要求为两位小数,我先把所有的长度a[]*100. 我们对答 ...

  3. POJ 2749 Building roads 2-sat+二分答案

    把爱恨和最大距离视为限制条件,可以知道,最大距离和限制条件多少具有单调性 所以可以二分最大距离,加边+check 1 #include<cstdio> 2 #include<algo ...

  4. poj 3189 Steady Cow Assignment(二分+最大流)

    题意:N头牛(1000),B个农场(20),每个农场可以容纳一定数量的牛. 每头牛对每个农场都有一个排名(排名从1~B).每头牛都会在B个农场中的某一个,这头牛的高兴程度是它对这个农场的排名.为了使每 ...

  5. poj 2349 求MST中第S大的权值

    题目大意: 有一些炮台,如果这个炮台有卫星接收器,那么任意两个有卫星接收器的炮台可以通信,不受距离限制:否者,两个炮台之间只能通过对讲机通信,这是受距离限制的.要买一种对讲机,用在需要的炮台上,要求所 ...

  6. 【实数二分/前缀和维护】Best Cow Fences

    Poj 2018 Best Cow Fences 实数二分+前缀和维护 调了一晚上, 但发现没什么注意事项orz 无输出只因eps定义成了int型QAQ哭唧唧 #include<cstdio&g ...

  7. poj 1064 java_poj 1064(二分答案)

    题意: 有N条绳子,长度分别为 length[1,2,3,........,N]. 如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长有多长? 结果保留两位小数. 题解: 二分可能的长度. AC ...

  8. BZOJ2653middle——二分答案+可持久化线段树

    题目描述 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整.给你一个 长度为n的序列s.回答Q个这样的询问:s的左端点在[a,b]之间,右端点在 ...

  9. 第十九章:二分查找和二分答案

    二分查找 二分的思想在程序设计中有着广泛的应用,例如,排序算法中的快速排序.归并排序,数据结构中的二叉树.堆.线段树等.二分是一种常用且高效的算法,它的基本用途是在单调序列中进行查找和判定操作. 二分 ...

最新文章

  1. pythondataframe如何替换值_如何将pandas dataframe中的字符串值替换为整数?
  2. pycharm提示:Usually first parameter of a method is named 'self'
  3. hdu 7111-Remove
  4. 【解决问题】OpenCV(3.4.1) Error: Parsing error (xx.yaml(13): Incorrect indentation) in icvYMLParseValue
  5. 硬核|定时任务的10种实现方案,满足你的不同需求!
  6. 无界瀑布屏惊艳亮相!5G水桶机vivo NEX 3正式发布
  7. linux内存布局 zone,【原创】(八)Linux内存管理 - zoned page frame allocator - 3
  8. iOS 创建推送证书
  9. 【Beta阶段】第三次Scrum Meeting!
  10. 【毕业设计】基于大数据的电影数据爬取分析可视化系统
  11. Apache Geronimo 监控
  12. 【课堂笔记精选】为了能够用“Unity”软件做游戏,我要从最基础的开始复习JavaScript...
  13. JAVA开发讲义(一)-Java的自白
  14. 论文阅读《Expert Training Task Hardness Aware Meta-Learning for Few-Shot Classification》
  15. Python 使用 matplotlib 将离散的节点用光滑曲线连接
  16. Pfam数据库转移至InterPro数据库导致HMMER模型下载不能用
  17. 文字太多时给文本框添加滑动条——text + ContentSizeFitter + Scroll View
  18. 罗切斯特大学计算机科学硕士介绍,罗切斯特大学计算机科学专业
  19. 挖掘肖特基二极管的作用及其接法
  20. html5可视化编辑器教程,html5可视化编辑器sx html5 vip使用教程(附vip账号)

热门文章

  1. Codeforces Round #401 (Div. 2) D. Cloud of Hashtags
  2. activemq的使用场景
  3. 『原创』一个基于Win CE 5.0的Txt文件阅读器
  4. (原创)JS点击事件——Uncaught TypeError: Cannot set property 'onclick' of null
  5. Linux 解决ssh连接慢的问题
  6. 伯纳德•罗森伯格先生参加华为技术2016首届国际光电连接技术研讨会
  7. mySQL 数据库错误
  8. [Android] 输入系统(二)
  9. 初识python之 APP store排行榜 蜘蛛抓取(一)
  10. CGContextAddLines和CGContextAddLineToPoint在线条半透明时候的区别