A:差点开场懵逼。只要有相邻两位不同就可以作为答案。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 1010
int n,cnt[N][];
char s[N];
int main()
{
n=read();
scanf("%s",s+);
for (int i=;i<n;i++) if (s[i]!=s[i+]) {cout<<"YES\n"<<s[i]<<s[i+];return ;}
cout<<"NO";
return ;
}

  B:模拟。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 200010
int n,a[N],b[N];
bool flag[N];
int main()
{
n=read();
for (int i=;i<=n;i++) a[i]=read();
for (int i=;i<=n;i++) b[i]=read();
int x=;
for (int i=;i<=n;i++)
{
int t=;
if (!flag[b[i]])
{
while (a[x+]!=b[i]) x++,flag[a[x]]=,t++;
x++,flag[a[x]]=,t++;
}
printf("%d ",t);
}
return ;
}

  C:存在长度为n的移动序列能够到达(x,y)的充要条件显然是n>=abs(x)+abs(y)且n和x+y奇偶性相同。枚举修改区间的左端点,二分右端点即可。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 200010
int n,x,y,p,q,cnt[],a[N],cntx[N],cnty[N],ans=N;
char s[N];
int wx[]={,,-,},wy[]={,-,,};
int main()
{
n=read();
scanf("%s",s+);
for (int i=;i<=n;i++)
{
if (s[i]=='U') a[i]=;
if (s[i]=='D') a[i]=;
if (s[i]=='L') a[i]=;
if (s[i]=='R') a[i]=;
}
x=read(),y=read();
if (n<abs(x)+abs(y)||(n&)!=(abs(x)+abs(y)&)) {cout<<-;return ;}
for (int i=n;i>=;i--) cntx[i]=cntx[i+]+wx[a[i]],cnty[i]=cnty[i+]+wy[a[i]];
for (int i=;i<=n;i++)
{
int l=i-,r=n,t=N*;
while (l<=r)
{
int mid=l+r>>;
if (abs(p+cntx[mid+]-x)+abs(q+cnty[mid+]-y)<=mid-i+&&(abs(p+cntx[mid+]-x)+abs(q+cnty[mid+]-y)&)==(mid-i+&)) t=mid,r=mid-;
else l=mid+;
}
ans=min(ans,t-i+);
p+=wx[a[i]],q+=wy[a[i]];
}
cout<<ans;
return ;
}

  D:每次先把能跑完整整一圈的减掉,然后暴力。由a%b<=a/2(a>=b),复杂度nlog。根本想不到复杂度是对的啊?

  E:比赛时非常弱智的弃掉D去看E。直到最后也没调出来。数位dp(其实根本算不上dp),枚举到第几位卡限制,计算每个位置上数字的贡献,这只要dp出f[i][j]为已经确定了有j种数字存在还剩i位要填时的方案数,就可以暴力计算了。注意前导0不能算在数字集里。不明白为什么绝大多数人都写的状压。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define ll long long
#define P 998244353
ll l,r;
int k,a[],p[],f[][];
void inc(int &x,int y){x+=y;if (x>=P) x-=P;}
int calc(ll m)
{
int ans=,n=-;
while (m) a[++n]=m%,m/=;
bool flag[];
for (int i=n;~i;i--)
{
for (int j=(i==n?:);j<a[i];j++)
{
memset(flag,,sizeof(flag));
for (int k=n;k>i;k--) flag[a[k]]=;
flag[j]=;
int cnt=;
for (int k=;k<;k++) cnt+=flag[k];
if (cnt>k) continue;
int last=;
for (int k=n;k>i;k--) last=(10ll*last+a[k])%P;
last=(10ll*last+j)%P;
last=1ll*last*p[i]%P;
last=1ll*last*f[i][cnt]%P;
inc(ans,last);
for (int x=i-;x>=;x--)
{
for (int y=;y<;y++)
if (flag[y]) inc(ans,1ll*y*p[x]%P*f[i-][cnt]%P);
else inc(ans,1ll*y*p[x]%P*f[i-][cnt+]%P);
}
}
}
for (int i=n-;~i;i--)
{
for (int j=;j<;j++)
{
memset(flag,,sizeof(flag));
flag[j]=;
int cnt=;
for (int k=;k<;k++) cnt+=flag[k];
if (cnt>k) continue;
int last=j;
last=1ll*last*p[i]%P;
last=1ll*last*f[i][cnt]%P;
inc(ans,last);
for (int x=i-;x>=;x--)
{
for (int y=;y<;y++)
if (flag[y]) inc(ans,1ll*y*p[x]%P*f[i-][cnt]%P);
else inc(ans,1ll*y*p[x]%P*f[i-][cnt+]%P);
}
}
}
return ans;
}
int main()
{
cin>>l>>r>>k;
p[]=;for (int i=;i<=;i++) p[i]=10ll*p[i-]%P;
memset(f,,sizeof(f));
for (int i=;i<=k;i++) f[][i]=;
for (int i=;i<=;i++)
for (int j=;j<=k;j++)
f[i][j]=(1ll*f[i-][j]*j+1ll*f[i-][j+]*(-j))%P;
cout<<(calc(r+)-calc(l)+P)%P;
return ;
}

  F:没看

  G:没认真看,似乎几乎是SA的板子题。

  小号打的。result:rank 484 rating +58 感觉没什么救了。

