期望得分:100+100+100=300

实际得分:94+96+97=287

T1  #6090. 「Codeforces Round #418」尘封思绪

#include<cstdio>
#define N 102
using namespace std;
int a[N],b[N];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
if(m>) { printf("Yes"); return ; }
if(!m)
{
for(int i=;i<=n;i++)
if(a[i]<a[i-]) { printf("Yes"); return ; }
printf("No"); return ;
}
int pos;
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
if(!a[i]) { pos=i; continue;}
if(a[i]<a[i-]) { printf("Yes"); return ; }
}
scanf("%d",&m);
a[n+]=;
if(m<a[pos-] || m>a[pos+]) { printf("Yes"); return ; }
printf("No");
}

T1 #6091. 「Codeforces Round #418」幻想特快

#include<cstdio>
#define N 1001
using namespace std;
int a[N],b[N];
int p[],fa,fb;
int v[N];
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
if(!v[a[i]]) v[a[i]]=i;
else fa=i;
}
for(int i=;i<=n;i++)
{
scanf("%d",&b[i]);
if(a[i]!=b[i]) p[++p[]]=i;
}
int k;
for(int i=;i<=n;i++)
if(!v[i]) { k=i; break; }
if(p[]==)
{
a[p[]]=k;
for(int i=;i<=n;i++) printf("%d ",a[i]);
return ;
}
if(b[fa]==k) a[fa]=k;
else a[v[a[fa]]]=k;
for(int i=;i<=n;i++) printf("%d ",a[i]);
}

T3  LOJ #6092. 「Codeforces Round #418」恋爱循环


法一: 尺取法
#include<cstdio>
#include<algorithm>
#define N 1501
using namespace std;
char s[N];
int main()
{
int n,q;
scanf("%d",&n);
scanf("%s",s+);
scanf("%d",&q);
int l,r,now,ans,m;
char c[];
while(q--)
{
scanf("%d%s",&m,c);
now=ans=;
r=,l=;
while()
{
while(r<=n && now<=m)
if(s[++r]!=c[]) now++;
ans=max(ans,r-l);
if(r>=n) break;
while(l<=n && now>m)
if(s[l++]!=c[]) now--;
}
printf("%d\n",ans);
}
}

法二:动态规划

#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 1501
using namespace std;
char s[N];
int ans[][N];
int main()
{
int n,sum;
scanf("%d",&n);
scanf("%s",s+);
for(int k=;k<;k++)
{
for(int i=;i<=n;i++)
{
sum=;
for(int j=i;j<=n;j++)
{
if(s[j]-'a'!=k) sum++;
ans[k][sum]=max(ans[k][sum],j-i+);
}
}
for(int i=;i<=n;i++) ans[k][i]=max(ans[k][i],ans[k][i-]);
}
int q;
scanf("%d",&q);
int m; char c[];
while(q--)
{
scanf("%d%s",&m,c);
printf("%d\n",ans[c[]-'a'][m]);
}
}

考场做法:二分 TLE1个点

#include<cstdio>
#include<iostream>
#define N 1501
using namespace std;
char s[N],c[];
int n,m;
inline bool check(int mid)
{
int now=;
for(int i=;i<=mid;i++)
if(s[i]!=c[]) now++;
if(now<=m) return true;
for(int i=mid+;i<=n;i++)
{
if(s[i-mid]!=c[]) now--;
if(s[i]!=c[]) now++;
if(now<=m) return true;
}
return false;
}
inline void read(int &x)
{
x=; char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) { x=x*+c-''; c=getchar(); }
}
int main()
{
read(n);
scanf("%s",s+);
int q,l,r,mid,ans;
read(q);
while(q--)
{
read(m);
scanf("%s",c);
ans=;
l=m,r=n;
while(l<=r)
{
mid=l+r>>;
if(check(mid)) ans=mid,l=mid+;
else r=mid-;
}
printf("%d\n",ans);
}
}


最新文章

  1. c#自制视屏监控
  2. activiti自定义流程之整合(六):获取我的申请任务
  3. win10搭建代理服务器实现绕过校园网的共享限制--从入门到放弃
  4. (原创)3.2 AddOwner和OverrideMetadata的区别
  5. Codeforces Round #185 (Div. 2) A. Whose sentence is it? 水题
  6. python 集合 set
  7. hadoop各个名词的理解
  8. 8.03-json_to_csv
  9. elasticSearch聚合sum查询
  10. Hbase伪分布式安装
  11. 【Java】 剑指offer(65) 不用加减乘除做加法
  12. SSM集成activiti6.0错误集锦(二)
  13. Google Optimization Tools介绍
  14. Kubernetes哪一点最打动你?或者,它发布过的哪一项特性让你认为最厉害?
  15. Swift4 - 动态计算UITableView中tableHeaderView的高度 - 获取子控件高度和宽度
  16. maven与ide工具的整合
  17. no !/ in spec
  18. 【LeetCode题解】350_两个数组的交集Ⅱ
  19. 记录初次使用tesseract的过程
  20. latex03-LaTeX中的中文处理办法

热门文章

  1. Scrum立会报告+燃尽图(Beta阶段第二周第七次)
  2. c# 消息机制
  3. Codeforces Round #272 (Div. 2) E. Dreamoon and Strings dp
  4. 复利计算程序单元测试(C语言)
  5. PHP初级
  6. 树形结构的数据库表Schema设计-基于左右值编码
  7. webgl学习笔记一-绘图单点
  8. [C/C++] 指针数组和数组指针
  9. 解决Qt creator无法输入中文
  10. 第98天:CSS3中transform变换详解