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. Centos防火墙的配置

    Selinux的三种模式:enforcing,passive,disable 临时更改模式:setengorce 1|0        1:enforcing,   0:passive [root@C ...

  2. 浅谈Linux下mv和cp命令的区别

    1.功能上的区别 mv:用户可以使用该命令为文件或目录重命名或将文件由一个目录移入另一个目录中. cp: 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中. 2.从inode角度来区分 mv:会 ...

  3. 【Hive二】 Hive基本使用

    Hive基本使用 创建数据库 创建一个数据库,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db create database 库名; 避免要创建的数据库已经存在错 ...

  4. ATM购物车程序项目规范(更新到高级版)

    ATM购物车程序(高级版) 之前的低级版本已经删除,现在的内容太多,没时间把内容上传,有时间我会把项目源码奉上! 我已经把整个项目源码传到群文件里了,需要的可以加主页qq群号.同时群内也有免费的学习资 ...

  5. Overview of the High Efficiency Video Coding (HEVC) Standard阅读笔记

    1.INTRODUCTION High Efficiency Video Coding(HEVC) <-> H.265 MPEG-4 Advanced Video Coding(AVC) ...

  6. spring data elasticsearch多索引查询

    一次查询多个索引数据 es里可以这样写 GET 索引1,索引2,索引3/_search 也可以这样 给索引创建别名,多个索引可以使用一个别名 POST /_aliases { "action ...

  7. luogu4172 [WC2006]水管局长

    就是用 lct 维护最小生成树 ref #include <algorithm> #include <iostream> #include <cstdio> #in ...

  8. Question | 关于Android安全的一二事

    本文来自网易云社区 "Question"为网易云易盾的问答栏目,将会解答和呈现安全领域大家常见的问题和困惑.如果你有什么疑惑,也欢迎通过邮件(zhangyong02@corp.ne ...

  9. Python 3基础教程31-urllib模块

    本文介绍Python里的urllib模块,这个urllib主要处理web服务的,如果需要做接口测试,或者写Python的网络爬虫,这个urllib就是最底层的库.需要用到里面的请求方法等. 1. 先看 ...

  10. 简单的素数问题(C++)

    [问题描述] 已知三个素数的和为 n ,正整数 n 由键盘输入,计算并输出这三个素数乘积的最大值. [代码展示] # include<iostream>using namespace st ...