mdzz,啥都不会、

以后碰到这种序列题一定知道要上log了

然后log不只有线段树、splay、还有二分check、

这题一开始读错了,写了错误的线段树

一开始的想法只有2的k次方一定不如2的k-1次方优,所以就可以玄学缩范围、

然后检验一个定值是o(n)的、、就是暴力

想二分、但分数怎么二分、?分母倒是有一个范围、

如果二分个数,并不满足连续性、、(9 、1 、 1、 1 、1 、9) 6比4更优、

二分分数可以转化为二分小数、、、感觉被骗了

然后就二分一个值,然后每个数-这个值,求前缀和,找到一个合法区间(>=0)就返回1  其余返回0

发现检验是可以用单调队列的、

它这个选偶数不是个提示、它没有任何价值,,就是让你奇偶分开装、、

(打了好久,不停wa,原因竟然是1、没开long long 2、变量混用3、精度+0.5*gcd、、4、没用long double)

码:

#include<iostream>
#include<cstdio>
using namespace std;
#define eps 2e-5
#define N 400005
#define ll long long
long double L=0,R=0,v[N],he[N],ans,v2[N];
ll dui[N],dui2[N],i,n,a[N],l,r,gs;
bool tui[N];
ll gcd(ll a,ll b)
{if(!b)return a;return gcd(b,a%b);
}
bool check(long double o)
{ll z1=1,z2=1,z3=1,z4=1;v[z1]=0;dui[z1]=0;v2[z3]=0;dui2[z3]=0;for(i=1;i<=n;i++){//算出这个点的和 he[i]=he[i-1]+a[i]-o;//加入新点 奇数if(i%2){ if(i-l>0)v[++z2]=he[i-l];dui[z2]=i-l;  while(z1!=z2&&v[z2]<v[z2-1])v[z2-1]=v[z2],dui[z2-1]=dui[z2],z2--;while(dui[z1]<i-r)++z1;if(i>=l)//计算贡献if(he[i]-v[z1]>0){gs=i-dui[z1];return 1;}
}else //偶数
{if(i-l>0)v2[++z4]=he[i-l];dui2[z4]=i-l; while(z4!=z3&&v2[z4]<v2[z4-1])v2[z4-1]=v2[z4],dui2[z4-1]=dui2[z4],z4--;while(dui2[z3]<i-r)++z3;if(i>=l)//计算贡献if(he[i]-v2[z3]>0){      //for(int j=1;j<=i;j++)
//          {
//              cout<<he[j]<<" ";
//          }
//          cout<<endl;gs=i-dui2[z3];return 1;}
}}return 0;
}
int main()
{scanf("%lld%lld%lld",&n,&l,&r);if(l%2)l++;if(r%2)r--;for(i=1;i<=n;i++){scanf("%lld",&a[i]);if(R<a[i])R=a[i];  a[i+n]=a[i];              }n*=2;R+=1;while(L+eps<R){long double mid=(L+R)/2;//   cout<<L<<" "<<R<<" "<<mid<<endl;if(check(mid))L=mid;else R=mid;   }ans=(L+R)/2;ll fz=(ans)*gs+0.5;ll fm=gs;ll u=gcd(fz,fm);fz/=u;fm/=u;if(fm==1)printf("%lld",fz);else printf("%lld/%lld",fz,fm);
}

2017.9.7 JC loves Mkk 失败总结相关推荐

  1. bzoj 3316: JC loves Mkk(二分+单调队列)

    3316: JC loves Mkk Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1047  Solved: 339 [Submit][Status] ...

  2. 2017.9.5 DZY Loves Math 失败总结

    真是神(du)题 首先,利用公式和套路可以化成这样: 然后就不会了. 题解就比较神了 设g(k)=Σ[k|T]*mu[T/k]*f[k] 大概思想就是T中的每一种次数  都  和k相差不过1 ,不然就 ...

  3. Visual Studio 2017启动x86的Android模拟器失败

     Visual Studio 2017启动x86的Android模拟器失败 Visual Studio 2017默认提供多个Android模拟器.其中,x86模拟器运行较快.但是由于和Hyper-V服 ...

  4. 2017.10.9 DZY Loves Math V 失败总结

    这种题是不是有什么套路啊..反正这个系列的题一道都不会.. 据说这个系列是鏼爷出的..%%%ORZORZ 这个phi似乎很多题都用了他积性函数的性质..都是分素数分素数,统计统计,,然后加着加着就变成 ...

  5. 2017.10.9 DZY Loves Math VI 失败总结

    一看到love math就知道肯定不会做.. 首先lcm拆成i*j/gcd(i,j),然后就讨论分子和分母..但并没有什么卵用 这个题对比传统反演题,主要不同的是f函数不是很直观.. 所以如果枚举gc ...

  6. 看完2017年这10大AI失败案例,就知道什么是人工智障了

    本文授权转自网路冷眼(微信公众号:gh_37ca35f41890) 现在尽管我们大多人自然是机器智能的粉丝,但是我们也必须意识到一些新技术正在努力地有效地执行他们的任务,经常以人类不会犯错的方式出错. ...

  7. Visual Studio 2017 、2019安装Windows SDK失败的解决办法(改盘符引起)

    如果是改盘符出错就请往下看,如果不是就别往下看了 这是血泪踩出来的坑,希望有所帮助.我是手残把电脑盘符改了,然后vs就开始疯狂报错,百试无果.百度不出,果断放弃,刚开始是安装的2017,卸载完后安装的 ...

  8. 2017.10.10 Perm 排列计数 失败总结

    ISA:这是最简单的计数问题了,没有比这更简单的了..  Orz 首先每个数只和他/2的数有关,所以可以建出一棵树 建完树剩下的就是分配问题了,,但如果要确定每个点分配哪些数的话是需要记录每个数的,于 ...

  9. 2017.3.3 双栈排序 失败总结

    这道题虽然是noip的题,但还是很能反映你思维水平的. 说出来二分图.黑白染色对于一个oier来说肯定不陌生,有的人很快就能说出做法,写出程序. 但是一出成题怎么就不会了呢? 其实主要失误在于 我是站 ...

最新文章

  1. java写事物提交_fabric-sdk-java 提交事务
  2. Android项目Build报错Unable to execute dx(65535问题解决方案)
  3. vscode设置标签页多行显示
  4. 【Java】JDBC连接MySQL/SQLServer/Oracle三种数据库
  5. HTML5获取地理位置定位信息
  6. python googletrans_Python使用googletrans报错的解决方法
  7. mysql问题_MySQL 各种问题解决方案(一)
  8. matlab mysql数据库增删改查_ef6.0增删改查操作
  9. ARP病毒攻击技术分析与防御
  10. 神器 mimikatz - 直接抓取 Windows 明文密码
  11. 供应链金融的产品业务系统应用架构设计
  12. 中国PET瓶坯注塑系统行业应用态势与投资前景预测报告(2022-2028年)
  13. android开发日历,Android日历开发详解
  14. 去除win10快捷方式的小箭头
  15. tf.train.Saver()
  16. Not a managed type
  17. 在uniapp的小程序中使用自己的字体库
  18. 对计算机专业的兴趣怎么说,计算机专业特长及爱好怎么写
  19. 大数据毕设题目推荐 - 最新大数据毕设选题 - 毕业设计项目方向课题
  20. TCP协议的三次握手和四次挥手

热门文章

  1. Python基础知识学习笔记——Matplotlib绘图
  2. 四路智能抢答器电子系统综合设计
  3. day15 java接口的基础语法
  4. aftool刷工具提示15天_【15天】【指数600+】关键词百度首页【实战分析】【面授学员】...
  5. gitlab 只能owner 上传_代码管理-gitlab使用方法建议
  6. logback日志pattern_logback-自定义Pattern模板
  7. printf输出字符串_c语言入门 第十二章 字符串
  8. 无线文件服务器,文件共享新方法 无线网络文件共享设置
  9. WARNING: IPv4 forwarding is disabled. Networking will not work.解决方法
  10. python add_argument()用法解析