Educational Codeforces Round 53 Div. 2翻车记的更多相关文章

  1. Educational Codeforces Round 56 Div. 2 翻车记

    A:签到. B:仅当只有一种字符时无法构成非回文串. #include<iostream> #include<cstdio> #include<cmath> #in ...

  2. Educational Codeforces Round 55 Div. 2 翻车记

    A:签到. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> ...

  3. Codeforces Round#500 Div.2 翻车记

    A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...

  4. Codeforces Round#509 Div.2翻车记

    A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...

  5. Codeforces Round#514 Div.2 翻车记

    A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...

  6. Codeforces Round #524 Div. 2 翻车记

    A:签到.room里有一个用for写的,hack了一发1e8 1,结果用了大概600+ms跑过去了.惨绝人寰. #include<iostream> #include<cstdio& ...

  7. Codeforces Round#516 Div.1 翻车记

    A:开场懵逼.然后发现有人1min过,于是就sort了一下,于是就过了.正经证明的话,考虑回文串两端点一定是相同的,所以最多有Σcnti*(cnti+1)/2个,cnti为第i种字母出现次数.而sor ...

  8. Codeforces Round #517 Div. 1翻车记

    A:真的懵逼了.冷静了半天之后决定二分一下答案,然后先a安排上尽量小的再贪心地一个个扩大.40min才过.这个做法非常怂的以代码复杂度和时间复杂度为代价换取了比较稳的正确性,事实上由于1~n可以组合出 ...

  9. Educational Codeforces Round 53 (Rated for Div. 2) (前五题题解)

    这场比赛没有打,后来补了一下,第五题数位dp好不容易才搞出来(我太菜啊). 比赛传送门:http://codeforces.com/contest/1073 A. Diverse Substring ...

随机推荐

  1. 企业Shell面试题及企业运维实战案例(三)

    1.企业Shell面试题1:批量生成随机字符文件名案例 使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下: ...

  2. springboot 集成kaptcha验证码Demo

    验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人 ...

  3. GET POST 请求的详细区别

    前言: 作为最常见的请求方式 在面试很有可能会被问到 所以在这里做一个简单总结 GET get方法向页面请求发送参数 地址和参数之间用?进行分割 例如 localhost:80/download.ht ...

  4. python多线程举例

    Python中使用线程有两种方式:函数或者用类来包装线程对象. 1.  函数式:调用thread模块中的start_new_thread()函数来产生新线程.如下例: import time      ...

  5. 工作中使用的linux命令汇总

    ln -s  /usr/local/tomcat/ ./tomcat   创建软连接到/usr/local/tomcat tar -zxvf apache-kylin-2.4.0-bin-hbase1 ...

  6. Element-ui学习使用

    这是我使用Element-ui的布局,排布的一个界面,原本我是使用WinfowsForm来做的一个摄像头注册以及查询的小工具,目前我关注前后端的开发,所以就想着能不能把这么个小工具,我用前后端的形式开 ...

  7. 汇编实验14:访问CMOS RAM

    汇编实验14:访问CMOS RAM 任务 编程,以“年/月/日 时:分:秒”的格式,显示当前的日期,时间. 预备知识 CMOS存储当前时间的信息:年.月.日.时.分.秒.这六个信息的长度均为1个字节, ...

  8. ORB-SLAM 代码笔记(四)tracking代码结构

    首先要清楚ORB-SLAM视觉跟踪的原理,然后对tracking.cc中的函数逐个讲解 代码的前面部分是从配置文件中读取校准好的相机参数(内参和畸变参数,以及双目的深度测量设定),并且加载ORB特征点 ...

  9. windows下oracle 11g r2 安装过程与卸载详细图解

    Oracle 11g安装 1.解压下载的包,然后进入包内,点击setup.exe开始安装 . 2.出现如下:一般把那个小对勾取消,点击下一步进行, 弹出下图这个后点‘是' 3.下图后,选择创建和配置数 ...

  10. laravel5.5jwt-auth的使用

    laravel5.5 + jwt-auth:dev-develop 安装扩展 composer require tymon/jwt-auth:dev-develop --prefer-source 添 ...