随便瞎写,其实没做出多少题:

Chef and Cake

题目大概是用输入的数生成 一个数组并且生成出q个【X,Y】的询问,

数组长度N<=1000000,q<=10^7;

开始用线段树,RMQ,分块能切过去,但是线段树RE,RMQ re ,分块最多40分。

但是一直忽视了区间询问的[X Y]  K<=Y-X+1<=2K; K是给定的数。

然后是利用一些思想。

比如 我们每次求出DP【X】    ----------> 表示 I  in【X,X+K-1] 范围 min(A[i]);A[i] 生成的数组。

询问X,Y的区间最小值 =Mi年(dp[x],dp[y-k+1]);

求出每个dp;

这里利用单调队列,熟悉的应该比较简单。

 #include<cstdio>
#include<algorithm>
#include<cmath>
#include<string.h>
#include<string>
#include<iostream>
#include<vector>
#include<map>
#include<deque>
#include<vector> #define inf 0x3f3f3f
#define N 10000105
#define mod 1000000007 using namespace std;
typedef long long ll;
int a,b,c,d,e,f,g,r,s,t,m,n,k,q;
int L1,La,Lc,Lm,D1,Da,Dc,Dm; ll A[N];
int L[N],R[N]; void work()//生成数据部分
{
ll tmp=t;
for (int x=;x<=n;x++)
{
tmp=tmp*t%s;
if (tmp<=r) A[x]=(A[x-]*A[x-]%m*a+A[x-]*b%m+c)%m;
else A[x]=(A[x-]*A[x-]%m*d+A[x-]*e%m+f)%m;
} for (int i=;i<=q;i++)
{
/* L1=(ll) ((ll)La*L1+Lc)%Lm;
D1=(ll) ((ll)Da*D1+Dc)%Dm;
生成数据有问题,注意La为int La*L1溢出
*/
L1=(ll) ((ll)La*L1+Lc)%Lm;
D1=(ll) ((ll)Da*D1+Dc)%Dm;
L[i]=L1+;
R[i]=min(L[i]+k-+D1,n);
}
} int minarr[N];
int ff[N]; void work2()
{
int i,j,h,t;
h=,t=;//维护一个长度为k的单调递增队列 for (i=;i<=k;i++)
{
while (h<t&&A[i]<=A[ff[t-]]) t--;
ff[t++]=i;
}
j=;
for (;i<=n;i++,j++)
{
minarr[j]=A[ff[h]];
while (h<t&&ff[h]<=i-k) h++;
while (h<t&&A[i]<=A[ff[t-]]) t--;
ff[t++]=i;
}
minarr[j]=A[ff[h]];
} void debug()//debug部分
{
for (int i=;i<=n;i++)
cout<<A[i]<<" ";
cout<<endl;
for (int i=;i<=n-k+;i++)
cout<<minarr[i]<<" ";
cout<<endl;
} int main()
{
while (scanf("%d%d%d",&n,&k,&q)!=EOF){
scanf("%d%d%d%d%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&r,&s,&t,&m,&A[]);
scanf("%d%d%d%d%d%d%d%d",&L1,&La,&Lc,&Lm,&D1,&Da,&Dc,&Dm);
work();
work2();
// debug(); ll ans1,ans2;
ans1=;
ans2=; for (int i=;i<=q;i++)
{
int tmp=min(minarr[L[i]],minarr[R[i]-k+]);
ans1+=tmp;
ans2=ans2*tmp%mod;
}
printf("%lld %lld\n",ans1,ans2);
}
return ;
}

Devu and binary String

也是很有意思的题目:

大意是:给一个01串,我们可以对每个0 1 翻转,使0->1,1->0.

然后问:用最少的翻转次数,是字符串里面没有连续k字符是一样的。

长标题:开始贪心思路是每连续k个一样就 把最后一个翻转,但是会有问题。

当我们可能反转最后一个使的接下来K-1个和 翻转的一个有成为一样的,显然这样并不是最优的

我们可以把前K个中倒数第二个翻转,结果就更优,基于这种贪心思路,这题可以这么做。

然后注意一下K=1的特判。

Codechef May Challenge 2015的更多相关文章

  1. 大规模视觉识别挑战赛ILSVRC2015各团队结果和方法 Large Scale Visual Recognition Challenge 2015

    Large Scale Visual Recognition Challenge 2015 (ILSVRC2015) Legend: Yellow background = winner in thi ...

  2. Codechef April Challenge 2019 游记

    Codechef April Challenge 2019 游记 Subtree Removal 题目大意: 一棵\(n(n\le10^5)\)个结点的有根树,每个结点有一个权值\(w_i(|w_i\ ...

  3. Codechef October Challenge 2018 游记

    Codechef October Challenge 2018 游记 CHSERVE - Chef and Serves 题目大意: 乒乓球比赛中,双方每累计得两分就会交换一次发球权. 不过,大厨和小 ...

  4. Codechef September Challenge 2018 游记

    Codechef September Challenge 2018 游记 Magician versus Chef 题目大意: 有一排\(n(n\le10^5)\)个格子,一开始硬币在第\(x\)个格 ...

  5. 「Codechef April Lunchtime 2015」Palindromeness

    「Codechef April Lunchtime 2015」Palindromeness 解题思路 : 考虑对于回文子串 \(s\) 贡献的定义: \[ value_s = [\ s[1,\lflo ...

  6. codechef February Challenge 2018 简要题解

    比赛链接:https://www.codechef.com/FEB18,题面和提交记录是公开的,这里就不再贴了 Chef And His Characters 模拟题 Chef And The Pat ...

  7. RecSys Challenge 2015

    [The Task] Given a sequence of click events performed by some user during a typical session in an e- ...

  8. codechef January Challenge 2014 Sereja and Graph

    题目链接:http://www.codechef.com/JAN14/problems/SEAGRP [题意] 给n个点,m条边的无向图,判断是否有一种删边方案使得每个点的度恰好为1. [分析] 从结 ...

  9. Codechef March Challenge 2014——The Street

    The Street Problem Code: STREETTA https://www.codechef.com/problems/STREETTA Submit Tweet All submis ...

随机推荐

  1. Javaweb学习笔记3—Serverlet

    今天来讲javaweb的第三个阶段学习. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 ...

  2. win7创建无线(WIFI)cmd命令

    1.创建无限热点:netsh wlan set hostednetwork mode=allow ssid=name key=12345678. 2.承载网络:netsh wlan start(关闭s ...

  3. 洛谷 P2680 运输计划

    题目背景 公元 2044 年,人类进入了宇宙纪元. 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条航道连通了 L 国的所有星球. 小 P 掌管一家 ...

  4. (转)编写Spring的第一个案例并测试Spring的开发环境

    http://blog.csdn.net/yerenyuan_pku/article/details/52832145 Spring4.2.5的开发环境搭建好了之后,我们来编写Spring的第一个案例 ...

  5. 通过JS加载XML文件,跨浏览器兼容

    引言 通过JS加载XML文件,跨多种浏览器兼容. 在Chrome中,没有load方法,需要特殊处理! 解决方案 部分代码 try //Internet Explorer { xmlDoc=new Ac ...

  6. Opencascade 选择器算法

    算法的阶段 该算法包括预处理和三个主要阶段. 使用深度优先搜索逐层遍历所有对象 . 预处理 计算平截头体及其主要特征的计算. 第一阶段 - 遍历第一级BVH树 在成功构建选择平截头体之后,算法开始遍历 ...

  7. HTML基础(三)图像和超链接

    图像 img 元素向网页中嵌入一幅图像. 语法 <img src="" alt="" /> img标签常用属性 src 跳转的url alt 图片不 ...

  8. 沈南鹏@《遇见大咖》: A轮没投,投了8个月以后就证明了张一鸣是对了,在美国都没有张一鸣这种模式

    沈南鹏@<遇见大咖>: A轮没投,投了8个月以后就证明了张一鸣是对了,在美国都没有张一鸣这种模式

  9. 生产环境屏蔽swagger(动态组装bean)

    spring动态组装bean 背景介绍: 整合swagger时需要在生产环境中屏蔽掉swagger的地址,不能在生产环境使用 解决方案 使用动态profile在生产环境中不注入swagger的bean ...

  10. PLSQL Developer连接数据库报错ora-12514解决

    连接本地数据库报以上错误,需要修改本地数据库的监听配置文件(如下所示:) 比如我的本地oracle数据库相关文件在E:\app\user\product\11.2.0\dbhome_1下 然后在E:\ ...